8 Replies Latest reply on Mar 8, 2013 4:18 AM by zackmc

    Error changing value of Lob variable at jBPM 4.x

    Paweł Poseł Newbie

      I'v noticed frequently such error during changing existing Lob varibale:

       

      Caused by: org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [org.jbpm.pvm.internal.lob.Lob#110051]

       

      The source of this problem is at BlobVariable:

       

        public void setObject(Object value) {

          if (this.lob!=null) {

            DbSession dbSession = EnvironmentImpl.getFromCurrent(DbSession.class, false);

            if (dbSession!=null) {

               dbSession.delete(todel);

            }

          }

          this.lob = new Lob((byte[])value, true);

        }

       

      The solution of this problem:

       

        public void setObject(Object value) {

          if (this.lob!=null) {

            DbSession dbSession = EnvironmentImpl.getFromCurrent(DbSession.class, false);

            if (dbSession!=null) {

                Lob todel = this.lob;

                this.lob = null;

               dbSession.delete(todel);

            }

          }

          this.lob = new Lob((byte[])value, true);

        }

      Hope samobody from jBPM team correct this bug.

       

      Below whole stacktrace:

       

      org.jbpm.api.JbpmException: couldn't acquire block of ids

      at org.jbpm.pvm.internal.id.DatabaseDbidGenerator.getNextId(DatabaseDbidGenerator.java:65)

      at org.jbpm.pvm.internal.lob.Lob.<init>(Lob.java:81)

      at org.jbpm.pvm.internal.type.variable.BlobVariable.setObject(BlobVariable.java:54)

      at org.jbpm.pvm.internal.type.Variable.setValue(Variable.java:91)

      at org.jbpm.pvm.internal.model.ScopeInstanceImpl.setVariable(ScopeInstanceImpl.java:171)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)

      at org.jbpm.pvm.internal.model.ExecutionImpl$$EnhancerByCGLIB$$8995f99.setVariable(<generated>)

      at org.jbpm.pvm.internal.model.ScopeInstanceImpl.setVariable(ScopeInstanceImpl.java:177)

      at org.jbpm.pvm.internal.model.ScopeInstanceImpl.setVariables(ScopeInstanceImpl.java:184)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)

      at org.jbpm.pvm.internal.model.ExecutionImpl$$EnhancerByCGLIB$$8995f99.setVariables(<generated>)

      at org.jbpm.pvm.internal.cmd.SetExecutionVariablesCmd.execute(SetExecutionVariablesCmd.java:47)

      at org.jbpm.pvm.internal.cmd.SetExecutionVariablesCmd.execute(SetExecutionVariablesCmd.java:1)

      at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)

      at org.jbpm.pvm.internal.spring.CommandTransactionCallback.doInTransaction(CommandTransactionCallback.java:50)

      at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)

      at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:77)

      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)

      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)

      at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)

      at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.setVariable(ExecutionServiceImpl.java:145)

      at pl.ufg.zsi.bpm.service.BpmService.commitTask(BpmService.java:165)

      at pl.ufg.zsi.bpm.service.BpmService$$FastClassByCGLIB$$5c2263c6.invoke(<generated>)

      at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

      at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

      at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)

      at pl.ufg.zsi.bpm.service.BpmService$$EnhancerByCGLIB$$e88e1679.commitTask(<generated>)

      at pl.ufg.zsi.bpm.task.controller.BaseTaskFormController.onSubmit(BaseTaskFormController.java:145)

      at pl.ufg.zsi.common.controller.BaseFormController.onSubmit(BaseFormController.java:571)

      at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)

      at org.springframework.web.servlet.mvc.CancellableFormController.processFormSubmission(CancellableFormController.java:140)

      at pl.ufg.zsi.common.controller.BaseFormController.processFormSubmission(BaseFormController.java:275)

      at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)

      at pl.ufg.zsi.common.controller.BaseFormController.handleRequestInternal(BaseFormController.java:108)

      at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

      at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)

      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)

      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)

      at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)

      at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240)

      at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:258)

      at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1174)

      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901)

      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)

      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)

      at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)

      at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)

      at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:99)

      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)

      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)

      at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)

      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)

      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

      at java.lang.Thread.run(Unknown Source)

      Caused by: org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [org.jbpm.pvm.internal.lob.Lob#110051]

      at org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1014)

      at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:165)

      at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)

      at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)

      at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)

      at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)

      at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218)

      at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)

      at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)

      at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)

      at org.hibernate.engine.Cascade.cascade(Cascade.java:130)

      at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:131)

      at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:122)

      at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65)

      at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)

      at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)

      at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)

      at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)

      at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)

      at org.jbpm.pvm.internal.id.AcquireDbidBlockCmd.execute(AcquireDbidBlockCmd.java:27)

      at org.jbpm.pvm.internal.id.AcquireDbidBlockCmd.execute(AcquireDbidBlockCmd.java:1)

      at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)

      at org.jbpm.pvm.internal.spring.CommandTransactionCallback.doInTransaction(CommandTransactionCallback.java:50)

      at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)

      at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:77)

      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInExistingEnvironment(EnvironmentInterceptor.java:47)

      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:42)

      at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)

      at org.jbpm.pvm.internal.id.DatabaseDbidGenerator.acquireDbidBlock(DatabaseDbidGenerator.java:76)

      at org.jbpm.pvm.internal.id.DatabaseDbidGenerator.getNextId(DatabaseDbidGenerator.java:63)

      ... 122 more