From: <gun...@us...> - 2010-12-30 11:22:06
|
Revision: 14626 http://dcm4che.svn.sourceforge.net/dcm4che/?rev=14626&view=rev Author: gunterze Date: 2010-12-30 11:21:59 +0000 (Thu, 30 Dec 2010) Log Message: ----------- [#DCMEE-1588] Excpetion during assembling of SQL statement on performing a C-FIND RQ causes leaking DB connections Modified Paths: -------------- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/BaseDSQueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPPPSQueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPWLQueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/HPQueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/MWLQueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/QueryCmd.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/UPSQueryCmd.java Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/BaseDSQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/BaseDSQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/BaseDSQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -80,7 +80,12 @@ public void execute() throws SQLException { - execute(sqlBuilder.getSql()); + try { + execute(sqlBuilder.getSql()); + } catch (RuntimeException re) { + close(); // prevent leaking DB Connection + throw re; + } } public boolean isMatchNotSupported() { Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPPPSQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPPPSQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPPPSQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -53,7 +53,7 @@ * @version $Revision$ $Date$ * @since 10.02.2004 */ -public class GPPPSQueryCmd extends BaseReadCmd { +public class GPPPSQueryCmd extends BaseDSQueryCmd { public static int transactionIsolationLevel = 0; public static int blobAccessType = Types.LONGVARBINARY; @@ -66,15 +66,12 @@ private static final String[] RELATIONS = { "Patient.pk", "GPPPS.patient_fk"}; - private final SqlBuilder sqlBuilder = new SqlBuilder(); - /** * @param ds * @throws SQLException */ public GPPPSQueryCmd(Dataset keys) throws SQLException { - super(JdbcProperties.getInstance().getDataSource(), - transactionIsolationLevel); + super(keys, false, true, transactionIsolationLevel); AttributeFilter patAttrFilter = AttributeFilter.getPatientAttributeFilter(); defineColumnTypes(new int[] { blobAccessType, blobAccessType }); // ensure keys contains (8,0005) for use as result filter @@ -102,10 +99,6 @@ keys.getStrings(Tags.PPSStatus)); } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public Dataset getDataset() throws SQLException { Dataset ds = DcmObjectFactory.getInstance().newDataset(); DatasetUtils.fromByteArray( rs.getBytes(1), ds); Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPWLQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPWLQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/GPWLQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -285,10 +285,6 @@ : list.toArray(new String[list.size()])); } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public Dataset getDataset() throws SQLException { Dataset ds = DcmObjectFactory.getInstance().newDataset(); DatasetUtils.fromByteArray( rs.getBytes(1), ds); Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/HPQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/HPQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/HPQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -182,10 +182,6 @@ .size()])); } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public Dataset getDataset() throws SQLException { Dataset ds = DcmObjectFactory.getInstance().newDataset(); DatasetUtils.fromByteArray(rs.getBytes(1), ds); Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/MWLQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/MWLQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/MWLQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -173,10 +173,6 @@ } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public Dataset getDataset() throws SQLException { Dataset ds = DcmObjectFactory.getInstance().newDataset(); Dataset dsPat = DcmObjectFactory.getInstance().newDataset(); //It seems that Oracle has problems to read 1st BLOB after 2nd! Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/QueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/QueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/QueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -286,10 +286,6 @@ return null; } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public boolean isMatchNotSupported() { return sqlBuilder.isMatchNotSupported(); } Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/UPSQueryCmd.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/UPSQueryCmd.java 2010-12-30 09:42:03 UTC (rev 14625) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/jdbc/UPSQueryCmd.java 2010-12-30 11:21:59 UTC (rev 14626) @@ -268,10 +268,6 @@ return leftJoin; } - public void execute() throws SQLException { - execute(sqlBuilder.getSql()); - } - public Dataset getDataset() throws SQLException { Dataset ds = DcmObjectFactory.getInstance().newDataset(); DatasetUtils.fromByteArray( rs.getBytes(1), ds); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |