1 Reply Latest reply on Jul 2, 2006 4:43 PM by koen.aers

    Null Pointer for Nodes with '/' in the name

    ibivibiv

      I stumbled into an exception while trying to name a node in a process definition with a / in it. The eclipse plugin allows for the slash in the node name, however the parser for the process definition does not like it. I believe this is due to the / being used in the string tokenizer as the delimiter. Obviously, the easy solution is not to use a / in a node name, however in my instance it would be very desirable for me to use it. I am using code later to match the node name to a target task name in another system. I will most likely use a work around with a variable, but thought I would flag this here for consideration. Either the designer should not allow that character or the parser should except it. It may confuse future users who do not think to check the source code to see why they get the null pointer. The stack trace is as follows:


      
      09:48:15,610 ERROR [JpdlXmlReader] couldn't parse process definition
      java.lang.NullPointerException
       at org.jbpm.graph.def.ProcessDefinition.findNode(ProcessDefinition.java:335)
       at org.jbpm.graph.def.ProcessDefinition.findNode(ProcessDefinition.java:289)
       at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestination(JpdlXmlReader.java:678)
       at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestinations(JpdlXmlReader.java:656)
       at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestinations(JpdlXmlReader.java:648)
       at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:153)
       at org.jbpm.jpdl.par.JpdlArchiveParser.readFromArchive(JpdlArchiveParser.java:51)
       at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:81)
       at org.jbpm.graph.def.ProcessDefinition.parseParZipInputStream(ProcessDefinition.java:190)
       at org.jbpm.webapp.servlet.UploadServlet.doDeployment(UploadServlet.java:92)
       at org.jbpm.webapp.servlet.UploadServlet.handleRequest(UploadServlet.java:81)
       at org.jbpm.webapp.servlet.UploadServlet.service(UploadServlet.java:50)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:55)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:595)