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

Reply via email to