Persist list of Entities with <int-jpa:outbound-channel-adapter - java

I may be missing something here but I cannot seem to find any docs about persisting a List of Entities using Spring Integration JPA Outbound Channel Adapter. I have an extremely simple scenario that should poll a database and copy new data across to another database. Thus:
<int-jpa:inbound-channel-adapter channel="myChannel"
entity-class="my.package.MyClass"
entity-manager="mysqlEntityManager"
auto-startup="true">
<int:poller fixed-rate="5000">
<int:transactional propagation="REQUIRED" transaction-manager="mysqlTransactionManager"/>
</int:poller>
</int-jpa:inbound-channel-adapter>
<int:channel id="myChannel" />
<int-jpa:outbound-channel-adapter channel="myChannel"
entity-class="my.package.MyClass"
entity-manager="hsqldbEntityManager">
<int-jpa:transactional transaction-manager="hsqldbTransactionManager" />
</int-jpa:outbound-channel-adapter>
The inbound-channel-adapter returns a List<MyClass> and then the outbound-channel-adapter throws the stack trace below...
How do I configure the adapter to accept a list of entites? I do not want to set max messages per poll in the inbound adapter/poller, as I would prefer minimal database operations.
Any help appreciated.
Spring docs:
http://static.springsource.org/spring-integration/docs/3.0.0.M1/reference/html/jpa.html
[task-scheduler-1] ERROR org.springframework.integration.handler.LoggingHandler - org.springframework.integration.MessageHandlingException: error occurred in message handler [org.springframework.integration.jpa.outbound.JpaOutboundGateway#165d2be]
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:79)
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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
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.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy24.handleMessage(Unknown Source)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:115)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:102)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:157)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:128)
at org.springframework.integration.core.MessagingTemplate.doSend(MessagingTemplate.java:288)
at org.springframework.integration.core.MessagingTemplate.send(MessagingTemplate.java:149)
at org.springframework.integration.endpoint.SourcePollingChannelAdapter.handleMessage(SourcePollingChannelAdapter.java:97)
at org.springframework.integration.endpoint.AbstractTransactionSynchronizingPollingEndpoint.doPoll(AbstractTransactionSynchronizingPollingEndpoint.java:82)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:146)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:144)
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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
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.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy23.call(Unknown Source)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller$1.run(AbstractPollingEndpoint.java:236)
at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:49)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:231)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Unknown entity: java.util.ArrayList
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:692)
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.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
at $Proxy18.merge(Unknown Source)
at org.springframework.integration.jpa.core.DefaultJpaOperations.merge(DefaultJpaOperations.java:175)
at org.springframework.integration.jpa.core.JpaExecutor.executeOutboundJpaOperation(JpaExecutor.java:223)
at org.springframework.integration.jpa.outbound.JpaOutboundGateway.handleRequestMessage(JpaOutboundGateway.java:81)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:134)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)
... 48 more
Caused by: org.hibernate.MappingException: Unknown entity: java.util.ArrayList
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:693)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1485)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:232)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:867)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:851)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:855)
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:686)
... 59 more

I have created a Jira in order to make that improvement:
https://jira.springsource.org/browse/INT-3029
As a work-around you could also extend DefaultJpaOperations (org.springframework.integration.jpa.core) and customize the persist() method, allowing you to handle a Collection type parameters. For some details see:
Batch inserts with JPA/EJB3
The adapters have an XML namespace attribute jpa-operations, allowing you to provide a reference to custom implementations. For more details, please see http://static.springsource.org/spring-integration/docs/latest-ga/reference/html/jpa.html#jpa-namespace-support-common-attributes

The outbound JPA adapter doesn't currently support persisting a list of entities; feel free to open a new JIRA Issue. You can add a simple <splitter/> before the outbound adapter (no attributes, just input and output channels) and it will bust the list into individual entitities.
However, with your current configuration, each persist will be done in a separate transaction.
Regardless, you probably want to synchronize the two transactions anyway so you should really start the hsql transaction at the same time as the mysql transaction so that Spring will make best efforts to synchronize the two transactions (commit them as close together as possible).
To do that, you'd need something like the ChainedTransactionManager in the 'Best Efforts 1PC' section of Dave Syer's excellent article on this subject.
This way, each of the split entities will be committed in the same transaction.

Related

Issue with CQ5 versioning

