Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 21283 invoked from network); 12 Feb 2010 00:54:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 12 Feb 2010 00:54:49 -0000 Received: (qmail 3905 invoked by uid 500); 12 Feb 2010 00:54:49 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 3871 invoked by uid 500); 12 Feb 2010 00:54:49 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 3711 invoked by uid 99); 12 Feb 2010 00:54:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Feb 2010 00:54:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Feb 2010 00:54:48 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id F0E2D29A0019 for ; Thu, 11 Feb 2010 16:54:27 -0800 (PST) Message-ID: <1596165879.220521265936067985.JavaMail.jira@brutus.apache.org> Date: Fri, 12 Feb 2010 00:54:27 +0000 (UTC) From: "Rick Hillegas (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-4499) Compiler error when preparing a procedure call with an output parameter of user defined type. In-Reply-To: <1611154152.1262287049778.JavaMail.jira@brutus.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DERBY-4499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rick Hillegas updated DERBY-4499: --------------------------------- Issue & fix info: [Patch Available] > Compiler error when preparing a procedure call with an output parameter of user defined type. > --------------------------------------------------------------------------------------------- > > Key: DERBY-4499 > URL: https://issues.apache.org/jira/browse/DERBY-4499 > Project: Derby > Issue Type: Bug > Components: SQL > Reporter: Rick Hillegas > Assignee: Rick Hillegas > Attachments: derby-4499-01-aa-outputParameters.diff > > > The byte-code compiler complains about a missing setValue() overload. When this is fixed, it would be good to make sure that output parameters of UDT type work for the network client too. > When compiling the following CALL statement > call changeCurrencyCode( ?, ? ) > given the following procedure declaration > create procedure changeCurrencyCode > ( in newCurrencyCode char( 3 ), inout oldPrice Price ) > language java parameter style java no sql > external name 'org.apache.derbyTesting.functionTests.tests.lang.UDTTest.changeCurrencyCode' > I see this stack trace: > java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueDescriptor.setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) > at java.lang.Class.getDeclaredMethod(Class.java:1909) > at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:132) > at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745) > at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:1197) > at org.apache.derby.impl.sql.compile.JavaValueNode.generate(JavaValueNode.java:253) > at org.apache.derby.impl.sql.compile.CallStatementNode.generate(CallStatementNode.java:225) > at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347) > at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:469) > at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:90) > at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:828) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPreparedStatement.java:129) > at org.apache.derby.impl.jdbc.EmbedCallableStatement.(EmbedCallableStatement.java:69) > at org.apache.derby.impl.jdbc.EmbedCallableStatement20.(EmbedCallableStatement20.java:85) > at org.apache.derby.impl.jdbc.EmbedCallableStatement30.(EmbedCallableStatement30.java:61) > at org.apache.derby.jdbc.Driver30.newEmbedCallableStatement(Driver30.java:122) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:1699) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:1648) > at MyDerbyClient.prepareCall(MyDerbyClient.java:940) > at MyDerbyClient.execute(MyDerbyClient.java:161) > at MyDerbyClient.main(MyDerbyClient.java:90) > Invalid method org.apache.derby.iapi.types.DataValueDescriptor >> void setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueDescriptor.setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) > Exception in thread "main" java.sql.SQLException: Java exception: 'ASSERT FAILED Invalid method org.apache.derby.iapi.types.DataValueDescriptor >> void setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueDescriptor.setValue(org.apache.derbyTesting.functionTests.tests.lang.Price): org.apache.derby.shared.common.sanity.AssertFailure'. > at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:142) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:299) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2269) > at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPreparedStatement.java:147) > at org.apache.derby.impl.jdbc.EmbedCallableStatement.(EmbedCallableStatement.java:69) > at org.apache.derby.impl.jdbc.EmbedCallableStatement20.(EmbedCallableStatement20.java:85) > at org.apache.derby.impl.jdbc.EmbedCallableStatement30.(EmbedCallableStatement30.java:61) > at org.apache.derby.jdbc.Driver30.newEmbedCallableStatement(Driver30.java:122) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:1699) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:1648) > at MyDerbyClient.prepareCall(MyDerbyClient.java:940) > at MyDerbyClient.execute(MyDerbyClient.java:161) > at MyDerbyClient.main(MyDerbyClient.java:90) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Invalid method org.apache.derby.iapi.types.DataValueDescriptor >> void setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueDescriptor.setValue(org.apache.derbyTesting.functionTests.tests.lang.Price) > at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162) > at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147) > at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:191) > at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745) > at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:1197) > at org.apache.derby.impl.sql.compile.JavaValueNode.generate(JavaValueNode.java:253) > at org.apache.derby.impl.sql.compile.CallStatementNode.generate(CallStatementNode.java:225) > at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347) > at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:469) > at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:90) > at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:828) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPreparedStatement.java:129) > ... 9 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.