[
https://issues.apache.org/jira/browse/DERBY-4993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-4993:
---------------------------------
Urgency: Low
> Nested connection not marked as closed after session level error
> ----------------------------------------------------------------
>
> Key: DERBY-4993
> URL: https://issues.apache.org/jira/browse/DERBY-4993
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Reporter: Dag H. Wanvik
> Priority: Minor
> Labels: derby_triage10_8
>
> Inside a stored procedure, with a nested connection:
> Connection c = DriverManager.getConnection("jdbc:default:connection");
> I see a session level error:
> } catch (SQLException e) {
> assertSQLState("expected CONN_INTERRUPT", "08000", e);
> assertTrue(c.isClosed());
> However, the second assert above fails. Granted, we are still executing
> inside the stored routine, but the statement is now "dead"; the calling
> statment will see exception 40XC0 (dead statement) and the parent
> connection will then be marked as closed (as expected).
> But shouldn't the nested connection also be marked closed at this time?
> If I try to do something with the connection at this point, e.g. trying
> to prepare a new statement I see a NPE because the lcc is already gone:
> Caused by: java.lang.NullPointerException
> at
> org.apache.derby.impl.sql.compile.CompilerContextImpl.initRequiredPriv(CompilerContextImpl.java:717)
> at
> org.apache.derby.impl.sql.compile.CompilerContextImpl.<init>(CompilerContextImpl.java:702)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.pushCompilerContext(GenericLanguageConnectionContext.java:2355)
> at
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:236)
> at
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:91)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:1101)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:610)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira