You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2007/07/13 14:06:11 UTC

svn commit: r555960 - /db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java

Author: kahatlen
Date: Fri Jul 13 05:06:10 2007
New Revision: 555960

URL: http://svn.apache.org/viewvc?view=rev&rev=555960
Log:
DERBY-2932: Connection.createClob() and Connection.createBlob() throw
a procedure not found exception and do not switch to non-locator code
upon soft upgrade

Fix contributed by V. Narayanan.

Modified:
    db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java?view=diff&rev=555960&r1=555959&r2=555960
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableLocatorProcedures.java Fri Jul 13 05:06:10 2007
@@ -112,19 +112,18 @@
             return INVALID_LOCATOR;
         }
         
-        if (blobCreateLocatorCall == null) {
-            blobCreateLocatorCall = connection.prepareCallX
-                ("? = CALL SYSIBM.BLOBCREATELOCATOR()",
-                 java.sql.ResultSet.TYPE_FORWARD_ONLY, 
-                 java.sql.ResultSet.CONCUR_READ_ONLY, 
-                 connection.holdability());
-            blobCreateLocatorCall
-                .registerOutParameterX(1, java.sql.Types.INTEGER);
-            // Make sure this statement does not commit user transaction
-            blobCreateLocatorCall.isAutoCommittableStatement_ = false;
-        }
-        
         try {
+            if (blobCreateLocatorCall == null) {
+                blobCreateLocatorCall = connection.prepareCallX
+                        ("? = CALL SYSIBM.BLOBCREATELOCATOR()",
+                        java.sql.ResultSet.TYPE_FORWARD_ONLY,
+                        java.sql.ResultSet.CONCUR_READ_ONLY,
+                        connection.holdability());
+                blobCreateLocatorCall
+                        .registerOutParameterX(1, java.sql.Types.INTEGER);
+                // Make sure this statement does not commit user transaction
+                blobCreateLocatorCall.isAutoCommittableStatement_ = false;
+            }
             blobCreateLocatorCall.executeX();
         }
         catch(SqlException sqle) {
@@ -590,19 +589,18 @@
             return INVALID_LOCATOR;
         }
         
-        if (clobCreateLocatorCall == null) {
-            clobCreateLocatorCall = connection.prepareCallX
-                ("? = CALL SYSIBM.CLOBCREATELOCATOR()",
-                 java.sql.ResultSet.TYPE_FORWARD_ONLY, 
-                 java.sql.ResultSet.CONCUR_READ_ONLY, 
-                 java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT);
-            clobCreateLocatorCall
-                .registerOutParameterX(1, java.sql.Types.INTEGER);
-            // Make sure this statement does not commit user transaction
-            clobCreateLocatorCall.isAutoCommittableStatement_ = false;
-        }
-
         try {
+            if (clobCreateLocatorCall == null) {
+                clobCreateLocatorCall = connection.prepareCallX
+                        ("? = CALL SYSIBM.CLOBCREATELOCATOR()",
+                        java.sql.ResultSet.TYPE_FORWARD_ONLY,
+                        java.sql.ResultSet.CONCUR_READ_ONLY,
+                        java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT);
+                clobCreateLocatorCall
+                        .registerOutParameterX(1, java.sql.Types.INTEGER);
+                // Make sure this statement does not commit user transaction
+                clobCreateLocatorCall.isAutoCommittableStatement_ = false;
+            }
             clobCreateLocatorCall.executeX();
         }
         catch(SqlException sqle) {