2 Replies Latest reply on Aug 11, 2010 12:02 PM by Joris De Winne

    jBPM 4.3 deployment on oracle

    Joris De Winne Newbie

      I'm having an issue with one specific process deploying it on an oracle db. In total I've around 20 business process definitions. When the one specific process is included, I can not start any process execution. Not even an execution that has nothing to do with it. Also when going to the jBPM console I can not see the process definitions.

       

      My configuration:

      - jBPM 4.3

      - Oracle driver: 10.2.0.1.0

      - Using the ant task to deploy: org.jbpm.pvm.internal.ant.JbpmDeployTask

       

      The process definition that is giving the problems:

       

      <?xml version="1.0" encoding="UTF-8"?>
      <process xmlns="http://jbpm.org/4.0/jpdl" name="notifySigningFinished">
         <start name="start1" g="21,233,48,48"><transition to="getBundle"/></start>
         <!-- Check if bundle is both signed -->
         <java ejb-jndi-name="SignatureProcessBean/local" method="getBundle" name="getBundle" var="bundle" g="200,162,92,48">
            <arg><object expr="#{bundleId}"/></arg>
            <transition to="isSigned" g="-39,-21"/>
         </java>
         <decision name="isSigned" g="316,162,48,48">
           <transition name="to bundle is signed" to="fetchBundleInfo" g="-128,-22">
                 <condition expr="#{bundle.signStatus eq 'BOTH_SIGNED'}" />
            </transition> 
            <transition name="to end" to="end" g="-3,-22"/>
         </decision>
         <java ejb-jndi-name="SignatureProcessBean/local" g="516,162,92,48" method="getBundleInfo" name="fetchBundleInfo" var="bundleInfo">
            <arg>
            <object expr="#{bundleId}"/>
            </arg>
            <transition to="fetchMailToList"/>
         </java>
         <java ejb-jndi-name="SignatureProcessBean/local" g="650,162,92,48" method="getMailToAPLList" name="fetchMailToList" var="mailToAPLList">
            <transition to="bundle is signed"/>
         </java> 
          <state name="bundle is signed" g="650,265,48,48">
             <transition name="end" to="end" />
         <transition name="timeout" to="sendBundleSignedNotification">
            <timer duedate="1 business seconds" />
          </transition> 
        </state>
        <sub-process g="750,265,92,52" name="sendBundleSignedNotification" sub-process-key="sendBundleSignedMail">
                   <parameter-in subvar="mailToAPLList" var="mailToAPLList"/>
                   <parameter-in subvar="bundleInfo" var="bundleInfo"/>
      <transition to="end"/>
         </sub-process>
         <end name="end" />
      </process>
      
      
      

       

       

      The exception I'm getting when starting a process execution:

      2010-08-09 18:16:04,465 INFO  [org.jbpm.pvm.internal.svc.DefaultCommandService] (EJB-Timer-1281101023833[target=jboss.j2ee:ear=***REMOVED***,name=***REMOVED***]) exception while executing command org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd@51c50bce
      java.lang.NullPointerException
              at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:89)
              at org.jbpm.pvm.internal.repository.ProcessDeployer.deploy(ProcessDeployer.java:63)
              at org.jbpm.pvm.internal.repository.DeployerManager.deploy(DeployerManager.java:46)
              at org.jbpm.pvm.internal.repository.RepositorySessionImpl.getObject(RepositorySessionImpl.java:129)
              at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.execute(ProcessDefinitionQueryImpl.java:72)
              at org.jbpm.pvm.internal.query.AbstractQuery.untypedList(AbstractQuery.java:71)
              at org.jbpm.pvm.internal.query.AbstractQuery.untypedUniqueResult(AbstractQuery.java:75)
              at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.uniqueResult(ProcessDefinitionQueryImpl.java:145)
              at org.jbpm.pvm.internal.repository.RepositorySessionImpl.findProcessDefinitionByKey(RepositorySessionImpl.java:153)
              at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:58)
              at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:38)
              at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
              at org.jbpm.pvm.internal.tx.JtaTransactionInterceptor.executeInExistingTx(JtaTransactionInterceptor.java:70)
              at org.jbpm.pvm.internal.tx.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:55)
              at org.jbpm.pvm.internal.tx.JtaRetryInterceptor.executeWithoutRetry(JtaRetryInterceptor.java:56)
              at org.jbpm.pvm.internal.tx.JtaRetryInterceptor.execute(JtaRetryInterceptor.java:48)
              at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
              at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
              at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
              at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:66)
              at be.cirb.business.beans.upload.TriggerProcessFilesImpl.timeout(TriggerProcessFilesImpl.java:39)
              at sun.reflect.GeneratedMethodAccessor487.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
              at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
              at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor$InvocationContext.proceed(InvocationContextInterceptor.java:138)
              at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:44)
              at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:101)
              at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
              at sun.reflect.GeneratedMethodAccessor395.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:83)
              at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:70)
              at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:59)
              at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)
              at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)
              at sun.reflect.GeneratedMethodAccessor394.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
      

       

      When deploying it on a local mySQL, I've no problems.

       

      Some additional remarks: I've had similar problems with oracle in the past (deploying jBPM business processes). I could fix them by removing all xml comments from the jpdl files and also any DOS line feeds. When doing a google search on this issue, I can find one related post (http://permalink.gmane.org/gmane.comp.java.jboss.user/293637), but I can not find back that message in the user forums, so no idea if there's a solution for this.

       

      Joris