Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 67114 invoked from network); 8 Dec 2005 16:53:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Dec 2005 16:53:36 -0000 Received: (qmail 12530 invoked by uid 500); 8 Dec 2005 16:53:35 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 12293 invoked by uid 500); 8 Dec 2005 16:53:34 -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 12279 invoked by uid 99); 8 Dec 2005 16:53:34 -0000 X-ASF-Spam-Status: No, hits=1.3 required=10.0 tests=SPF_FAIL X-Spam-Check-By: apache.org Received: from [192.87.106.226] (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Dec 2005 08:53:33 -0800 Received: from ajax.apache.org (ajax.apache.org [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id 7CE8ADF for ; Thu, 8 Dec 2005 17:53:12 +0100 (CET) Message-ID: <474573252.1134060792509.JavaMail.jira@ajax.apache.org> Date: Thu, 8 Dec 2005 17:53:12 +0100 (CET) From: "Daniel John Debrunner (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-176) Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1 during execution of large query In-Reply-To: <891076659.1111501104623.JavaMail.jira@ajax.apache.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/DERBY-176?page=comments#action_12359747 ] Daniel John Debrunner commented on DERBY-176: --------------------------------------------- I have code that traps most limit execeed errors and throws a statement too complex error. I will submit this soon, I will check it in with wording similar to yours: Statement too complex. Try rewriting the query to remove complexity. Eliminating many duplicate expressions or breaking up the query and storing interim results in a temporary table can often help resolve this error. I don't think the application developer cares that the Java class limits have been execeed, that's an implementation detail. The exception will have a nested/chained exception that has the specific info on the class file. Coding this exception actually help me find the cause for DERBY-732, the method is not exceeding any limit but a branch offset with the method is greater than 32k. Branch offsets are a 16bit signed value, most other 16bit values in the class file are unsigned values. > Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1 during execution of large query > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-176 > URL: http://issues.apache.org/jira/browse/DERBY-176 > Project: Derby > Type: Bug > Components: SQL > Versions: 10.0.2.2, 10.0.2.1, 10.0.2.0, 10.1.1.0 > Reporter: Kathey Marsden > Attachments: largeCodeGen.java > > When executing a large query or oather large operations, Derby throws a java linkage exception. > This is because the generated byte code exceeds the JVM limits for method sizes constant pool entries etc, the amount of code in a conditional etc. The attached repro demonstrates the problem but the problem can also occur for other operations that generate lots of byte code. The repro is just a new functional test, > so should be copied to derbyTesting/functionTests/lang/largeCodeGen.java and run like > java -Djvmflags=-Xmx512M org.apache.derbyTesting.harness.RunTest lang/largeCodeGen > When this problem is fixed additional scenarios should be added to this test. > ERROR XBCM1: Java linkage error thrown during load of > generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1. > at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:315) > at org.apache.derby.impl.services.reflect.DatabaseClasses.loadGeneratedClass(DatabaseClasses.java:162) > at org.apache.derby.impl.services.bytecode.GClass.getGeneratedClass(GClass.java:59) > at org.apache.derby.impl.sql.compile.ExpressionClassBuilder.getGeneratedClass(ExpressionClassBuilder.java:920) > at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:270) > at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:432) > at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:107) > at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:688) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPreparedStatement.java:118) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(EmbedPreparedStatement20.java:82) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(EmbedPreparedStatement30.java:62) > at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:92) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:675) > at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:519) > at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.main(largeCodeGen.java:86) > Exception in thread "main" -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira