You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2007/01/18 11:59:30 UTC

[jira] Resolved: (JCR-710) NullPointerException in DatabasePersistenceManager and DatabaseFileSystem after a failed reconnection attempt

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

Stefan Guggisberg resolved JCR-710.
-----------------------------------

    Resolution: Fixed

fixed in svn r497392

olivier, thanks for reporting this issue and testing the fix!

> NullPointerException in DatabasePersistenceManager and DatabaseFileSystem after a failed reconnection attempt
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-710
>                 URL: https://issues.apache.org/jira/browse/JCR-710
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.2
>            Reporter: Olivier Dony
>         Assigned To: Stefan Guggisberg
>            Priority: Minor
>             Fix For: 1.2.1
>
>
> As reported on the dev mailing-list, this is what happens:
> The reconnection/retry mechanism in DatabasePersistenceManager/DatabaseFileSystem seems to behave fine when the connection times out or is killed for some reason, and the DB server is in fact still running.
> However there is a problem if the connection cannot be re-established directly, for example if a transient network outage lasts longer than the few reconnection attempts.
> Inside DatabasePersistenceManager.reestablishConnection(), initConnection() will fail, and the preparedStatements map will stay empty.
> This in turn will trigger a nasty NullPointerException (never caught) next time executeStmt() is called, because the map is still empty, and there is no check for that.
> The following proposed fix from Stefan Guggisberg has been tested to work when applied on 1.2-rc2:
> > the simplest fix would be to remove line 783 in
> > DatabasePersistenceManager.java and line 1010 in
> > DatabaseFileSystem.java,
> > i.e. the following stmt:
> > 
>  >      preparedStatements.clear();

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira