jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bala Kondepudi (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (JCR-3193) WorkflowSession.terminateWorkflow() throwing javax.jcr.InvalidItemStateException
Date Sat, 24 Dec 2011 01:06:30 GMT

     [ https://issues.apache.org/jira/browse/JCR-3193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Bala Kondepudi updated JCR-3193:
--------------------------------

    Priority: Major  (was: Critical)

Reducing Priority to Major
                
> WorkflowSession.terminateWorkflow() throwing javax.jcr.InvalidItemStateException
> --------------------------------------------------------------------------------
>
>                 Key: JCR-3193
>                 URL: https://issues.apache.org/jira/browse/JCR-3193
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 2.2.4
>         Environment: Day CQ 5.4
>            Reporter: Bala Kondepudi
>
> Hi,
> I am observing a consistent issue when trying to terminate a workflow with Workflow Session
terminateWorkflow() method. Pasted the code and exception below.
> The termination is leaving the workflow in an incomplete state where the instances is
aborted or cleaned (observed that workflow is not available in instances of workflow console)
but the workflow lock on the payload is not removed or refreshed.
> Because of this issue the payload is not eligible for any workflow process.
> <TestCase>
> public class MyWorkflowEventListener implements EventHandler, JobProcessor {
>     .
>     .
>     .
>     public boolean process(Event event) {
>         try{
>         .
>         .
>         .
>         WorkflowSession wfSession = getWorkflowSession();
>         String instanceId = (String) event
>                         .getProperty(WorkflowEvent.WORKFLOW_INSTANCE_ID);
>         Workflow workflow = (instanceId != null) ? wfSession
>                             .getWorkflow(instanceId) : null;
>         if (eventType.equals(WorkflowEvent.WORKFLOW_STARTED_EVENT)) {
>             Node jcrContentNode = ((javax.jcr.Session) wfSession.getSession()).
>                                     getNode("/content/en_UK/home/abc/jcr:content");
>             jcrContentNode.setProperty("my_staus","TERMINATED");
>             wfSession.getSession().save();
>             session.terminateWorkflow(workflow);
>         }
>         }catch(Exception e){
>             e.printStackTrace();
>         }
>     }
>     private WorkflowSession getWorkflowSession() {
>         try {
>             Session adminSession = repository.loginAdministrative(null);
>             return workflowService.getWorkflowSession(adminSession);
>         } catch (RepositoryException e) {
>                   e.printStackTrace();
>         }
>     }
>     .
>     .
> }
> </TestCase>
> <Exception>
> Log Message: Exception block: SOME EXCEPTION OCCURRED.| Output Data: com.day.cq.workflow.WorkflowException:
Error occured while aborting workflow:
> /etc/workflow/instances/2011-12-23/model_16822486799933
>     at com.day.cq.workflow.impl.jcr.WorkflowManager.abort(WorkflowManager.java:176)
>     at com.day.cq.workflow.impl.CQWorkflowSession.terminateWorkflow(CQWorkflowSession.java:281)
>     at com.abc.workflow.MyWorkflowFailTest.initializeWorkflowStart(com.abc.workflow.MyWorkflowFailTest.java:193)
>     at com.abc.workflow.MyWorkflowEventListener .process(com.abc.workflow.MyWorkflowEventListener.java:111)
>     at org.apache.sling.event.jobs.JobUtil$1.run(JobUtil.java:272)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.jcr.InvalidItemStateException: 114a382d-52ec-4998-969f-80b392238930
has been modified externally
>     at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:262)
>     at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
>     at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
>     at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
>     at org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:42)
>     at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
>     at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:355)
>     at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:758)
>     at com.day.crx.core.CRXSessionImpl.save(CRXSessionImpl.java:126)
>     at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at org.apache.sling.jcr.base.SessionProxyHandler$SessionProxyInvocationHandler.invoke(SessionProxyHandler.java:109)
>     at $Proxy0.save(Unknown Source)
>     at com.day.cq.workflow.impl.jcr.WorkflowManager.abort(WorkflowManager.java:173)
>     ... 7 more
> </Exception>
> Thanks,
> Bala Kondepudi

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message