I have got a strange problem with Adobe CQ5 versioning.
I'm doing two different operations(one is adding and the other updates) using the same user login.
28.07.2017 06:30:52.846 *ERROR* [Response--12] [publishing.create.commentary.PSI43457815.int-emp] com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl Update publication failed com.ubs.f35.content.sdk.data.DaoException: com.day.cq.wcm.api.WCMException: Unable to create version.
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl.updatePublication(PublicationDaoImpl.java:208)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl$$FastClassByCGLIB$$b8ac430f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at com.ubs.f35.content.cms.common.aop.StopwatchMethodInterceptor.invoke(StopwatchMethodInterceptor.java:21)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.executeMethod(SessionRequiredInterceptor.java:106)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.invoke(SessionRequiredInterceptor.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl$$EnhancerByCGLIB$$d66ec20a.updatePublication(<generated>)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.unpermissionedUpdatePublicationInternal(PublicationServiceImpl.java:345)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.updatePublicationInternal(PublicationServiceImpl.java:322)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.updateSalesCommentary(PublicationServiceImpl.java:226)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl$$FastClassByCGLIB$$7c3b2aad.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at com.ubs.f35.content.cms.common.aop.StopwatchMethodInterceptor.invoke(StopwatchMethodInterceptor.java:21)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.executeMethod(SessionRequiredInterceptor.java:106)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.invoke(SessionRequiredInterceptor.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl$$EnhancerByCGLIB$$449170e6.updateSalesCommentary(<generated>)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor.updatePublication(PublishPublicationMessageProcessor.java:92)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor.handleObject(PublishPublicationMessageProcessor.java:44)
at com.ubs.f35.content.messaging.AbstractMessageProcessor.invoke(AbstractMessageProcessor.java:61)
at com.ubs.f35.content.messaging.AbstractMessageProcessor$$FastClassByCGLIB$$6f62e747.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:617)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor$$EnhancerByCGLIB$$c3ef3346.invoke(<generated>)
at com.ubs.f35.common.transport.events.lbm.ReceiveReplyCallbackHandler.processMessage(ReceiveReplyCallbackHandler.java:119)
at com.ubs.f35.common.transport.events.threadpool.ThreadPoolReceiveReplyCallbackHandler.access$001(ThreadPoolReceiveReplyCallbackHandler.java:11)
at com.ubs.f35.common.transport.events.threadpool.ThreadPoolReceiveReplyCallbackHandler$1.run(ThreadPoolReceiveReplyCallbackHandler.java:31)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at com.day.cq.wcm.core.impl.PageManagerImpl.createRevision(PageManagerImpl.java:1027)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationTemplate.createRevision(PublicationTemplate.java:410)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl.updatePublication(PublicationDaoImpl.java:205)
... 38 more
Caused by: javax.jcr.RepositoryException: org.apache.jackrabbit.core.state.StaleItemStateException: 124a7e07-1345-4bf7-81d2-c3c625ed62bc/{http://www.jcp.org/jcr/1.0}isCheckedOut has been modified externally
at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:218)
at org.apache.jackrabbit.core.VersionManagerImpl.access$300(VersionManagerImpl.java:73)
at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:142)
at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:135)
at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
at org.apache.jackrabbit.core.VersionManagerImpl.perform(VersionManagerImpl.java:96)
at org.apache.jackrabbit.core.VersionManagerImpl.checkout(VersionManagerImpl.java:135)
at org.apache.jackrabbit.core.NodeImpl.checkout(NodeImpl.java:2875)
at com.day.cq.wcm.core.impl.PageManagerImpl.createRevision(PageManagerImpl.java:1094)
... 41 more
Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 124a7e07-1345-4bf7-81d2-c3c625ed62bc/{http://www.jcp.org/jcr/1.0}isCheckedOut has been modified externally
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:670)
at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1473)
at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1503)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:398)
at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:373)
at org.apache.jackrabbit.core.version.VersionManagerImplBase$WriteOperation.save(VersionManagerImplBase.java:469)
at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:215)
... 49 more
28.07.2017 06:30:52.846 *DEBUG* [Response--12] [STOPWATCH] com.ubs.f35.content.cms.common.aop.StopwatchMethodInterceptor PublicationServiceImpl.updateSalesCommentary=14m 27s
28.07.2017 06:30:52.847 *DEBUG* [Response--12] [null] com.ubs.f35.content.sdk.session.SessionRequiredInterceptor Ending transaction
28.07.2017 06:30:52.847 *ERROR* [Response--12] [null] com.ubs.f35.content.messaging.AbstractMessageProcessor 612ed2de-e27b-4f21-9039-46c40435a469 Invoke failed with code: SERVICE_ERROR com.ubs.f35.content.messaging.service.ServiceException: Update publication failed
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.unpermissionedUpdatePublicationInternal(PublicationServiceImpl.java:353)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.updatePublicationInternal(PublicationServiceImpl.java:322)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.updateSalesCommentary(PublicationServiceImpl.java:226)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl$$FastClassByCGLIB$$7c3b2aad.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at com.ubs.f35.content.cms.common.aop.StopwatchMethodInterceptor.invoke(StopwatchMethodInterceptor.java:21)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.executeMethod(SessionRequiredInterceptor.java:106)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.invoke(SessionRequiredInterceptor.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl$$EnhancerByCGLIB$$449170e6.updateSalesCommentary(<generated>)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor.updatePublication(PublishPublicationMessageProcessor.java:92)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor.handleObject(PublishPublicationMessageProcessor.java:44)
at com.ubs.f35.content.messaging.AbstractMessageProcessor.invoke(AbstractMessageProcessor.java:61)
at com.ubs.f35.content.messaging.AbstractMessageProcessor$$FastClassByCGLIB$$6f62e747.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:617)
at com.ubs.f35.content.cms.publishing.internal.messaging.publication.PublishPublicationMessageProcessor$$EnhancerByCGLIB$$c3ef3346.invoke(<generated>)
at com.ubs.f35.common.transport.events.lbm.ReceiveReplyCallbackHandler.processMessage(ReceiveReplyCallbackHandler.java:119)
at com.ubs.f35.common.transport.events.threadpool.ThreadPoolReceiveReplyCallbackHandler.access$001(ThreadPoolReceiveReplyCallbackHandler.java:11)
at com.ubs.f35.common.transport.events.threadpool.ThreadPoolReceiveReplyCallbackHandler$1.run(ThreadPoolReceiveReplyCallbackHandler.java:31)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.ubs.f35.content.sdk.data.DaoException: com.day.cq.wcm.api.WCMException: Unable to create version.
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl.updatePublication(PublicationDaoImpl.java:208)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl$$FastClassByCGLIB$$b8ac430f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at com.ubs.f35.content.cms.common.aop.StopwatchMethodInterceptor.invoke(StopwatchMethodInterceptor.java:21)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.executeMethod(SessionRequiredInterceptor.java:106)
at com.ubs.f35.content.sdk.session.SessionRequiredInterceptor.invoke(SessionRequiredInterceptor.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl$$EnhancerByCGLIB$$d66ec20a.updatePublication(<generated>)
at com.ubs.f35.content.cms.publishing.internal.service.PublicationServiceImpl.unpermissionedUpdatePublicationInternal(PublicationServiceImpl.java:345)
... 26 more
Caused by: com.day.cq.wcm.api.WCMException: Unable to create version.
at com.day.cq.wcm.core.impl.PageManagerImpl.createRevision(PageManagerImpl.java:1145)
at com.day.cq.wcm.core.impl.PageManagerImpl.createRevision(PageManagerImpl.java:1027)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationTemplate.createRevision(PublicationTemplate.java:410)
at com.ubs.f35.content.cms.publishing.internal.dao.publication.PublicationDaoImpl.updatePublication(PublicationDaoImpl.java:205)
... 38 more
Caused by: javax.jcr.RepositoryException: org.apache.jackrabbit.core.state.StaleItemStateException: 124a7e07-1345-4bf7-81d2-c3c625ed62bc/{http://www.jcp.org/jcr/1.0}isCheckedOut has been modified externally
at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:218)
at org.apache.jackrabbit.core.VersionManagerImpl.access$300(VersionManagerImpl.java:73)
at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:142)
at org.apache.jackrabbit.core.VersionManagerImpl$2.perform(VersionManagerImpl.java:135)
at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
at org.apache.jackrabbit.core.VersionManagerImpl.perform(VersionManagerImpl.java:96)
at org.apache.jackrabbit.core.VersionManagerImpl.checkout(VersionManagerImpl.java:135)
at org.apache.jackrabbit.core.NodeImpl.checkout(NodeImpl.java:2875)
at com.day.cq.wcm.core.impl.PageManagerImpl.createRevision(PageManagerImpl.java:1094)
... 41 more
Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 124a7e07-1345-4bf7-81d2-c3c625ed62bc/{http://www.jcp.org/jcr/1.0}isCheckedOut has been modified externally
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:670)
at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1473)
at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1503)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:398)
at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:373)
at org.apache.jackrabbit.core.version.VersionManagerImplBase$WriteOperation.save(VersionManagerImplBase.java:469)
at org.apache.jackrabbit.core.version.VersionManagerImplBase.checkoutCheckin(VersionManagerImplBase.java:215)
... 49 more
I believe that concurrent access might be the issue as the user is trying to update before the add operation even succeeds(we have got a pipeline that does the job of saving under the hood,but to the user, we show that the add operation is successful beforehand). We've also implemented thread locking mechanism so that only one operation(add/update) can be allowed at a time.
As a workaround, we've also tried to refresh the JCR session for the user using session.refresh method so that the state of the item can be updated before saving.
But nothing seems to be working.
Any help will be highly appreciated.

