12 Replies Latest reply on Sep 11, 2006 10:08 AM by auré manga

    swimlane and taskinstances

    auré manga Novice

      Hi all,

      I have create two swimlanes with some tasks for each.
      I want to execute my process logging me like the swimlane"s user.

      Now, I have made this in order to know my current taskinstance but I have some taskinstances but I must have just one.

      I think this problem can be a problem of execution of my taskinstance. do you know how do this please. Now I use the token.signal() is it the good solution.

      I put my code of get back taskinstance and my console returns in order to know what is for you my problem.

      SwimlaneInstance si= (SwimlaneInstance)session.get("si");
       System.out.println( si.getName());
      
      
      
      
      
       System.out.println("avant la création du collection");
       System.out.println("NOM DU SWIMLANE : "+si.getName());
       Collection taskinstances = (Collection) si.getTaskMgmtInstance().getTaskInstances();
       System.out.println("ca fonctionne le MAP");
       Iterator itr1 = taskinstances.iterator();
       System.out.println("iterator ok");
       while(itr1.hasNext()) {
       System.out.println("creation taskinstance");
       taskinstance=(TaskInstance)itr1.next();
       // taskinstance = processInstance.getTaskMgmtInstance().createTaskInstance();
      
      
       if("ernie"==taskinstance.getActorId()){
       System.out.println("TASK ERNIE ARE:.ERNIE................:"+taskinstance.getName());
       }
      
       else if("bert"==taskinstance.getActorId()){
       System.out.println("task BERT ARE:.BERT....................:"+taskinstance.getName());
       }
       else{
      
       System.out.println("THE TASK ARE NOT ALLOWED TO YOUR USER .. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
       taskinstance.getSwimlaneInstance().setActorId("bert");
       System.out.println("Changement effectué.. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
       }
       /* System.out.println("TASK INSTANCE..................:"+ taskinstance.getName());
      
       System.out.println("SI ACTOR ID..................: "+si.getActorId());
       jbpmContext1.setActorId("bert");
       System.out.println("JBPM CONTEXT ACTOR ID..........: "+jbpmContext1.getActorId());
       */
      
       }
       //////////////////////////////////
       // jbpmContext.save(token);
      
       try{
       token = taskinstance.getToken();
       token.signal();
       token.signal();
       }
       finally{
      
       }


      the console returns:
      iterator ok
      creation taskinstance
      task BERT ARE:.BERT....................:DeclarationSinistre
      creation taskinstance
      TASK ERNIE ARE:.ERNIE................:start
      ############## save token good#######
      ############## save process good#######
      USER ..........................ernie
      set currentNode
      #### execute


        • 1. Re: swimlane and taskinstances
          auré manga Novice

          Hi all,

          I want to know if for execute au task I must use a specific methode in order to have my task execute and it disapear of the current task.

          Now, I use the signal() methode in order to execute my tasks but they seems to be create in the current execute tasks but they don't disapear when the tasks are finished.

          somebody can help me please.

          thank you for your help

          antitrust1982

          • 2. Re: swimlane and taskinstances
            Jitendra Singh Newbie

            hi,

            Please post the process definition, for us to be able to help you better.

            If I am getting the problem right, then the task instances are hanging on after the node has executed.

            I think the problem is that the task instances are not ending. We need to explicitly set "end-tasks" to true for tasks to end or call taskInstance.end().

            cheers!

            • 3. Re: swimlane and taskinstances
              auré manga Novice

              hello,

              my process definition:

              processDefinition = ProcessDefinition.parseXmlString(
              
              
               "<process-definition name='DeclarationSinistre'>"+
               "<swimlane name='FONCIA' >"+
               "<assignment expression='user(bert)'/>"+
               "</swimlane>"+
              
               "<swimlane name='Assurimo' >"+
               "<assignment expression='user(ernie)'/>"+
               "</swimlane>"+
              
              
               "<start-state name='start'>"+
               "<task swimlane='FONCIA'>"+
               "</task>"+
               "<transition name='' to='DeclarationSinistre'>"+"</transition>"+
               "</start-state>"+
              
               "<end-state name='end'>"+"</end-state>"+
              
               "<task-node name='DeclarationSinistre'>"+
               "<task swimlane='Assurimo'>"+
               "</task>"+
               "<transition name='' to='EnregistrementSinistre'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='EnregistrementSinistre'>"+
               "<task swimlane='FONCIA'>"+
               "</task>"+
               "<transition name='' to='ControlePrime'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='ControlePrime'>"+
               "<task swimlane='Assurimo'>"+
               "</task>"+
               "<transition name='OK' to='fork1'>"+"</transition>"+
               "<transition name='SinistreHorsClause' to='HorsClause'>"+"</transition>"+
               "<transition name='PrimeNonPayee' to='RelancePaiement'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='RelancePaiement'>"+
               "<task swimlane='FONCIA'>"+
               "</task>"+
               "<transition name='' to='ControlePrime'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='HorsClause'>"+
               "<task swimlane='FONCIA'>"+
               "</task>"+
               "<transition name='' to='end'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='TraitementSinistre'>"+
               "<task swimlane='Assurimo'>"+
               "</task>"+
               "<transition name='' to='join1'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='ExtractionDonnées'>"+
               "<task swimlane='FONCIA'>"+
               "</task>"+
               "<transition name='' to='transfertDonnées'>"+"</transition>"+
               "</task-node>"+
              
               "<task-node name='transfertDonnées'>"+
               "<task swimlane='Assurimo'>"+
               "</task>"+
               "<transition name='' to='join1'>"+"</transition>"+
               "</task-node>"+
              
               "<fork name='fork1'>"+
               "<transition name='' to='TraitementSinistre'>"+"</transition>"+
               "<transition name='tr2' to='ExtractionDonnées'>"+"</transition>"+
               "</fork>"+
              
               "<join name='join1'>"+
               "<transition name='' to='end'>"+"</transition>"+
               "</join>"+
              
               "</process-definition>"
              };


              I try to remplace my token.signal by token.end but I have an error of transient...

              why I have an error when I use the end methode and not when I use signal. How can resolve this type of error?



              my error is:

              08:41:34,485 ERROR [org.jbpm.db.SchedulerSession] org.hibernate.TransientObjectException: object references an unsaved transient instance -
              save the transient instance before flushing: org.jbpm.graph.exe.ProcessInstance
              dans finally
              fermeture du context
              08:41:34,501 ERROR [com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher] Could not execute action
              org.jbpm.JbpmException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@141038c'
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:174)
              at org.jbpm.scheduler.db.DbSchedulerService.cancelTimersByProcessInstance(DbSchedulerService.java:55)
              at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:275)
              at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:261)
              at org.jbpm.graph.exe.Token.end(Token.java:233)
              at org.jbpm.graph.exe.Token.end(Token.java:193)
              at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:350)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
              at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
              at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
              at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
              at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
              at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
              at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
              at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
              at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flus
              hing: org.jbpm.graph.exe.ProcessInstance
              at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
              at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
              at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
              at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
              at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:67)
              at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326)
              at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202)
              at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111)
              at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:169)
              ... 92 more
              08:41:34,501 ERROR [com.liferay.portal.shared.servlet.PortletServlet] Error executing action processInstance
              08:41:34,501 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/DeclarationSinistreSwimlane].[DECLARATIONSINISTRE]] "Ser
              vlet.service()" pour la servlet DECLARATIONSINISTRE a lanc?® une exception
              javax.portlet.PortletException: Error executing action processInstance
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:427)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
              at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
              at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
              at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
              at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
              at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
              at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
              at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
              at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.jbpm.JbpmException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@141038c'
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:174)
              at org.jbpm.scheduler.db.DbSchedulerService.cancelTimersByProcessInstance(DbSchedulerService.java:55)
              at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:275)
              at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:261)
              at org.jbpm.graph.exe.Token.end(Token.java:233)
              at org.jbpm.graph.exe.Token.end(Token.java:193)
              at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:350)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
              ... 49 more
              Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flus
              hing: org.jbpm.graph.exe.ProcessInstance
              at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
              at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
              at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
              at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
              at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:67)
              at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326)
              at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202)
              at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111)
              at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:169)
              ... 92 more
              Nested Exception is
              org.jbpm.JbpmException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@141038c'
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:174)
              at org.jbpm.scheduler.db.DbSchedulerService.cancelTimersByProcessInstance(DbSchedulerService.java:55)
              at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:275)
              at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:261)
              at org.jbpm.graph.exe.Token.end(Token.java:233)
              at org.jbpm.graph.exe.Token.end(Token.java:193)
              at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:350)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
              at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
              at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
              at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
              at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
              at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
              at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
              at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
              at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flus
              hing: org.jbpm.graph.exe.ProcessInstance
              at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
              at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
              at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
              at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
              at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:67)
              at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326)
              at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202)
              at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111)
              at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:169)
              ... 92 more
              08:41:34,563 ERROR [portal-web.docroot.html.common.error.jsp] Error executing action processInstance
              javax.portlet.PortletException: Error executing action processInstance
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:427)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
              at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
              at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
              at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
              at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
              at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
              at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
              at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
              at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.jbpm.JbpmException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@141038c'
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:174)
              at org.jbpm.scheduler.db.DbSchedulerService.cancelTimersByProcessInstance(DbSchedulerService.java:55)
              at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:275)
              at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:261)
              at org.jbpm.graph.exe.Token.end(Token.java:233)
              at org.jbpm.graph.exe.Token.end(Token.java:193)
              at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:350)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
              ... 49 more
              Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flus
              hing: org.jbpm.graph.exe.ProcessInstance
              at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
              at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
              at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
              at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
              at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:67)
              at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326)
              at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202)
              at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111)
              at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:169)
              ... 92 more

              Nested Exception is org.jbpm.JbpmException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@141038c'
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:174)
              at org.jbpm.scheduler.db.DbSchedulerService.cancelTimersByProcessInstance(DbSchedulerService.java:55)
              at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:275)
              at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:261)
              at org.jbpm.graph.exe.Token.end(Token.java:233)
              at org.jbpm.graph.exe.Token.end(Token.java:193)
              at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:350)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
              at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
              at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
              at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
              at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
              at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
              at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
              at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
              at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
              at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
              at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
              at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
              at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flus
              hing: org.jbpm.graph.exe.ProcessInstance
              at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
              at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
              at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
              at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
              at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:67)
              at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326)
              at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202)
              at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111)
              at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
              at org.jbpm.db.SchedulerSession.cancelTimersForProcessInstance(SchedulerSession.java:169)
              ... 92 more




              • 4. Re: swimlane and taskinstances
                Jitendra Singh Newbie

                Hi,

                I looked at your process definition, it appears that it needs some sorting to be done on itself.

                currently, "ControlePrime" node has 3 outgoing nodes from it, which do not make much sense if you are only using signal().

                Can you please explain in steps as to what you want to achieve, especially @ ControllePrime node. Is it supposed to act as a decision node?

                cheers!
                Jitendra

                • 5. Re: swimlane and taskinstances
                  auré manga Novice

                  In this node, it is like a decision node.
                  But at this time I want just execute my process with the task assign for each person.

                  But when I execute my process and do signal() in order to execute and pass to the next task, the task wich must be already execute are in the current task :s. I just want pass in each node and finish each task and after give each task to each person who must execute my tasks.

                  I hope is clear. My problem for now is to execute task and do not have the old task which must be already execute and finish.

                  thank you for your help.

                  (for the choice I specified the transition name in the signal: " signal(OK);"

                  • 6. Re: swimlane and taskinstances
                    Jitendra Singh Newbie

                    Try this:

                     "<task-node name='DeclarationSinistre' end-tasks = 'true' >
                     <task swimlane='Assurimo'>
                     </task>
                     <transition name='' to='EnregistrementSinistre'>"+"</transition>"+
                     "</task-node>"+
                    


                    This will end all task instances created in the node, so after this node there should be no instances assigned to 'Assurimo' swimlane.

                    cheers!

                    • 7. Re: swimlane and taskinstances
                      auré manga Novice

                      hello,

                      I ask me a question. as I have a list of tasks (the new ones and the old ones) when I execute this lines:

                      Iterator itr1 = taskinstances.iterator();
                       System.out.println("iterator ok");
                       while(itr1.hasNext()) {
                       System.out.println("creation taskinstance");
                       taskinstance=(TaskInstance)itr1.next();
                       // taskinstance = processInstance.getTaskMgmtInstance().createTaskInstance();
                       taskinstance.isSignalling();
                      
                       if("ernie"==taskinstance.getActorId()){
                       System.out.println("TASK ERNIE ARE:.ERNIE................:"+taskinstance.getName());
                       }
                      
                       else if("bert"==taskinstance.getActorId()){
                       System.out.println("task BERT ARE:.BERT....................:"+taskinstance.getName());
                       }
                       else{
                      
                       System.out.println("THE TASK ARE NOT ALLOWED TO YOUR USER .. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
                       taskinstance.getSwimlaneInstance().setActorId("bert");
                       System.out.println("Changement effectué.. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
                       }


                      I think that perhaps I create a new swimlane each time.

                      So I will put my file code in order to see you if you see why I have the task already signal and the new one.

                      thank you for you help in advance

                      antitrust 1982

                      my code:

                      (this is a java file which is executed when I pass from a jsp to an another one)


                      package com.opensymphony.webwork.portlet.tutorial;
                      
                      import java.util.Collection;
                      import java.util.Iterator;
                      import java.util.Map;
                      import java.util.Date;
                      import java.util.Set;
                      
                      import org.jbpm.db.JbpmSession;
                      import org.jbpm.db.JbpmSessionFactory;
                      import org.jbpm.graph.exe.*;
                      import org.jbpm.taskmgmt.def.*;
                      import org.jbpm.graph.def.ProcessDefinition;
                      import org.jbpm.graph.exe.ExecutionContext;
                      import org.jbpm.graph.exe.ProcessInstance;
                      import org.jbpm.graph.exe.Token;
                      import org.jbpm.taskmgmt.exe.Assignable;
                      import org.jbpm.taskmgmt.exe.PooledActor;
                      import org.jbpm.taskmgmt.exe.SwimlaneInstance;
                      import org.jbpm.taskmgmt.exe.TaskInstance;
                      import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
                      import org.jbpm.taskmgmt.log.SwimlaneLog;
                      
                      import javax.naming.InitialContext;
                      import org.hibernate.SessionFactory;
                      import com.opensymphony.xwork.ActionContext;
                      import com.opensymphony.xwork.ActionSupport;
                      import org.jbpm.*;
                      import org.jbpm.identity.hibernate.IdentitySession;
                      import javax.rmi.PortableRemoteObject;
                      
                      
                      public class Renseignement extends ActionSupport{
                      
                      
                       private String currentNode;
                       private String date;
                       private String societe;
                       private String redacteur;
                       private String tdemand;
                       ExecutionContext ec=null;
                       static JbpmConfiguration jbpmConfiguration = null;
                       static ProcessDefinition processDefinition= null;
                       JbpmContext jbpmContext=null;
                       TaskInstance taskinstance=null;
                       Token token=null;
                      
                       public void setCurrentNode(String currentNode) {
                       System.out.println("set currentNode");
                       this.currentNode = currentNode;
                       }
                      
                       public String getCurrentNode() {
                       System.out.println("get currentNode");
                       return currentNode;
                       }
                      
                       public void setDate(String date) {
                      
                       this.date = date;
                       }
                      
                       public String getDate() {
                      
                       return date;
                       }
                      
                       public void setSociete(String societe) {
                      
                       this.societe = societe;
                       }
                      
                       public String getSociete() {
                      
                       return societe;
                       }
                      
                       public void setRedacteur(String redacteur) {
                      
                       this.redacteur = redacteur;
                       }
                      
                       public String getRedacteur() {
                      
                       return redacteur;
                       }
                      
                       public void setTdemand(String tdemand) {
                      
                       this.tdemand = tdemand;
                       }
                      
                       public String getTdemand() {
                      
                       return tdemand;
                       }
                      
                      
                       @Override
                       public String execute() throws Exception {
                       ProcessInstance processInstance = null;
                       Map session = (Map) ActionContext.getContext().get("session");
                       JbpmContext jbpmContext1= (JbpmContext) session.get("jbpmContext");
                       processInstance=(ProcessInstance) session.get("process");
                       System.out.println("actorid: "+jbpmContext1.getActorId());
                       System.out.println("processdefiniton from session");
                       ProcessDefinition pd = (ProcessDefinition)session.get("processDefiniton");
                       System.out.println("ok");
                      
                      
                       SwimlaneInstance si= (SwimlaneInstance)session.get("si");
                       System.out.println( si.getName());
                      
                       System.out.println("avant la création du collection");
                       System.out.println("NOM DU SWIMLANE : "+si.getName());
                       Collection taskinstances = (Collection) si.getTaskMgmtInstance().getTaskInstances();
                       System.out.println("ca fonctionne le MAP");
                       Iterator itr1 = taskinstances.iterator();
                       System.out.println("iterator ok");
                       while(itr1.hasNext()) {
                       System.out.println("creation taskinstance");
                       taskinstance=(TaskInstance)itr1.next();
                      
                       taskinstance.isSignalling();
                      
                       if("ernie"==taskinstance.getActorId()){
                       System.out.println("TASK ERNIE ARE:.ERNIE................:"+taskinstance.getName());
                       }
                      
                       else if("bert"==taskinstance.getActorId()){
                       System.out.println("task BERT ARE:.BERT....................:"+taskinstance.getName());
                       }
                       else{
                      
                       System.out.println("THE TASK ARE NOT ALLOWED TO YOUR USER .. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
                       taskinstance.getSwimlaneInstance().setActorId("bert");
                       System.out.println("Changement effectué.. the task is :"+taskinstance.getName()+" to the user "+taskinstance.getActorId());
                       }
                      
                      
                       }
                      
                       try{
                       token = taskinstance.getToken();
                       token.signal();
                       token.signal();
                       }
                       finally{
                      
                       }
                       System.out.println("############## save token good#######");
                       // jbpmContext.save(processInstance);
                       System.out.println("############## save process good#######");
                       System.out.println("USER .........................."+jbpmContext1.getActorId());
                       this.setCurrentNode(currentNode);
                       Date date1 = new Date();
                       this.setDate(date1.toGMTString());
                       //session.put("tdemand",this.getTdemand());
                       //session.put("societe",this.getSociete());
                       //session.put("date",this.getDate());
                       //session.put("redateur", this.getRedacteur());
                       // session.put("processName",nameProcess);
                       //session.put("processDefiniton",processDefinition);
                       session.put("ec",ec);
                       session.put("si",si);
                       session.put("process",processInstance);
                       //session.put("jbpmContext",jbpmContext);
                       return SUCCESS;
                       }
                      }
                      


                      It appear in my console these lines:


                      actorid: ernie
                      processdefiniton from session
                      ok
                      FONCIA
                      avant la cr?®ation du collection
                      NOM DU SWIMLANE : FONCIA
                      ca fonctionne le MAP
                      iterator ok
                      creation taskinstance
                      task BERT ARE:.BERT....................:DeclarationSinistre
                      creation taskinstance
                      task BERT ARE:.BERT....................:ControlePrime
                      creation taskinstance
                      TASK ERNIE ARE:.ERNIE................:start
                      creation taskinstance
                      TASK ERNIE ARE:.ERNIE................:EnregistrementSinistre
                      ############## save token good#######
                      ############## save process good#######
                      USER ..........................ernie
                      set currentNode
                      #### execute
                      firstNAmle : null
                      get currentNode


                      • 8. Re: swimlane and taskinstances
                        auré manga Novice

                        I have tried you had your line nothing change. :s.

                        • 9. Re: swimlane and taskinstances
                          Jitendra Singh Newbie

                          okay..

                          Digging a little deeper and i found that all task instances will show up, that were created for this process definition. If you see taskInstance.hasEnded() for each task instance, then the one that was ended by "end-tasks='true'" will show as false.

                          Try using "taskMgtIntance.getUnfinishedTasks(token)". This should give you a list of tasks that are unfinished.

                          cheers!

                          • 10. Re: swimlane and taskinstances
                            Jitendra Singh Newbie

                            sorry . the ones that were ended with "end-tasks='true'" will return true for "hasEnded" method.

                            • 11. Re: swimlane and taskinstances
                              auré manga Novice

                              ok this is the solution I saw the tasks which are finished and not the new task.

                              thank you very much


                              Now I will work on the assigment of each task but the tasks seems to ignored the assigment by swimlane.

                              • 12. Re: swimlane and taskinstances
                                auré manga Novice

                                I execute my process normally but the porblem is when I put a actorId wrong the swimlane task is ignored and my task continu to be executed.

                                So for the swimlane where I must put my current actor Id in order to execute my task only by the poeple who are assign and not all people.

                                I have tried to use tokencreatelog but I don't know if it is the good way... now I have error with this classe. If somebody have use swimlane and know how I must use them. Can you explain how I must make my java files for working the assignment correctly.

                                thank you very much for your help

                                antitrust1982