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

Kathey Marsden updated DERBY-3992:
----------------------------------

    Derby Categories: [High Value Fix]

> cleanupOnError does not log the original exception if it encounters an error 
> on cleanup
> ---------------------------------------------------------------------------------------
>
>                 Key: DERBY-3992
>                 URL: https://issues.apache.org/jira/browse/DERBY-3992
>             Project: Derby
>          Issue Type: Bug
>          Components: Services
>    Affects Versions: 10.5.0.0
>            Reporter: Kathey Marsden
>
> Recently I encountered a couple of cases where we encountered an error on 
> cleanupOnError so the original exception that caused the cleanup action was 
> lost.  It would be useful if the exception passed to cleanupOnError was 
> logged regardless of whether there was a subsequent exception on cleanup.
> Here are a couple sample traces.  The first was from a user site.
> ----------------------------------------------------------------
> New exception raised during cleanup null
> java.lang.NullPointerException
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.data.CachedPage.writePage(Unknown 
> Source)
>       at org.apache.derby.impl.store.raw.data.CachedPage.clean(Unknown Source)
>       at org.apache.derby.impl.services.cache.CachedItem.clean(Unknown Source)
>       at org.apache.derby.impl.services.cache.Clock.cleanCache(Unknown Source)
>       at org.apache.derby.impl.services.cache.Clock.cleanAll(Unknown Source)
>       at org.apache.derby.impl.services.cache.Clock.shutdown(Unknown Source)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop(Unknown Source)
>       at org.apache.derby.impl.services.monitor.TopService.stop(Unknown 
> Source)
>       at org.apache.derby.impl.services.monitor.TopService.shutdown(Unknown 
> Source)
>       at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(Unknown 
> Source)
>       at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown 
> Source)
>       at 
> org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(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.EmbedConnection.<init>(Unknown Source)
>       at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown Source)
>       at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
>       at java.sql.DriverManager.getConnection(DriverManager.java:562)
>       at java.sql.DriverManager.getConnection(DriverManager.java:186)
> The second was from a run on IBM 1.6 of store/encryptDatabaseTest1.sql. 
> I can't reproduce the error.
> New exception raised during cleanup name can't be null
> java.lang.NullPointerException: name can't be null
>       at java.io.FilePermission.init(FilePermission.java:183)
>       at java.io.FilePermission.<init>(FilePermission.java:267)
>       at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
>       at java.io.File.list(File.java:983)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(BaseDataFileFactory.java:2640)
>       at 
> java.security.AccessController.doPrivileged(AccessController.java:251)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.removeStubs(BaseDataFileFactory.java:1591)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop(BaseDataFileFactory.java:499)
>       at 
> org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:405)
>       at 
> org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:349)
>       at 
> org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:239)
>       at 
> org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(DatabaseContextImpl.java:60)
>       at 
> org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextManager.java:332)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(TransactionResourceImpl.java:419)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:584)
>       at 
> org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
>       at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:238)
>       at 
> org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
>       at java.sql.DriverManager.getConnection(DriverManager.java:316)
>       at java.sql.DriverManager.getConnection(DriverManager.java:297)
>       at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1329)
>       at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1179)
>       at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1007)
>       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)
> In both cases it would have been useful to have the original exception

-- 
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