java.lang.IllegalStateException: No thread-bound request found + #JaversSpringDataAuditable

I'm getting java.lang.IllegalStateException: No thread-bound request found, when I use Javers Audit feature in my JPA repository class.
#JaversSpringDataAuditable
My service method(create/Update) is defined with #Async and it's handled using Future.
Future<T> updateEmployee(Employee employee) {
//some code here
return new AsyncResult<T>(employeeDTO);
}
Am I missing anything here?
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No
thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
at java.util.concurrent.FutureTask.report(Unknown Source) ~[na:1.8.0_112]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[na:1.8.0_112]
Caused by: java.lang.IllegalStateException: No thread-bound request found:
Are you referring to request attributes outside of an actual web request, or
processing a request outside of the originally receiving thread? If you are
actually operating within a web request and still receive this message, your
code is probably running outside of DispatcherServlet/DispatcherPortlet: In
this case, use RequestContextListener or RequestContextFilter to expose the
current request.at
org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.web.context.support.WebApplicationContextUtils.currentRequestAttributes(WebApplicationContextUtils.java:275) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.web.context.support.WebApplicationContextUtils.access$400(WebApplicationContextUtils.java:64) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:291) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:286) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:307) ~[spring-beans-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at com.sun.proxy.$Proxy146.getHeader(Unknown Source) ~[na:na]
at com.vz.uiam.common.audit.javers.ServletRequestAuthorProvider.provide(ServletRequestAuthorProvider.java:15) ~[uiam_common_cloud-1.0.11.jar:1.0.11]
at org.javers.spring.auditable.aspect.OnSaveAuditChangeHandler.handle(OnSaveAuditChangeHandler.java:17) ~[javers-spring-1.6.4.jar:na]
at org.javers.spring.auditable.aspect.JaversAuditableRepositoryAspect.applyVersionChange(JaversAuditableRepositoryAspect.java:94) ~[javers-spring-1.6.4.jar:na]
at org.javers.spring.auditable.aspect.JaversAuditableRepositoryAspect.applyVersionChanges(JaversAuditableRepositoryAspect.java:89) ~[javers-spring-1.6.4.jar:na]
at org.javers.spring.auditable.aspect.JaversAuditableRepositoryAspect.onVersionEvent(JaversAuditableRepositoryAspect.java:71) ~[javers-spring-1.6.4.jar:na]
at org.javers.spring.auditable.aspect.JaversAuditableRepositoryAspect.onSaveExecuted(JaversAuditableRepositoryAspect.java:59) ~[javers-spring-1.6.4.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_112]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:603) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.aspectj.AspectJAfterReturningAdvice.afterReturning(AspectJAfterReturningAdvice.java:61) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:53) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at com.vz.uiam.common.audit.aspect.JPAIdFieldNullifyAspect.monitor(JPAIdFieldNullifyAspect.java:55) ~[uiam_common_cloud-1.0.11.jar:1.0.11]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_112]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:68) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at com.sun.proxy.$Proxy149.save(Unknown Source) ~[na:na]
Javers is trying to find the author of the modification in the current web request. However, since you seems not to be in the context of a web request this fail.
If you are truly not in a web request, it seems you need to provide another AuthorProvider bean than ServletRequestAuthorProvider (which may be the default).
The answer given by Nyamiou The Galeanthrope is right, but just to clarify:
com.vz.uiam.common.audit.javers.ServletRequestAuthorProvider is definetly not a JaVers class but some implementation of the AuthorProvider interface.
By default (if you are using spring-boot-starter-data-jpa), JaVers gives you SpringSecurityAuthorProvider.

