db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4364) Cannot create an instance of generated class org.apache.derby.exe.acf81e0010x0123x6e25x38c2x00000616b5f80.
Date Mon, 31 Aug 2009 14:38:32 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12749513#action_12749513
] 

Bryan Pendleton commented on DERBY-4364:
----------------------------------------

Sometimes problems like this are caused by having multiple versions of Derby in the classpath,
and getting some of the jars loaded from one Derby version, and other jars loaded from
a different incompatible Derby version. Since the Derby jars are "sealed", you then get
classloader errors like these.

The auto-loading JDBC driver sometimes triggers such class loading conflicts by loading
some of the Derby classes unexpectedly.

I think that if you have derbytools.jar in the classpath, you should be able to call

  org.apache.derby.tools.sysinfo.getInfo(System.err);

in your program, and it should print a bunch of diagnostic information about the Derby
environment to System.err (you can pass a different PrintWriter to the getInfo() call if you
want and it will print the information there).

That may give you more clues about what the environment is.

Another thing you can try is using the '-verbose:class' argument to the JVM, which I think
will
give you some information about which classes are loaded from which jars.

Lastly, you might try attaching a debugger, or using a tool like VisualVM, and see if it
can help you figure out which Derby classes are being loaded from which Derby jars

> Cannot create an instance of generated class org.apache.derby.exe.acf81e0010x0123x6e25x38c2x00000616b5f80.
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4364
>                 URL: https://issues.apache.org/jira/browse/DERBY-4364
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.5.3.0
>         Environment: The program run well in my local machine's tomcat server. but when
I deployed into http://www.jhost.cn/, it failed. the env in jhost are:
> Apache/2.2.11 mod_jk/1.2.25  
> Tomcat Version 5.5.27  
> JVM Version 1.5.0_11-b03  
> PHP Version 5.2.8  
> MySQL Ver 14.12 Distrib 5.0.67  
> phpMyAdmin Version information: 3.1.1 
>            Reporter: LiuZhenKe
>            Priority: Critical
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> This issue is quite like issue DERBY-4142, but I think the root cause is different.
> The java code which raise this error is:
> rs=stmt.executeQuery("SELECT ID FROM T_SYS_RS_PACKAGE_MASTER WHERE EXISTS (SELECT * FROM
T_VC_MASTER MA WHERE MA.SUBCLASS_TABLE_NAME='T_SYS_RS_PACKAGE_MASTER' AND MA.SUBCLASS_TABLE_ID=T_SYS_RS_PACKAGE_MASTER.ID
AND MA.NAME='"+PackageName+"')");
> The error message tells that create an instance of generated class acf81e0010x0123x6e25x38c2x00000616b5f80
fail caused by java.lang.NoClassDefFoundError: org/apache/derby/impl/sql/execute/GenericQualifier.
But I see that this GenericQualifier.class is put in derby.jar, which is put  in WEB-INF\lib
folder. so I guess this issue may be caused by the classloader switch somewhere, may be in
acf81e0010x0123x6e25x38c2x00000616b5f80. the new classloader may not able to find a class
in WEB-INF\lib\derby.jar. Anyway, just a guess
> error log is captured:
> java.sql.SQLException: Cannot create an instance of generated class org.apache.derby.exe.acf81e0010x0123x6e25x38c2x00000616b5f80.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
> 	at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:614)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(EmbedStatement.java:152)
> 	at Concept.Resource.Server.derby.CCheckInResources.checkInResources(CCheckInResources.java:342)
> 	at Concept.Resource.Server.derby.CCheckInResources.SubmitTransaction(CCheckInResources.java:223)
> 	at Concept.Transaction.Server.CTransactionServer.doPost(CTransactionServer.java:722)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> 	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
> 	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
> 	at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
> 	at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
> 	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: java.sql.SQLException: Java exception: 'org/apache/derby/impl/sql/execute/GenericQualifier:
java.lang.NoClassDefFoundError'.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
> 	at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
> 	... 37 more
> Caused by: java.lang.NoClassDefFoundError: org/apache/derby/impl/sql/execute/GenericQualifier
> 	at org.apache.derby.impl.sql.execute.GenericExecutionFactory.getQualifier(GenericExecutionFactory.java:250)
> 	at org.apache.derby.exe.acf81e0010x0123x6e25x38c2x00000616b5f80.postConstructor(Unknown
Source)
> 	at org.apache.derby.impl.services.reflect.LoadedGeneratedClass.newInstance(LoadedGeneratedClass.java:71)
> 	at org.apache.derby.impl.services.reflect.ReflectGeneratedClass.newInstance(ReflectGeneratedClass.java:60)
> 	at org.apache.derby.impl.sql.GenericActivationHolder.<init>(GenericActivationHolder.java:129)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.getActivation(GenericPreparedStatement.java:234)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:609)
> 	... 32 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message