db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5605) Calling Blob/Clob free() explicitly after implicit free throws exception in client driver
Date Wed, 03 Jul 2013 15:44:20 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kathey Marsden updated DERBY-5605:
----------------------------------

    Issue & fix info: High Value Fix,Newcomer,Repro attached,Workaround attached  (was:
Newcomer,Repro attached,Workaround attached)
              Labels: derby_triage10_11 derby_triage10_9  (was: derby_triage10_9)
    
> Calling Blob/Clob free() explicitly after implicit free throws exception in client driver
> -----------------------------------------------------------------------------------------
>
>                 Key: DERBY-5605
>                 URL: https://issues.apache.org/jira/browse/DERBY-5605
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.9.1.0
>            Reporter: Kristian Waagan
>            Priority: Minor
>              Labels: derby_triage10_11, derby_triage10_9
>
> If a Blob or Clob is freed implicitly in the client driver, calling free explicitly afterwards
will throw an exception. Instead, this should probably be a no-op.
> To reproduce, do something like this:
>     con.setAutoCommit(false);
>     Clob c = con.createClob();
>     con.commit();
>     c.free();
> ==>
> Caused by: org.apache.derby.client.am.SqlException: You cannot invoke other java.sql.Clob/java.sql.Blob
methods after calling the free() method or after the Blob/Clob's transaction has been committed
or rolled back.
>         at org.apache.derby.client.am.CallableLocatorProcedures.handleInvalidLocator(CallableLocatorProcedures.java:1071)
>         at org.apache.derby.client.am.CallableLocatorProcedures.clobReleaseLocator(CallableLocatorProcedures.java:664)
>         at org.apache.derby.client.am.Clob.free(Clob.java:844)
>         ... 38 more
> Caused by: org.apache.derby.client.am.SqlException: The exception 'java.sql.SQLException:
The locator that was supplied for this CLOB/BLOB is invalid' was thrown while evaluating an
expression.
>         at org.apache.derby.client.am.Statement.completeExecute(Statement.java:1604)
>         at org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(NetStatementReply.java:322)
>         at org.apache.derby.client.net.NetStatementReply.readExecuteCall(NetStatementReply.java:106)
>         at org.apache.derby.client.net.StatementReply.readExecuteCall(StatementReply.java:75)
>         at org.apache.derby.client.net.NetStatement.readExecuteCall_(NetStatement.java:175)
>         at org.apache.derby.client.am.Statement.readExecuteCall(Statement.java:1570)
>         at org.apache.derby.client.am.PreparedStatement.flowExecute(PreparedStatement.java:2156)
>         at org.apache.derby.client.am.PreparedStatement.executeX(PreparedStatement.java:1599)
>         at org.apache.derby.client.am.CallableLocatorProcedures.clobReleaseLocator(CallableLocatorProcedures.java:662)
>         ... 39 more
> Caused by: org.apache.derby.client.am.SqlException: The locator that was supplied for
this CLOB/BLOB is invalid
>         ... 48 more
> The problem dosen't exist in the embedded driver.
> The immediate cause seems to be that the client driver state becomes out of sync with
the server side. This may be fixable by dealing specifically witht the invalid locator exception
in free().

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message