Memory leak because of HibernateSessionImpl in Spring batch

I've written a spring batch application that uses JPA+ Hibernate model for read-write operations.
I'm getting OutOfmemory error due to hibernateSessionImpl object.
I'm using JPA entity manager factory: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
as a singleton bean configured in spring.xml
Error:
java.lang.OutOfMemoryError
at java.util.HashMap.createHashedEntry(HashMap.java:650)
at java.util.HashMap.putImpl(HashMap.java:629)
at java.util.HashMap.put(HashMap.java:605)
at org.hibernate.event.def.AbstractFlushingEventListener.postFlush(AbstractFlushingEventListener.java:366)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:960)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
at $Proxy43.flush(Unknown Source)
at com.bunge.portal.core.dao.jpa.RssGenericDaoJpaImpl.create(RssGenericDaoJpaImpl.java:200)
at com.bunge.portal.rss.repository.RssFeedContentCacheRepositoryImpl.create(RssFeedContentCacheRepositoryImpl.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
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.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy44.create(Unknown Source)
at com.bunge.portal.rss.service.RssFeedServiceImpl.createRssFeedContentCache(RssFeedServiceImpl.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
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.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
15:22:08,023 ERROR AbstractStep:212 - Encountered an error executing the step
org.springframework.batch.core.JobExecutionException: Partition handler returned an unsuccessful step
at org.springframework.batch.core.partition.support.PartitionStep.doExecute(PartitionStep.java:110)
at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195)
at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:135)
at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:61)
at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60)
at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:144)
at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:124)
at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:135)
at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:281)
at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:120)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:114)
at org.springframework.batch.core.launch.support.CommandLineJobRunner.start(CommandLineJobRunner.java:349)
at org.springframework.batch.core.launch.support.CommandLineJobRunner.main(CommandLineJobRunner.java:574)
The problem was we were fetching 8000 records in one of the queries and using only first record. The batch was running successfully as the number of records in table were less, but as time passed the total records were too many and it was overflowing the heap memory,i changed the query to fetch only one record the latest one and it works fine....
Thanks for you help everyone..!!

