[jboss-jira] [JBoss JIRA] Commented: (JBPM-457) Parent process deployment does not link process-state with subprocess definition

Tom Baeyens (JIRA) jira-events at lists.jboss.org
Tue Sep 4 07:34:24 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBPM-457?page=comments#action_12375105 ] 
            
Tom Baeyens commented on JBPM-457:
----------------------------------

in the ant task DeployProcessTask i see:

    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
    try {
      ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
      ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
      jbpmContext.deployProcessDefinition(processDefinition);
      
    } finally {
      jbpmContext.close();
    }


in the DeployProcessCommand i see:

  public Object execute(JbpmContext jbpmContext) throws Exception {
    ProcessDefinition processDefinition = null;
    if (par != null && par.length > 0) {
      log.info("start parsing process from par");

      // Thanks to George Mournos who helped to improve this:
      ZipInputStream zipInputStream = new ZipInputStream(
          new ByteArrayInputStream(par));
      processDefinition = ProcessDefinition
          .parseParZipInputStream(zipInputStream);

      jbpmContext.deployProcessDefinition(processDefinition);
      log.info("deployment sucessfull");
    }
    ...

In the ProcessUploadServlet, i see:

        JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
        try {
            response.setContentType("text/html");
            response.getWriter().println(handleRequest(request));
        } finally {
            jbpmContext.close();
        }

So I don't see where sub processes are being parsed without a JbpmContext.  If you know a specific scenario in 3.2.1, please reopen the case



> Parent process deployment does not link process-state with subprocess definition
> --------------------------------------------------------------------------------
>
>                 Key: JBPM-457
>                 URL: http://jira.jboss.com/jira/browse/JBPM-457
>             Project: JBoss jBPM
>          Issue Type: Bug
>          Components: Core Engine
>            Reporter: Eduardo Jimenez
>         Assigned To: Tom Baeyens
>            Priority: Critical
>
> From the ProcessState code:
> Code:
> if (jbpmSession != null) {
>       
>       // now, we must be able to find the sub-process
>       if (subProcessName != null) {
>         
>         // if the name and the version are specified
>         if (subProcessVersion != null) {
>           
>           try {
>             int version = Integer.parseInt(subProcessVersion);
>             // select that exact process definition as the subprocess definition
>             subProcessDefinition = jbpmSession.getGraphSession().findProcessDefinition(subProcessNam
> e, version);
>           } catch (NumberFormatException e) {
>             jpdlReader.addWarning("version in process-state was not a number: " + processStateElement.asXML());
>           }
>           
>         } else { // if only the name is specified
>           // select the latest version of that process as the subprocess
>           // definition
>           subProcessDefinition = jbpmSession.getGraphSession().findLatestProcessDefinition(subProces
> sName);
>         }
>       } else {
>         jpdlReader.addWarning("no sub-process name specified in process-state " + processStateElement.asXML());
>       }
>     }
> 	
> if there is no session open, it simply won't look for the parent process.
> Now, from the ProcessArchiveDeployer:
> Code:
> public static void deployZipInputStream(ZipInputStream zipInputStream, JbpmSessionFactory jbpmSessio
> nFactory) {
>     ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
>     deployProcessDefinition(processDefinition, jbpmSessionFactory);
>   }
> 	
> It reads the process definition first, then calls deploy, which opens the first jbpmSession!!!. The session must be open first before attempting to deploy!.
> Now, you might say, use the ant task, but the bug is still there:
> Code:
> private void deploy(File file, JbpmSessionFactory jbpmSessionFactory) throws IOException, FileNotFou
> ndException {
>     ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
>     ProcessArchiveDeployer.deployZipInputStream(zipInputStream,jbpmSessionFactory);
>   }
> 	
> See, the ant task doens't open a jbpmSession either, so its up to ProcessArchiveDeployer.deployZipInputStream() to do it, which is the same method I'm having an issue with.
> Examining ProcessArchiveDeployer, every way of deploying a process would have the same problem. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list