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

LiuZhenKe commented on DERBY-4364:
----------------------------------

In order to verify whether the issue is caused by the classloader, I add the 
following line before calling rs=stmt.executeQuery("...");
Class.forName("org.apache.derby.impl.sql.execute.GenericQualifier");

After that and retest, the issue become: 

java.sql.SQLException: Java exception: 
'org/apache/derby/impl/sql/execute/GenericResultSetFactory: 
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)
        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.executeStatement(EmbedStatement.java:1323)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(EmbedStatement.java:152)
        at 
Concept.Resource.Server.derby.CCheckInResources.checkInResources(CCheckInResources.java:343)
        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.lang.NoClassDefFoundError: 
org/apache/derby/impl/sql/execute/GenericResultSetFactory
        at 
org.apache.derby.impl.sql.execute.GenericExecutionFactory.getResultSetFactory(GenericExecutionFactory.java:133)
        at 
org.apache.derby.impl.sql.execute.BaseActivation.getResultSetFactory(BaseActivation.java:624)
        at 
org.apache.derby.exe.acf81e0010x0123x6ee4x9161x000002d736180.fillResultSet(Unknown
 Source)
        at 
org.apache.derby.exe.acf81e0010x0123x6ee4x9161x000002d736180.execute(Unknown 
Source)
        at 
org.apache.derby.impl.sql.GenericActivationHolder.execute(GenericActivationHolder.java:352)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:414)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:297)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1235)
        ... 33 more

look likes 'org.apache.derby.impl.sql.execute.GenericQualifier' has been 
loaded, but another class 
'org/apache/derby/impl/sql/execute/GenericResultSetFactory' not found due to 
the same issue. so It should be the issue of classloader.

> 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.

Reply via email to