Ouucre Error:java.io.IOException: invalid header field

I am getting error when i run my application using tomcat 6.0 server...
I don't understand what exactly I'm missing?
Here, I have developed a resteasy Webservice example in which I have a Studentclass with getters and setters
Also I have a List<Student>also with a getter setter and finally i have one Service class that contain business logic..all class is up to date..
But Still i m getting : :java.io.IOException: invalid header field ....
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Unknown Source)
at java.util.jar.Manifest.read(Unknown Source)
at java.util.jar.Manifest.<init>(Unknown Source)
at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:149)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4296)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Please tell me what i have actual missing....?
This error is causing by the mismatch order between “m” and “f” Jar options. Refer this link Link

Is it possible to use a #XmlJavaTypeAdapter annotation to unmarshal a method's return value?

Basically, I'm trying to implement JAXB's XML adapter pattern (#XmlJavaTypeAdapter) in order to transfer Map-style (key-value pair, no SOAP equivalent) objects between a CXF [Java] and .NET [Microsoft] solution (Using WSI Basic 1.1, doc/lit).
To do so, I followed Martin Lansler's adapater example. However, I'm trying to unmarshall my Java method's return type (i.e. MAP, see below). My 'XmlAdapter' class's 'unmarshal' method is never called I get the exception in fig2.
Any ideas what I'm doing wrong?
//From PriceService interface
//We want to unmarshal the 'Map<Integer, Double>' return type
#WebMethod(action="getPriceBreak")
#XmlJavaTypeAdapter(type=java.util.Map.class, value=WSMapAdapter.class)
public Map<Integer, Double> getPriceBreak(#WebParam(name="productCode") String productCode) {
}
//Fig2
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"", local:"return"). Expected elements are (none)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:622)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:527)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:114)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:240)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:117)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:645)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2132)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2015)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1940)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:471)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:301)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:121)
at $Proxy36.getPriceBreak(Unknown Source)
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.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:416)
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:392)
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.invoke(JaxWsPortClientInterceptor.java:379)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy37.getPriceBreak(Unknown Source)
at fisher.insight.service.TestLocalWSPriceServiceII.testGetPriceBreak(TestLocalWSPriceServiceII.java:48)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: javax.xml.bind.UnmarshalException

Categories