Known limitations

XML editing in the process designer

Direct editing of XML can lead to crashes in the graphical designer. This will be fixed in one of the next releases. Before you start editing the process XML source, make sure you create a backup copy.

Transition buttons in task forms

When generating a task form for a task, the transitions are not automatically populated in the generation dialog. Users have to enter the transition names and the button labels manually. If you don't do this no transition buttons will be generated to complete the task in the task form.

Workaround: First option is to add the transition buttons in the task form generation dialog. If you generated a task form without transition buttons, you still can complete the task with the console. Just save the variables in the task form and then in the 'Views' menu, select 'Transitions'. There you can click the 'end task' link for each of the available transitions.

Security vulnerability for GPD deployment

In the suite distribution, the console that is deployed in the server contains a servlet that allows the designer to deploy processes directly to a running server. This servlet is unprotected and people could load any process into a default installation. Security constraints will be added in 3.2.2 See also http://jira.jboss.com/jira/browse/JBPM-991

Changes from 3.2.1 to 3.2.2

Loading process archive resources

Loading process archive resources changed. Loading process archive classes remained the same. If you load a resource with the process classloader, it will look into the /classes directory in the process archive instead of loading it from the root of the classpath.

From the docs:

Delegation classes are loaded with the process class loader of their respective process 
definition. The process class loader is a class loader that has the jBPM classloader as 
a parent. The process class loader adds all the classes of one particular process definition. 
You can add classes to a process definition by putting them in the /classes folder in the 
process archive. Note that this is only useful when you want to version the classes that 
you add to the process definition. If versioning is not necessary, it is much more efficient 
to make the classes available to the jBPM class loader.

If the resource name doesn't start with a slash, resources are also loaded from the /classes 
directory in the process archive. If you want to load resources outside of the classes 
directory, start with a double slash ( // ). For example to load resource 
data.xml wich is located next to the processdefinition.xml on the root of the process archive 
file, you can do clazz.getResource("//data.xml") or 
classLoader.getResourceAsStream("//data.xml") or any of those getResource* variants. 

Bug

Feature Request

Patch

Task

Changes from 3.2.GA to 3.2.1

Release Notes - JBoss jBPM - Version jBPM jPDL 3.2.1

Bug

Feature Request

Patch

Task

jPDL XML Schema Changes from 3.1.x to 3.2.x

jPDL Database Schema Updates from 3.1.x to 3.2.x

create table JBPM_JOB (
  ID_ bigint generated by default as identity (start with 1), 
  CLASS_ char(1) not null, 
  VERSION_ integer not null, 
  DUEDATE_ timestamp, 
  PROCESSINSTANCE_ bigint, 
  TOKEN_ bigint, 
  TASKINSTANCE_ bigint, 
  ISSUSPENDED_ bit, 
  ISEXCLUSIVE_ bit, 
  LOCKOWNER_ varchar(255), 
  LOCKTIME_ timestamp, 
  EXCEPTION_ varchar(4000), 
  RETRIES_ integer, 
  NAME_ varchar(255), 
  REPEAT_ varchar(255),
  TRANSITIONNAME_ varchar(255), 
  ACTION_ bigint, 
  GRAPHELEMENTTYPE_ varchar(255), 
  GRAPHELEMENT_ bigint, 
  NODE_ bigint, 
  primary key (ID_)
)

alter table JBPM_MODULEINSTANCE add column VERSION_ integer
alter table JBPM_NODE add column DESCRIPTION_ varchar(4000)
alter table JBPM_NODE add column ISASYNCEXCL_ bit
alter table JBPM_NODE add column SUBPROCNAME_ varchar(255)
alter table JBPM_NODE add column SCRIPT_ bigint
alter table JBPM_POOLEDACTOR add column VERSION_ integer
alter table JBPM_PROCESSDEFINITION add column CLASS_ char(1)
alter table JBPM_PROCESSDEFINITION add column DESCRIPTION_ varchar(4000)
alter table JBPM_PROCESSINSTANCE add column KEY_ varchar(255)
alter table JBPM_SWIMLANEINSTANCE add column VERSION_ integer
alter table JBPM_TASK add column CONDITION_ varchar(255)
alter table JBPM_TASK add column PRIORITY_ integer
alter table JBPM_TASKINSTANCE add column VERSION_ integer
alter table JBPM_TASKINSTANCE add column PROCINST_ bigint
alter table JBPM_TOKEN add column LOCK_ varchar(255)
alter table JBPM_TOKENVARIABLEMAP add column VERSION_ integer
alter table JBPM_TRANSITION add column DESCRIPTION_ varchar(4000)
alter table JBPM_TRANSITION add column CONDITION_ varchar(255)
alter table JBPM_VARIABLEINSTANCE add column VERSION_ integer
alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY

insert into JBPM_JOB
    (ID_,
    CLASS_,
    VERSION_,
    DUEDATE_,
    PROCESSINSTANCE_,
    TOKEN_,
    TASKINSTANCE_,
    ISSUSPENDED_,
    ISEXCLUSIVE_,
    LOCKOWNER_,
    LOCKTIME_,
    EXCEPTION_,
    RETRIES_,
    NAME_,
    REPEAT_,
    TRANSITIONNAME_,
    ACTION_,
    GRAPHELEMENTTYPE_,
    GRAPHELEMENT_)
select
    ID_,
    'T',
    0,
    DUEDATE_,
    PROCESSINSTANCE_,
    TOKEN_,
    TASKINSTANCE_,
    ISSUSPENDED_,
    0,
    NULL,
    NULL,
    EXCEPTION_,
    0,
    NAME_,
    REPEAT_,
    TRANSITIONNAME_,
    ACTION_,
    GRAPHELEMENTTYPE_,
    GRAPHELEMENT_
from JBPM_TIMER;

drop table JBPM_MESSAGE

Since, 3.2, the table JBPM_DECISIONCONDITION is not used any more. But it is still in the default generated schema because of backwards compatibility reasons. Newly deployed processes (even if they have decision conditions) will not use that table any more. So if your old processes don't have decision conditions or if you only deploy new processes to your db, you can safely drop the JBPM_DECISIONCONDITION table. If you do that, don't forget to remove the line that refers to the decision condition class in your hibernate.cfg.xml and also remove the decisionConditions list entry in the org/jbpm/graph/node/Decision.hbm.xml file.


Changes from 3.2.Beta2 to 3.2.GA

Bug

Feature Request

Task


Changes from 3.2.Beta1 to 3.2.Beta2

Bug

Feature Request

Task


Changes from 3.2.Alpha2 to 3.2.Beta1

Bug

Feature Request

Task


Changes from 3.2.Alpha1 to 3.2.Alpha2

Bug

Feature Request

Task


Changes from 3.1.2 to 3.2.Alpha1

Bug

Feature Request

Task