[ https://issues.apache.org/jira/browse/DERBY-6496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rick Hillegas updated DERBY-6496: --------------------------------- Attachment: derby-6496-01-aa-useClassFactoryContext.diff Attaching derby-6496-01-aa-useClassFactoryContext.diff. This patch makes the optional tool loader get the ClassFactory out of the ClassFactoryContext rather than the CompilerContext. Hopefully, that is a more reliable source for class factories. I am running tests now. Touches the following files: ---------- M java/engine/org/apache/derby/catalog/Java5SystemProcedures.java The fix. ---------- A java/testing/org/apache/derbyTesting/functionTests/tests/lang/Test_6496.java M java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java A test case which fails without the fix but succeeds with it. > Optional tool registration may fail because the CompilerContext is not always > available at execution time. > ---------------------------------------------------------------------------------------------------------- > > Key: DERBY-6496 > URL: https://issues.apache.org/jira/browse/DERBY-6496 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.11.0.0 > Reporter: Rick Hillegas > Assignee: Rick Hillegas > Attachments: derby-6496-01-aa-useClassFactoryContext.diff > > > For reasons which elude me, the CompilerContext is sometimes available at > execution time and sometimes not. When the CompilerContext is not available > at execution time, optional tool loading fails on an NPE: > Caused by: java.lang.NullPointerException > at > org.apache.derby.catalog.Java5SystemProcedures.SYSCS_REGISTER_TOOL(Java5SystemProcedures.java:104) > at > org.apache.derby.exe.ac4d3680a5x0144x93adx0136xffffe1d7aa3e0.g0(Unknown > Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at > org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46) > at > org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:75) > at > org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:470) > at > org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:349) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1338) -- This message was sent by Atlassian JIRA (v6.2#6252)