org.kuali.student.r2.common.exceptions.OperationFailedException: Version Mismatch

Kuali JIRA | Garey Taylor | 3 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    When the system gets under heavy load we start to see version mismatch errors in the registration engine. The exception happens in the same place every time: {code} org.kuali.student.r2.common.exceptions.OperationFailedException: Version Mismatch at org.kuali.student.enrollment.class1.lpr.service.impl.LprServiceImpl.changeLprTransactionItem(LprServiceImpl.java:458) at sun.reflect.GeneratedMethodAccessor1039.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy364.changeLprTransactionItem(Unknown Source) at org.kuali.student.enrollment.lpr.service.LprServiceDecorator.changeLprTransactionItem(LprServiceDecorator.java:137) at org.kuali.student.enrollment.lpr.service.LprServiceDecorator.changeLprTransactionItem(LprServiceDecorator.java:137) at org.kuali.student.enrollment.registration.engine.service.impl.CourseRegistrationEngineServiceImpl.updateLprTransactionItemResult(CourseRegistrationEngineServiceImpl.java:79) at org.kuali.student.enrollment.registration.engine.processor.CourseRegistrationLprActionProcessor.notifyWaitlistAvailable(CourseRegistrationLprActionProcessor.java:135) at org.kuali.student.enrollment.registration.engine.processor.CourseRegistrationLprActionProcessor.process(CourseRegistrationLprActionProcessor.java:76) at sun.reflect.GeneratedMethodAccessor1004.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:407) at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:278) at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:251) at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:562) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1096) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1088) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:985) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.kuali.student.r2.common.exceptions.VersionMismatchException: Failed for entity.id = d227f751-dc6e-4b61-ac5c-6a5782303262 at org.kuali.student.r2.common.dao.GenericEntityDao.merge(GenericEntityDao.java:171) at org.kuali.student.enrollment.class1.lpr.service.impl.LprServiceImpl.changeLprTransactionItem(LprServiceImpl.java:454) {code} So we need to find out what's updating the entity before this call.

    Kuali JIRA | 3 years ago | Garey Taylor
    org.kuali.student.r2.common.exceptions.OperationFailedException: Version Mismatch

    Root Cause Analysis

    1. org.kuali.student.r2.common.exceptions.VersionMismatchException

      Failed for entity.id = d227f751-dc6e-4b61-ac5c-6a5782303262

      at org.kuali.student.r2.common.dao.GenericEntityDao.merge()
    2. org.kuali.student
      LprServiceImpl.changeLprTransactionItem
      1. org.kuali.student.r2.common.dao.GenericEntityDao.merge(GenericEntityDao.java:171)
      2. org.kuali.student.enrollment.class1.lpr.service.impl.LprServiceImpl.changeLprTransactionItem(LprServiceImpl.java:454)
      2 frames