Skip to content

Commit eedfb1b

Browse files
authored
Merge pull request #179 from evolvedbinary/6.x.x/hotfix/sql-xml-memory-leak
[6.x.x] Fix a memory/resource leak in the sql:execute XPath functions
2 parents 7632001 + 1a010d9 commit eedfb1b

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

extensions/modules/sql/src/main/java/org/exist/xquery/modules/sql/ExecuteFunction.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,9 @@ private ElementImpl resultAsElement(final boolean makeNodeFromColumnName, final
429429
//get the content
430430
if (rsmd.getColumnType(i + 1) == Types.SQLXML) {
431431
//parse sqlxml value
432+
@Nullable SQLXML sqlXml = null;
432433
try {
433-
final SQLXML sqlXml = rs.getSQLXML(i + 1);
434+
sqlXml = rs.getSQLXML(i + 1);
434435

435436
if (rs.wasNull()) {
436437
// Add a null indicator attribute if the value was SQL Null
@@ -456,7 +457,12 @@ private ElementImpl resultAsElement(final boolean makeNodeFromColumnName, final
456457
}
457458
} catch (final Exception e) {
458459
throw new XPathException(this, "Could not parse column of type SQLXML: " + e.getMessage(), e);
460+
} finally {
461+
if (sqlXml != null) {
462+
sqlXml.free();
463+
}
459464
}
465+
460466
} else {
461467
//otherwise assume string value
462468
final String colValue = rs.getString(i + 1);

0 commit comments

Comments
 (0)