Return-Path: X-Original-To: apmail-db-derby-commits-archive@www.apache.org Delivered-To: apmail-db-derby-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A60269B5C for ; Wed, 21 Mar 2012 03:16:03 +0000 (UTC) Received: (qmail 86950 invoked by uid 500); 21 Mar 2012 03:16:03 -0000 Delivered-To: apmail-db-derby-commits-archive@db.apache.org Received: (qmail 86888 invoked by uid 500); 21 Mar 2012 03:16:03 -0000 Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: "Derby Development" List-Id: Delivered-To: mailing list derby-commits@db.apache.org Received: (qmail 86868 invoked by uid 99); 21 Mar 2012 03:16:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Mar 2012 03:16:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Mar 2012 03:16:01 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3D9C2238896F; Wed, 21 Mar 2012 03:15:41 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1303263 - in /db/derby/code/branches/10.7: ./ java/client/org/apache/derby/client/am/CallableStatement.java Date: Wed, 21 Mar 2012 03:15:41 -0000 To: derby-commits@db.apache.org From: kmarsden@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120321031541.3D9C2238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kmarsden Date: Wed Mar 21 03:15:40 2012 New Revision: 1303263 URL: http://svn.apache.org/viewvc?rev=1303263&view=rev Log: DERBY-2515 Network client does not retain the INOUT parameter value change for Contributed by Rick Hillegas. Merged /db/derby/code/trunk:r1086799,1087346 just the code change. There were Modified: db/derby/code/branches/10.7/ (props changed) db/derby/code/branches/10.7/java/client/org/apache/derby/client/am/CallableStatement.java Propchange: db/derby/code/branches/10.7/ ------------------------------------------------------------------------------ Merged /db/derby/code/trunk:r1086799,1087346 Modified: db/derby/code/branches/10.7/java/client/org/apache/derby/client/am/CallableStatement.java URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.7/java/client/org/apache/derby/client/am/CallableStatement.java?rev=1303263&r1=1303262&r2=1303263&view=diff ============================================================================== --- db/derby/code/branches/10.7/java/client/org/apache/derby/client/am/CallableStatement.java (original) +++ db/derby/code/branches/10.7/java/client/org/apache/derby/client/am/CallableStatement.java Wed Mar 21 03:15:40 2012 @@ -1169,6 +1169,55 @@ public class CallableStatement extends P throw se.getSQLException(); } } + + //----------------------------overrides---------------------------------- + + public void completeExecuteCall(Sqlca sqlca, Cursor singletonParams) // no result sets returned + { + super.completeExecuteCall( sqlca, singletonParams ); + + // + // For INOUT parameters, propagate return values back to the input parameter array. + // See DERBY-2515. + // + + if ( singletonParams == null ) { return ; } + if ( parameterMetaData_ == null ) { return; } + + int cursorParamCount = singletonParams.columns_; + + for ( int i = 0; i < cursorParamCount; i++ ) + { + 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) + { + 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) ) + { + returnArg = new Short( ((Integer) returnArg).shortValue() ); + } + } + + setInput( jdbcParamNumber, returnArg ); + } // end if INOUT arg + } // end loop through args + } + //----------------------------helper methods----------------------------------