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

Sam Hutchins commented on DERBY-7114:
-------------------------------------

We updated our products to Java 11 a little while ago, but I have managed to 
dig out an example from before that change. This is from an older version of 
the same product, still with Derby 10.14.2.0 and Java 1.8_161:

 
{code:java}
 Caused by: java.sql.SQLException: Java exception: 
'org.apache.derby.iapi.store.raw.PageKey cannot be cast to 
org.apache.derby.iapi.store.raw.ContainerKey: java.lang.ClassCastException'.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java)
        at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java)
        at org.apache.derby.impl.jdbc.Util.javaException(Util.java)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java)
        at 
org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java)
        at 
org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(EmbedResultSet.java)
        at 
org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java)
        at org.apache.derby.impl.jdbc.EmbedResultSet.next(EmbedResultSet.java)
        at 
uk.co.screamingfrog.seospider.db.LinksTableOperations.getLinks(LinksTableOperations.java:257)
        ... 15 more
Caused by: ERROR XJ001: Java exception: 
'org.apache.derby.iapi.store.raw.PageKey cannot be cast to 
org.apache.derby.iapi.store.raw.ContainerKey: java.lang.ClassCastException'.
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java)
        ... 27 more
Caused by: java.lang.ClassCastException: 
org.apache.derby.iapi.store.raw.PageKey cannot be cast to 
org.apache.derby.iapi.store.raw.ContainerKey
        at 
org.apache.derby.impl.store.raw.data.FileContainer.setIdentity(FileContainer.java)
        at 
org.apache.derby.impl.services.cache.ConcurrentCache.find(ConcurrentCache.java)
        at 
org.apache.derby.impl.store.raw.data.FileContainer.getUserPage(FileContainer.java)
        at 
org.apache.derby.impl.store.raw.data.FileContainer.getPage(FileContainer.java)
        at 
org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(BaseContainerHandle.java)
        at 
org.apache.derby.impl.store.access.btree.ControlRow.get(ControlRow.java)
        at 
org.apache.derby.impl.store.access.btree.ControlRow.get(ControlRow.java)
        at 
org.apache.derby.impl.store.access.btree.BranchControlRow.getChildPageAtSlot(BranchControlRow.java)
        at 
org.apache.derby.impl.store.access.btree.BranchControlRow.search(BranchControlRow.java)
        at 
org.apache.derby.impl.store.access.btree.BranchControlRow.search(BranchControlRow.java)
        at 
org.apache.derby.impl.store.access.btree.BTreeScan.positionAtStartForForwardScan(BTreeScan.java)
        at 
org.apache.derby.impl.store.access.btree.BTreeForwardScan.positionAtStartPosition(BTreeForwardScan.java)
        at 
org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java)
        at 
org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java)
        at 
org.apache.derby.impl.sql.execute.TableScanResultSet.loopControl(TableScanResultSet.java)
        at 
org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java)
        at 
org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java)
        at 
org.apache.derby.impl.sql.execute.NestedLoopJoinResultSet.getNextRowCore(NestedLoopJoinResultSet.java)
        at 
org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(BasicNoPutResultSetImpl.java)
        ... 18 more{code}

