0 Replies Latest reply on Feb 26, 2014 5:20 AM by kpsundarapandian

    javax.jcr.PathNotFoundException or javax.jcr.ItemExistsException during creation of flow diagram after a new package is created

    kpsundarapandian

      Hi All,

           JBPM Guvnore application is using Jackrabbit repository, which will store business flow diagrams. During undeployment process of Guvnore application, Jackrabbit repository will be shutdown. Sometimes, during shutdown of repository below error message is shown.

      14:41:02,796 INFO  [org.drools.repository.jackrabbit.JackrabbitRepositoryConfigurator] (MSC service thread 1-4) shutdown | Exit

      14:41:02,797 INFO  [stdout] (MSC service thread 1-4) 20-Feb-2014 14:41:02,796 DEBUG: [RulesRepositoryConfigurator:186] SHUTDOWN RULES CONFIG

      14:41:02,816 ERROR [org.jboss.weld.Bean] (MSC service thread 1-4) WELD-000019 Error destroying an instance Managed Bean [class org.jboss.seam.security.permission.SecurityRuleLoader] with qualifiers [@Any @Default] of org.jboss.seam.security.permission.SecurityRuleLoader@2659a281

      14:41:03,448 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/metarule-gui].[guvnorService]] (http--10.241.4.20-8080-23) Servlet.service() for servlet guvnorService threw exception: java.lang.IllegalStateException: JBAS016071: Singleton not set for ModuleClassLoader for Module "deployment.metarule-gui.war:main" from Service Module Loader. This means that you are trying to access a weld deployment with a Thread Context ClassLoader that is not associated with the deployment.

              at org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:75) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]

              at org.jboss.weld.Container.instance(Container.java:54) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:173) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:145) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

       

      1) Consider Jackrabbit repository is shutdown with error message. Started Jboss server and deployed 'guvnore' application. Tried to create new package and is successfull. When trying to create new flow diagram, getting below error message.

      15:00:08,245 INFO  [stdout] (http--10.241.4.20-8080-4) 20-Feb-2014 15:00:08,245 DEBUG: [ModuleItem:864] Trying to call 'content.getNode()' for ASSET_FOLDER_NAME.....

      15:00:08,246 INFO  [stdout] (http--10.241.4.20-8080-4) 20-Feb-2014 15:00:08,246 ERROR: [ServiceImplementation:1267] An error occurred checking if asset [MR_2295_V1_FEB20EIGTHMRJJ] exists in module [feb20eigth]:

      15:00:08,247 INFO  [stdout] (http--10.241.4.20-8080-4) org.drools.repository.RulesRepositoryException: javax.jcr.PathNotFoundException: assets

      15:00:08,247 INFO  [stdout] (http--10.241.4.20-8080-4)  at org.drools.repository.ModuleItem.containsAsset(ModuleItem.java:871)

      15:00:08,247 INFO  [stdout] (http--10.241.4.20-8080-4)  at org.drools.guvnor.server.ServiceImplementation.doesAssetExistInModule(ServiceImplementation.java:1262)

      15:00:08,248 INFO  [stdout] (http--10.241.4.20-8080-4)  at org.drools.guvnor.server.ServiceImplementation$Proxy$_$$_WeldClientProxy.doesAssetExistInModule(ServiceImplementation$Proxy$_$$_WeldClientProxy.java)

      15:00:08,248 INFO  [stdout] (http--10.241.4.20-8080-4)  at org.drools.guvnor.server.RepositoryServiceServlet.doesAssetExistInModule(RepositoryServiceServlet.java:1009)

      15:00:08,248 INFO  [stdout] (http--10.241.4.20-8080-4)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       

      2) Whenever javax.jcr.PathNotFoundException is thrown, we are able to create new flow diagram by clearing 'tmp' folder and restarting the Jboss server.

       

      3) Without any undeploy of guvnore application or restarting the server, deployed new war component of guvnore application. Here, during creation of new package, getting below error message.

      06:55:18,106 INFO  [stdout] (http--10.241.4.21-8080-1) 21-Feb-2014 06:55:18,105 DEBUG: [RulesRepository:1025] createModule | Adding nodePath : testfeb21st

      06:55:18,110 INFO  [stdout] (http--10.241.4.21-8080-1) 21-Feb-2014 06:55:18,109 ERROR: [RulesRepository:1060] Error when creating a new module

      06:55:18,112 INFO  [stdout] (http--10.241.4.21-8080-1) javax.jcr.ItemExistsException: This node already exists: /drools:repository/drools:package_area/testfeb21st

      06:55:18,114 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:1308)

      06:55:18,115 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.session.AddNodeOperation.perform(AddNodeOperation.java:111)

      06:55:18,117 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.session.AddNodeOperation.perform(AddNodeOperation.java:37)

      06:55:18,118 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)

      06:55:18,120 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)

      06:55:18,121 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.NodeImpl.addNodeWithUuid(NodeImpl.java:1798)

      06:55:18,123 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:1758)

      06:55:18,124 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.drools.repository.RulesRepository.createModule(RulesRepository.java:1026)

      06:55:18,125 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.drools.repository.RulesRepository.createModule(RulesRepository.java:998)

      06:55:18,127 INFO  [stdout] (http--10.241.4.21-8080-1)  at org.drools.guvnor.server.RepositoryModuleOperations.createModule(RepositoryModuleOperations.java:299)

      06:55:18,129 INFO  [stdout] (http--10.241.4.21-8080-1)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       

      4) FROM OUR ANALYSIS, how the Jackrabbit repository is maintained in the environment the behavior changes. WE NEED SOME TIPS OR SOLUTION, REGARDING, HOW TO MAINTAIN JACKRABBIT REPOSITORY USED BY JBPM's GUVNORE APPLICATION.

       

      5) Unable to narrow down the root cause, since restarting Jboss server is working in creating new package and new flow diagram, some times.

       

      jbpm-guvnore Version : 5.4.0-SNAPSHOT
      jbpm-designer Version :
      2.3.0.Final
      GWT SDK FOR GUVNORE :
      2.3.0
      Support JDK version by jbpm-guvnore :
      1.6 [Since we are using JDK1.7, in ANT script, setting 'javac.source' and 'javac.target' property as 1.6].
      JBoss Server AS : 7.1.1 version

      THANKS IN ADVANCE.!!!!