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:37:58 GMT

> closeIfNoTx is your method, not ours. Punk.

FTR, Patrick means that in the nicest possible way :)




On Apr 24, 2007, at 7:31 PM, Patrick Linskey wrote:

>>>> 	at org.apache.openjpa.persistence.EntityManagerImpl.close
>>>> (EntityManagerImpl.java:999)
>>
>> 3) OpenJPA calls em.close since there is no transaction,
>> which I think "closes" the query
>>
>>>> 	at org.apache.openejb.persistence.JtaEntityManager.closeIfNoTx
>>>> (JtaEntityManager.java:87)
>>
>> 2) OpenJPA calls closeIfNoTx
>>
>>>> 	at
>>>> org.apache.openejb.persistence.JtaEntityManager.createNamedQuery
>>>> (JtaEntityManager.java:189)
>>
>> 1) OpenEJB calls createNamedQuery
>>
>>>> 	at org.apache.openejb.core.cmp.jpa.JpaCmpEngine.createNamedQuery
>>>> (JpaCmpEngine.java:287)
>
> JtaEntityManager is one of your classes, not one of ours.  
> closeIfNoTx is
> your method, not ours. Punk.
>
> -Patrick
>
> -- 
> Patrick Linskey
> BEA Systems, Inc.
> ______________________________________________________________________ 
> _
> Notice:  This email message, together with any attachments, may  
> contain
> information  of  BEA Systems,  Inc.,  its subsidiaries  and   
> affiliated
> entities,  that may be confidential,  proprietary,  copyrighted   
> and/or
> legally privileged, and is intended solely for the use of the  
> individual
> or entity named in this message. If you are not the intended  
> recipient,
> and have received this message in error, please immediately return  
> this
> by email and then delete it.
>
>> -----Original Message-----
>> From: Dain Sundstrom [mailto:dain@iq80.com]
>> Sent: Tuesday, April 24, 2007 7:29 PM
>> To: open-jpa-dev@incubator.apache.org
>> Subject: Re: Set query params without TX?
>>
>> I am "they", the one writing the cmp code in OpenEJB.
>>
>> On first read of the stack trace I thought as you that, I was
>> the one close the entity manager, but on a second read I
>> notice it was OpenJPA calling "closeIfNoTx" that closes the broker.
>>
>>> 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)
>>
>> 3) OpenJPA calls em.close since there is no transaction,
>> which I think "closes" the query
>>
>>>> 	at org.apache.openejb.persistence.JtaEntityManager.closeIfNoTx
>>>> (JtaEntityManager.java:87)
>>
>> 2) OpenJPA calls closeIfNoTx
>>
>>>> 	at
>>>> org.apache.openejb.persistence.JtaEntityManager.createNamedQuery
>>>> (JtaEntityManager.java:189)
>>
>> 1) OpenEJB calls createNamedQuery
>>
>>>> 	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
>>>>>
>>>>
>>>
>>
>>
>
> Notice:  This email message, together with any attachments, may  
> contain information  of  BEA Systems,  Inc.,  its subsidiaries   
> and  affiliated entities,  that may be confidential,  proprietary,   
> copyrighted  and/or legally privileged, and is intended solely for  
> the use of the individual or entity named in this message. If you  
> are not the intended recipient, and have received this message in  
> error, please immediately return this by email and then delete it.


Mime
View raw message