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] Updated: (DERBY-3302) NullPointerException during recovery of database with territory-based collation
Date Mon, 07 Jan 2008 14:18:34 GMT

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

Knut Anders Hatlen updated DERBY-3302:
--------------------------------------

    Attachment: npe.sql

Attaching a script which reproduces the failure. Follow these steps:

1. Start ij

2. Execute this command in ij:
        run 'npe.sql';

3. Terminate ij with Ctrl-C (don't terminate it with Ctrl-D or EXIT, as those commands will
perform a clean shutdown)

4. Restart ij

5. Open a connection to the database with this command:
        connect 'jdbc:derby:colldb';

Then you'll get a NullPointerException with the following stack trace:

java.lang.NullPointerException
	at org.apache.derby.iapi.types.SQLChar.getCollationKey(SQLChar.java:2516)
	at org.apache.derby.iapi.types.WorkHorseForCollatorDatatypes.stringCompare(WorkHorseForCollatorDatatypes.java:88)
	at org.apache.derby.iapi.types.CollatorSQLVarchar.stringCompare(CollatorSQLVarchar.java:159)
	at org.apache.derby.iapi.types.SQLChar.compare(SQLChar.java:902)
	at org.apache.derby.impl.store.access.btree.ControlRow.compareIndexRowToKey(ControlRow.java:1354)
	at org.apache.derby.impl.store.access.btree.index.B2IUndo.findUndo(B2IUndo.java:221)
	at org.apache.derby.impl.store.raw.data.LogicalPageOperation.findLogicalPage(LogicalPageOperation.java:358)
	at org.apache.derby.impl.store.raw.data.LogicalPageOperation.generateUndo(LogicalPageOperation.java:164)
	at org.apache.derby.impl.store.raw.log.FileLogger.undo(FileLogger.java:991)
	at org.apache.derby.impl.store.raw.xact.Xact.abort(Xact.java:919)
	at org.apache.derby.impl.store.raw.xact.XactFactory.rollbackAllTransactions(XactFactory.java:529)
	at org.apache.derby.impl.store.raw.log.LogToFile.recover(LogToFile.java:1201)
	at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java:334)
	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1992)
	at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
	at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:546)
	at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:419)
	at org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java:1001)
	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1992)
	at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
	at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:546)
	at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:419)
	at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java:753)
	at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java:201)
	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1992)
	at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
	at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1829)
	at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(BaseMonitor.java:1695)
	at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1575)
	at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:994)
	at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:542)
	at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:1957)
	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:255)
	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:54)
	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
	at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:211)
	at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1238)
	at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1088)
	at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:916)
	at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:328)
	at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:248)
	at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
	at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
	at org.apache.derby.impl.tools.ij.Main.main(Main.java:73)
	at org.apache.derby.tools.ij.main(ij.java:59)
	at org.apache.derby.iapi.tools.run.main(run.java:51)

> NullPointerException during recovery of database with territory-based collation
> -------------------------------------------------------------------------------
>
>                 Key: DERBY-3302
>                 URL: https://issues.apache.org/jira/browse/DERBY-3302
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.3.1.4, 10.3.2.1, 10.4.0.0
>            Reporter: Knut Anders Hatlen
>         Attachments: npe.sql
>
>
> When logical undo is performed on a database with territory-based collation, you may
get a NullPointerException in SQLChar.getCollationKey() because SQLChar.getLocaleFinder()
returns null.
> This bug was reported on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/8253

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message