You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Alexander Klimetschek (JIRA)" <ji...@apache.org> on 2015/04/25 00:52:38 UTC

[jira] [Created] (OAK-2811) Oak + data store: NPE in SegmentNodeStoreService.deactivate() leads to data store not shutting down properly

Alexander Klimetschek created OAK-2811:
------------------------------------------

             Summary: Oak + data store: NPE in SegmentNodeStoreService.deactivate() leads to data store not shutting down properly
                 Key: OAK-2811
                 URL: https://issues.apache.org/jira/browse/OAK-2811
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: segmentmk
    Affects Versions: 1.2
            Reporter: Alexander Klimetschek


For some reason, on shutdown of a system, the {{observerTracker}} in the SegmentNodeStoreService became null before deactivate() was called, leading to this NPE on [line 404|https://github.com/apache/jackrabbit-oak/blob/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java#L404]:
{noformat}
24.04.2015 13:20:55.960 *ERROR* [FelixStartLevel] org.apache.jackrabbit.oak-core [org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService(87)] The deactivate method has thrown an exception (java.lang.NullPointerException)
java.lang.NullPointerException: null
	at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.deactivate(SegmentNodeStoreService.java:404)
	... just reflection and apache felix code on shutdown
{noformat}

This in turn lead to the datastore not being closed ([4 lines later|https://github.com/apache/jackrabbit-oak/blob/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java#L408]). The particular proprietary datastore used here needs to stop some things and properly close a file, which didn't happen and left the file corrupted, which made that datastore not startup and thus preventing the repository from starting up again. Of course, this needs to be guarded more.

In any case, the NPE should be guarded.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)