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 rh...@apache.org on 2011/03/31 17:41:55 UTC

svn commit: r1087346 - /db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableStatement.java

Author: rhillegas
Date: Thu Mar 31 15:41:55 2011
New Revision: 1087346

URL: http://svn.apache.org/viewvc?rev=1087346&view=rev
Log:
DERBY-2515: Improve exception handling when copying INOUT args.

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

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableStatement.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableStatement.java?rev=1087346&r1=1087345&r2=1087346&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableStatement.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/CallableStatement.java Thu Mar 31 15:41:55 2011
@@ -1185,32 +1185,37 @@ public class CallableStatement extends P
         if ( parameterMetaData_ == null ) { return; }
 
         int     cursorParamCount = singletonParams.columns_;
-        try {
-            for ( int i = 0; i < cursorParamCount; i++ )
+        
+        for ( int i = 0; i < cursorParamCount; i++ )
+        {
+            if ( parameterMetaData_.sqlxParmmode_[ i ] == java.sql.ParameterMetaData.parameterModeInOut )
             {
-                if ( parameterMetaData_.sqlxParmmode_[ i ] == java.sql.ParameterMetaData.parameterModeInOut )
+                int jdbcParamNumber = i + 1;
+                Object  returnArg;
+                
+                try {
+                    returnArg = singletonParams.isNull_[ i ] ? null : singletonParams.getObject( jdbcParamNumber );
+                } catch (SqlException se)
                 {
-                    int jdbcParamNumber = i + 1;
-                    Object  returnArg = singletonParams.isNull_[ i ] ? null : singletonParams.getObject( jdbcParamNumber );
-
-                    //
-                    // special case to coerce Integer to Short for SMALLINT
-                    //
-                    if ( parameterMetaData_.types_[ i ] == Types.SMALLINT )
+                    IllegalArgumentException iae = new IllegalArgumentException( se.getMessage() );
+                    iae.initCause( se );
+                    throw iae;
+                }
+                
+                //
+                // special case to coerce Integer to Short for SMALLINT
+                //
+                if ( parameterMetaData_.types_[ i ] == Types.SMALLINT )
+                {
+                    if ( (returnArg != null) && (returnArg instanceof Integer) )
                     {
-                        if ( (returnArg != null) && (returnArg instanceof Integer) )
-                        {
-                            returnArg = new Short( ((Integer) returnArg).shortValue() );
-                        }
+                        returnArg = new Short( ((Integer) returnArg).shortValue() );
                     }
-                    
-                    setInput( jdbcParamNumber, returnArg );
                 }
-            }
-        } catch (Exception se)
-        {
-            throw new IllegalArgumentException( se.getMessage() );
-        }
+                
+                setInput( jdbcParamNumber, returnArg );
+            }   // end if INOUT arg
+        }       // end loop through args
     }