Below is the full stack trace
03:53:35,328 22840367 DEBUG
(org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:100))
- Opening JPA EntityManager in OpenEntityManagerInViewFilter
03:53:35,328 22840367 DEBUG
(org.springframework.transaction.support.TransactionSynchronizationManager.bindResource(TransactionSynchronizationManager.java:168))
- Bound value [EMAIL PROTECTED] for key [EMAIL PROTECTED] to thread
[http-8081-Processor24]
03:53:35,328 22840367 DEBUG
(org.springframework.web.struts.DelegatingActionUtils.determineActionBeanName(DelegatingActionUtils.java:166))
- DelegatingActionProxy with mapping path '/entity' and module prefix ''
delegating to Spring bean with name [/entity]
03:53:35,343 22840382 DEBUG
(org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:203))
- Returning cached instance of singleton bean '/entity'
03:53:35,343 22840382 DEBUG
(org.springframework.transaction.support.TransactionSynchronizationManager.getResource(TransactionSynchronizationManager.java:140))
- Retrieved value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread
[http-8081-Processor24]
03:53:35,390 22840429 DEBUG
(org.springframework.transaction.support.TransactionSynchronizationManager.getResource(TransactionSynchronizationManager.java:140))
- Retrieved value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread
[http-8081-Processor24]
03:53:36,109 22841148 DEBUG
(org.springframework.transaction.support.TransactionSynchronizationManager.getResource(TransactionSynchronizationManager.java:140))
- Retrieved value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread
[http-8081-Processor24]
03:53:36,109 22841148 DEBUG
(org.springframework.transaction.support.TransactionSynchronizationManager.getResource(TransactionSynchronizationManager.java:140))
- Retrieved value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread
[http-8081-Processor24]
03:53:36,125 22841164 ERROR
(com.inxight.ta.app.struts.exceptions.BaseExceptionHandler.logException(BaseExceptionHandler.java:145))
- org.springframework.dao.InvalidDataAccessApiUsageException: Can only perform
operation while a transaction is active.; nested exception is
<openjpa-1.0.0-r420667:570500M nonfatal user error>
org.apache.openjpa.persistence.TransactionRequiredException: Can only perform
operation while a transaction is active.
Caused by: <openjpa-1.0.0-r420667:570500M nonfatal user error>
org.apache.openjpa.persistence.TransactionRequiredException: Can only perform
operation while a transaction is active.
at
org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4312)
at org.apache.openjpa.kernel.BrokerImpl.lock(BrokerImpl.java:3528)
at
org.apache.openjpa.kernel.DelegatingBroker.lock(DelegatingBroker.java:1233)
at
org.apache.openjpa.persistence.EntityManagerImpl.lock(EntityManagerImpl.java:887)
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
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:340)
at $Proxy59.lock(Unknown Source)
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
org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:180)
at $Proxy6.lock(Unknown Source)
at
com.inxight.mdr.dao.impl.DocumentDAOImpl.updateVersion(DocumentDAOImpl.java:452)
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
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.updateVersion(Unknown Source)
at
com.inxight.ta.app.service.impl.EntityServiceImpl.editEntity(EntityServiceImpl.java:555)
at
com.inxight.ta.app.struts.actions.EntityAction.edit(EntityAction.java:364)
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
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at com.inxight.ta.app.struts.actions.BaseAction.execute(BaseAction.java:70)
at
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
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 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
com.inxight.ta.app.filters.EncodingFilter.doFilter(EncodingFilter.java:80)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:111)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
---------------------------------------------------------------
"Luck is what happens when preparation meets opportunity"
---------------------------------------------------------------
----- Original Message ----
From: Patrick Linskey <[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, October 29, 2007 8:32:55 AM
Subject: Re: Help - TransactionRequiredException while calling
entityManager.lock(). Using Sprin's Declarative Transaction Management
Hi,
Can you post the full stack trace?
Thanks,
-Patrick
On 10/29/07, Adish Abnave <[EMAIL PROTECTED]> wrote:
> I have deployed my web app in Tomcat container.Below is my app
context,
>
>
>
> <bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerE ntityManagerFactoryBean">
>
> <property name="dataSource" ref="dataSource"/>
>
> <property name="jpaVendorAdapter">
>
> <bean class="org.springframework.orm.jpa.vendor.OpenJpaV
endorAdapter">
>
> <property name="showSql" value="false"/>
>
> <property name="generateDdl" value="true"/>
>
> <property name="databasePlatform"
value="org.apache.openjpa.jdbc.sql.OracleDictionar y"/>
>
> </bean>
>
> </property>
>
> <property name="jpaPropertyMap">
>
> <map>
>
> <entry key="openjpa.jdbc.DBDictionary"
value="org.apache.openjpa.jdbc.sql.OracleDictionar y"/>
>
> <entry key="openjpa.Log" value="DefaultLevel=WARN,
Runtime=TRACE, SQL=TRACE"/>
>
> </map>
>
> </property>
>
> <property name="loadTimeWeaver">
>
> <bean class="org.springframework.instrument.classloading
.SimpleLoadTimeWeaver"/>
>
> </property>
>
> </bean>
>
>
>
> <bean id="jpaTemplate"
class="org.springframework.orm.jpa.JpaTemplate">
>
> <property name="entityManagerFactory"
ref="entityManagerFactory"/>
>
> </bean>
>
>
>
> <bean name="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionM anager">
>
> <property name="entityManagerFactory"
ref="entityManagerFactory" />
>
> <property name="dataSource" ref="dataSource"/>
>
> </bean>
>
>
>
> <tx:annotation-driven />
>
>
>
> I am using Spring's OpenEntityManagerinView filter as below in my
web.xml,
>
> <filter>
>
> <filter-name>JpaFilter</filter-name>
>
> <filter-class>org.springframework.orm.jpa.support.OpenEnti
tyManagerInViewFilter</filter-class>
>
> </filter>
>
>
>
> <filter-mapping>
>
> <filter-name>JpaFilter</filter-name>
>
> <url-pattern>*.do</url-pattern>
>
> </filter-mapping>
>
> All my service implementation methods are marked @Transactional.
>
>
>
> I get a TransactionRequiredException when calling
entityManager.lock(entity); method
>
> I am able to successfully merge() entities and my persistence context
type is the default "Transaction..."
>
> When i debug, entitymanager.getTransaction() throws a
> IllegalStateException and entityManager.getTransactionalObjects()
> returns an empty collection.
>
> Is the Transaction never started ?
>
> How do check this?
>
>
>
> Any help will be greatly appreciated.
> ---------------------------------------------------------------
> "Luck is what happens when preparation meets opportunity"
> ---------------------------------------------------------------
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
--
Patrick Linskey
202 669 5907
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com