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

Dyre Tjeldvoll commented on DERBY-3221:
---------------------------------------

Thanks for your feedback, Bryan and Knut. So it is indeed a consequence of 
DERBY-827 :(

Hmm, the strange part is that according to the call stack posted by Knut the 
error happens at SubShape.insert(SubShape.java:37):

                                 // if nothing is new, then nothing to do
                                if (ps.executeUpdate() > 0) {

                                        // do pre stuff
                                        for (String stmt : sql.getProperty("pre"
).split(";")) {
                                                ps = conn.prepareStatement(stmt)
;
                                                ps.executeUpdate();  // <--- 
line 37
                                        }

So this particular statement is AFAICT never re-executed. So, in theory, 
DERBY-827 should not make a dfference here, and if I read James' comment 
correctly, it is the prepared statement being re-executed at line 57 that seems 
to be the culprit. Meaning that preparing it prior to each execute removes the 
symptom...

So we have to assume then, that some cruft left in the internal result set tree 
of this prepared statement SOMEHOW causes the newly prepared statement at line 
37 to fail. Right now, I cannot imagine how that could happen... 


> "java.sql.SQLException: The conglomerate (-5) requested does not exist." from 
> Derby 10.3.1.4 embedded within Eclipse 3.3 and RAD 7.0
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3221
>                 URL: https://issues.apache.org/jira/browse/DERBY-3221
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.3.1.4, 10.3.2.1
>         Environment: Windows Vista Ubuntu Linux on IBM's VM (RAD 7.0)
>            Reporter: Tim Halloran
>         Attachments: conlomerate.tar.gz
>
>
> We are getting an SQLException when several prepared statement deletes are 
> done upon an existing database.  As far as we can tell this exception should 
> never occur unless (evil) things like deleting the database or editing files 
> occurs.  This is using the embedded driver within a plug-in inside RAD 7.0 
> (and Eclipse 3.3).
> I'm not sure what else to submit that might be helpful.
> java.sql.SQLException: The conglomerate (-5) requested does not exist.
>  at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source)
>  at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
>  at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>  at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>  at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
>  at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
>  at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>  at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>  at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown Source)
>  at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>  at java.lang.reflect.Method.invoke(Unknown Source)
>  at 
> com.surelogic.sierra.jdbc.LazyPreparedStatementConnection$LazyPreparedStatement.invoke(Unknown
>  Source)
>  at $Proxy1.execute(Unknown Source)
>  at com.surelogic.sierra.jdbc.finding.FindingManager.delete(Unknown Source)
>  at 
> com.surelogic.sierra.jdbc.finding.ClientFindingManager.updateLocalFindings(Unknown
>  Source)
>  at 
> com.surelogic.sierra.jdbc.project.ClientProjectManager.synchronizeProject(Unknown
>  Source)
>  at 
> com.surelogic.sierra.client.eclipse.jobs.SynchronizeJob.synchronize(Unknown 
> Source)
>  at com.surelogic.sierra.client.eclipse.jobs.SynchronizeJob.run(Unknown 
> Source)
>  at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)
> Caused by: ERROR XSAI2: The conglomerate (-5) requested does not exist.
>  at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
>  at 
> org.apache.derby.impl.store.access.RAMTransaction.findExistingConglomerate(Unknown
>  Source)
>  at org.apache.derby.impl.store.access.RAMTransaction.openScan(Unknown Source)
>  at 
> org.apache.derby.impl.sql.execute.TemporaryRowHolderResultSet.getNextRowCore(Unknown
>  Source)
>  at 
> org.apache.derby.impl.sql.execute.TemporaryRowHolderResultSet.getNextRow(Unknown
>  Source)
>  at org.apache.derby.impl.sql.execute.IndexChanger.finish(Unknown Source)
>  at org.apache.derby.impl.sql.execute.IndexSetChanger.finish(Unknown Source)
>  at org.apache.derby.impl.sql.execute.RowChangerImpl.finish(Unknown Source)
>  at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown Source)
>  at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
>  ... 14 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