> class org.apache.derby.iapi.store.raw.PageKey cannot be cast to class 
> org.apache.derby.iapi.store.raw.ContainerKey
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-7114
>                 URL: https://issues.apache.org/jira/browse/DERBY-7114
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.14.2.0
>         Environment: Java 8/11, Windows/macOS
>            Reporter: Sam Hutchins
>            Priority: Major
>
> Hi,
>  
> We're using the embedded driver, and we sometimes see this exception in the 
> wild:
>  
> {code:java}
> java.lang.RuntimeException: java.sql.SQLException: Java exception: 'class 
> org.apache.derby.iapi.store.raw.PageKey cannot be cast to class 
> org.apache.derby.iapi.store.raw.ContainerKey 
> (org.apache.derby.iapi.store.raw.PageKey and 
> org.apache.derby.iapi.store.raw.ContainerKey are in unnamed module of loader 
> 'app'): java.lang.ClassCastException'.java.lang.RuntimeException: 
> java.sql.SQLException: Java exception: 'class 
> org.apache.derby.iapi.store.raw.PageKey cannot be cast to class 
> org.apache.derby.iapi.store.raw.ContainerKey 
> (org.apache.derby.iapi.store.raw.PageKey and 
> org.apache.derby.iapi.store.raw.ContainerKey are in unnamed module of loader 
> 'app'): java.lang.ClassCastException'. at 
> uk.co.screamingfrog.db.utils.DBHelpers.handleSQLException(SourceFile:68) 
> ~[dbutils-1.0-SNAPSHOT.jar:?] at 
> uk.co.screamingfrog.seospider.db.LinksTableOperations.a(SourceFile:341) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.db.LinksTableOperations.b(SourceFile:215) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.storage.db.k.c(SourceFile:82) 
> ~[ScreamingFrogSEOSpider.jar:?] at java.util.HashMap.computeIfAbsent(Unknown 
> Source) ~[?:?] at uk.co.screamingfrog.seospider.storage.db.k.b(SourceFile:76) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.storage.db.k.a(SourceFile:41) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.g.f.b(SourceFile:184) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.g.f.a(SourceFile:81) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.g.f.f(SourceFile:56) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.g.m.h_(SourceFile:58) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.h.d.c(SourceFile:22) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.seospider.h.e.c(SourceFile:66) 
> ~[ScreamingFrogSEOSpider.jar:?] at seo.spider.spider.a.n(SourceFile:114) 
> ~[ScreamingFrogSEOSpider.jar:?] at seo.spider.spider.a.k(SourceFile:91) 
> ~[ScreamingFrogSEOSpider.jar:?] at 
> uk.co.screamingfrog.utils.utils.PriorityRunnable.run(SourceFile:25) 
> ~[utils-1.0-SNAPSHOT.jar:?] at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?] at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?] at 
> java.lang.Thread.run(Unknown Source) [?:?]Caused by: java.sql.SQLException: 
> Java exception: 'class org.apache.derby.iapi.store.raw.PageKey cannot be cast 
> to class org.apache.derby.iapi.store.raw.ContainerKey 
> (org.apache.derby.iapi.store.raw.PageKey and 
> org.apache.derby.iapi.store.raw.ContainerKey are in unnamed module of loader 
> 'app'): java.lang.ClassCastException'. at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> uk.co.screamingfrog.seospider.db.LinksTableOperations.a(SourceFile:314) 
> ~[ScreamingFrogSEOSpider.jar:?] ... 17 moreCaused by: 
> org.apache.derby.iapi.error.StandardException: Java exception: 'class 
> org.apache.derby.iapi.store.raw.PageKey cannot be cast to class 
> org.apache.derby.iapi.store.raw.ContainerKey 
> (org.apache.derby.iapi.store.raw.PageKey and 
> org.apache.derby.iapi.store.raw.ContainerKey are in unnamed module of loader 
> 'app'): java.lang.ClassCastException'. at 
> org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> uk.co.screamingfrog.seospider.db.LinksTableOperations.a(SourceFile:314) 
> ~[ScreamingFrogSEOSpider.jar:?] ... 17 moreCaused by: 
> java.lang.ClassCastException: class org.apache.derby.iapi.store.raw.PageKey 
> cannot be cast to class org.apache.derby.iapi.store.raw.ContainerKey 
> (org.apache.derby.iapi.store.raw.PageKey and 
> org.apache.derby.iapi.store.raw.ContainerKey are in unnamed module of loader 
> 'app') at 
> org.apache.derby.impl.store.raw.data.FileContainer.setIdentity(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.services.cache.ConcurrentCache.find(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.raw.data.FileContainer.getUserPage(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.raw.data.FileContainer.getPage(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BranchControlRow.getChildPageAtSlot(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BranchControlRow.search(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BranchControlRow.search(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BTreeScan.positionAtStartForForwardScan(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BTreeForwardScan.positionAtStartPosition(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.loopControl(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.sql.execute.NestedLoopJoinResultSet.getNextRowCore(Unknown
>  Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(Unknown 
> Source) ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) 
> ~[derby-10.14.2.0.jar:?] at 
> uk.co.screamingfrog.seospider.db.LinksTableOperations.a(SourceFile:314) 
> ~[ScreamingFrogSEOSpider.jar:?] ... 17 more {code}
>  
> We've seen it happen in 2 separate products, and with multiple paths in. I'm 
> not sure how to reproduce it though, I'm afraid. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to