[jboss-jira] [JBoss JIRA] Commented: (JBPM-913) ProcessBean.startInstance does not set ProcessInstance.key, causing second process start for any user to fail

David Lloyd (JIRA) jira-events at lists.jboss.org
Mon Apr 23 14:06:30 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBPM-913?page=comments#action_12360248 ] 
            
David Lloyd commented on JBPM-913:
----------------------------------

I think this constraint is inherently flawed.  While most sensible RDBMSes will not index null values, this index also includes PROCESSDEFINITION_, which will not ever be null in this case.  A unique index would still be the best way to enforce this constraint at the database level would probably be a function-based index which enters nulls for both values if KEY_ is null - obviously not an option for a portable application.

Another option would be the introduction of a "UNIQUEKEY_" column to the table.  Then a unique constraint can be added on this single String nullable column.  This column would be used to maintain uniqueness; the setKey can be modified to look something like this:

public void setKey(String key) {
    this.key = key;
    if (key == null) {
        setConstraint(null);
    } else {
        setConstraint(Long.toString(getProcessDefinition().getId()) + ":" + key);
    }
}

> ProcessBean.startInstance does not set ProcessInstance.key, causing second process start for any user to fail
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: JBPM-913
>                 URL: http://jira.jboss.com/jira/browse/JBPM-913
>             Project: JBoss jBPM
>          Issue Type: Bug
>          Components: Web Interface
>    Affects Versions: jBPM jPDL 3.2
>            Reporter: Kevin Klinemeier
>         Assigned To: Tom Baeyens
>
> The web console isn't setting the ProcessInstance.key value.  This value has a unique constraint across key_ and processdefinition_
> To reproduce, either:
>  run against a non-hypersonic database and attempt to create two process instances for any one process definition.
> or 
>  run against  hypersonic, writing data to a file.  Inspect Process_Instances to see constraint violated by null, which apparently isn't caught by hypersonic.
> It's not clear to me how to correctly populate this field.

-- 
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