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