You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Michael Harrison <mi...@persistent.com> on 2017/08/17 18:04:50 UTC

How to avoid Exception:Aborting getChildNodes() - DocumentNodeState is null

We are using Oak 1.6.1 with an repository that is supported by a MongoDB back end. We are doing a bulk upload of assets from an FTP site and creating versioned assets in the repository, where the asset nodes have the following structure:


// Node "assetName", jcr:primaryType=nt:file, jcr:mixinTypes=mix:xxx           assetNode
//   Properties: jcr:mimeType - the MIME type
//               mix:size - the size of the asset file, in bytes
//               mix:metadataNames - the metadata names as a delimited string
//               mix:metadataValues - the metadata values as a delimited string
//   Node "content", jcr:primaryType=nt:resource                                contentNode (child)
//     Properties: jcr:data - the actual asset bytes


All the assets are of type .jpg. There are several concurrent threads that read files from the FTP site and create assets.


For some assets, when doing a Session.save() prior to checkin we get the following exception (stack trace snipped for compactness):


org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: Aborting getChildNodes() - DocumentNodeState is null for br15daca61b5b-0-2 at /:conflict/changeDeletedNode/Unassigned/sequence_of_attributes_works_fine - Copy (2).png
    at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$7.apply(DocumentNodeStore.java:1201)
        ...
    at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:274)
    at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:416)


I have seen a number of defect reports concerning "DocumentNodeState is null", but they all seem to have been fixed.


Can someone help me to find out what we are doing wrong that causes this exception?


Mike Harrison





DISCLAIMER
==========
This e-mail may contain privileged and confidential information which is the property of Persistent Systems Ltd. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Persistent Systems Ltd. does not accept any liability for virus infected mails.