amin zamani created OAK-4911: -------------------------------- Summary: Can not read node Property in a Thread (Java) Key: OAK-4911 URL: https://issues.apache.org/jira/browse/OAK-4911 Project: Jackrabbit Oak Issue Type: Bug Affects Versions: 1.3.10 Environment: MAC OS X Reporter: amin zamani
Hallo, we develop an application and everything is working as it should. We upload documents and for each document a new preview file (node) should be generated. It works well when we execute the code synchron. But because of the fact that the generation of a preview file (like PDF format) can take very long time we decided to move the preview generation code into a usual java thread so that after the user is upload a document the website is responding very quick and does not wait till the preview file is generated but the preview file is generated parallel. No the problem: As soon as I move the same code regarding to the preview file generation into a usual thread (no modifications to the logic, only a thread is bordered to it) suddenly the node path does not exist, this is the error: ----------------- Caused by: javax.jcr.PathNotFoundException: jcr:lastModifiedBy not found on /jcr:system/jcr:versionStorage/7e/f8/5b/7ef85b25-4598-4476-82df-446eb3a08a90/1.0/jcr:frozenNode/jcr:content at org.apache.jackrabbit.oak.jcr.session.NodeImpl$11.perform(NodeImpl.java:631) at org.apache.jackrabbit.oak.jcr.session.NodeImpl$11.perform(NodeImpl.java:625) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) at org.apache.jackrabbit.oak.jcr.session.NodeImpl.getProperty(NodeImpl.java:625) at com.westernacher.noah.util.content_repository.JcrUtil.getStringProperty(JcrUtil.java:35) --------------------------- In my point of view this is a bug. This is the code that works: Example: /// 1) User Upload document through browser in our web app.. // 2) ... document uploaded and saved in OAK CR // 3) Now generate the preview: updateDocumentPreview(documentId); -------------------------------- Now the same in a thread that does not work: => I have only moved the method "updateDocumentPreview(documentId);" in a Thread (Java 8): //Same code as before except the last line replaced by following lines: Runnable run = ()-> {updateDocumentPreview(documentId);} new Thread(run).start(); //Start the thread to generate a document preview -------------------------- -- This message was sent by Atlassian JIRA (v6.3.4#6332)