Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 18344 invoked from network); 31 Dec 2009 19:17:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 31 Dec 2009 19:17:58 -0000 Received: (qmail 19028 invoked by uid 500); 31 Dec 2009 19:17:58 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 18968 invoked by uid 500); 31 Dec 2009 19:17:57 -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 18960 invoked by uid 99); 31 Dec 2009 19:17:57 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Dec 2009 19:17:57 +0000 X-ASF-Spam-Status: No, hits=-10.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI 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; Thu, 31 Dec 2009 19:17:50 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id C18E4234C045 for ; Thu, 31 Dec 2009 11:17:29 -0800 (PST) Message-ID: <1611154152.1262287049778.JavaMail.jira@brutus.apache.org> Date: Thu, 31 Dec 2009 19:17:29 +0000 (UTC) From: "Rick Hillegas (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Created: (DERBY-4499) Compiler error when preparing a procedure call with an output parameter of user defined type. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 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 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.