openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Prud'hommeaux <mprud...@apache.org>
Subject Re: Set query params without TX?
Date Wed, 25 Apr 2007 02:12:55 GMT

It looks like openejb is closing the EntityManager while creating the  
query for some reason. You might want to check with them to see why  
they might be doing this.

Might they be prohibiting you from running at all outside of the  
transaction?


On Apr 24, 2007, at 7:02 PM, Dain Sundstrom wrote:

> java.lang.IllegalStateException
> 	at org.apache.openjpa.kernel.BrokerImpl.free(BrokerImpl.java:4083)
> 	at org.apache.openjpa.kernel.BrokerImpl.close(BrokerImpl.java:4013)
> 	at org.apache.openjpa.kernel.DelegatingBroker.close 
> (DelegatingBroker.java:1284)
> 	at org.apache.openjpa.persistence.EntityManagerImpl.close 
> (EntityManagerImpl.java:999)
> 	at org.apache.openejb.persistence.JtaEntityManager.closeIfNoTx 
> (JtaEntityManager.java:87)
> 	at org.apache.openejb.persistence.JtaEntityManager.createNamedQuery 
> (JtaEntityManager.java:189)
> 	at org.apache.openejb.core.cmp.jpa.JpaCmpEngine.createNamedQuery 
> (JpaCmpEngine.java:287)
> 	at org.apache.openejb.core.cmp.jpa.JpaCmpEngine.queryBeans 
> (JpaCmpEngine.java:218)
> 	at org.apache.openejb.core.cmp.CmpContainer.findEJBObject 
> (CmpContainer.java:718)
> 	at org.apache.openejb.core.cmp.CmpContainer.invoke 
> (CmpContainer.java:286)
>
> -dain
>
> On Apr 24, 2007, at 3:07 PM, Marc Prud'hommeaux wrote:
>
>> Dain-
>>
>> Can you send the embedded exception as well? That should tell us  
>> who closed the query, and it might give us a hint why...
>>
>>
>> On Apr 24, 2007, at 3:03 PM, Dain Sundstrom wrote:
>>
>>> I have some code that runs outside of a transaction which does  
>>> basically the following:
>>>
>>>     Query query = entityManager.createNamedQuery(name)
>>>     query.setParameter(1, "foo");
>>>     List results = query.getResultList();
>>>
>>> If I don't set the parameter the code works fine (assuming the  
>>> query didn't need a parameter), but when I set the parameter, I  
>>> get the following exception:
>>>
>>> Caused by: <0.9.7-incubating-SNAPSHOT fatal user error>  
>>> org.apache.openjpa.persistence.InvalidStateException: The context  
>>> has been closed.  The stack trace at which the context was closed  
>>> is held in the embedded exception.
>>> FailedObject: java.lang.IllegalStateException
>>> 	at org.apache.openjpa.kernel.BrokerImpl.assertOpen 
>>> (BrokerImpl.java:4283)
>>> 	at org.apache.openjpa.kernel.QueryImpl.assertOpen(QueryImpl.java: 
>>> 1613)
>>> 	at org.apache.openjpa.kernel.DelegatingQuery.assertOpen 
>>> (DelegatingQuery.java:626)
>>> 	at org.apache.openjpa.persistence.QueryImpl.setParameter 
>>> (QueryImpl.java:404)
>>> 	at org.apache.openjpa.persistence.QueryImpl.setParameter 
>>> (QueryImpl.java:49)
>>> 	at org.apache.openejb.core.cmp.jpa.JpaCmpEngine.executeQuery 
>>> (JpaCmpEngine.java:261)
>>>
>>> Is this supposed to work?  If not, maybe we should throw the  
>>> exception when getting the query.
>>>
>>> In the mean time I'll code around this.
>>>
>>> -dain
>>
>


Mime
View raw message