db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-6496) Optional tool registration may fail because the CompilerContext is not always available at execution time.
Date Thu, 06 Mar 2014 15:58:50 GMT

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

Knut Anders Hatlen commented on DERBY-6496:
-------------------------------------------

{quote}
> If the connection has done some compilation before the procedure is
> executed, the compiler context will be available. (But its
> getInUse() method will return false, so it's not in a valid state.)

Why is its usage allowed when it's not in a valid state, though? No check?
{quote}

That's right. ContextService.getContext(String) doesn't know about the
CompilerContext.getInUse() method, since it's not part of the Context
interface. The reuse is handled at a higher level. It would have been
more robust, I suppose, if it were handled inside of the
ContextManager, so that ContextService.getContext() had returned null
instead of an invalid context.


> 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, derby-6496-01-ab-useClassFactoryContext.diff,
derby-6496-02-aa-optimizerTracer.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)

Mime
View raw message