openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dianne Richards (JIRA)" <>
Subject [jira] Created: (OPENJPA-1722) Problem serializing DistinctResultList when EntityManager is closed
Date Mon, 12 Jul 2010 18:03:51 GMT
Problem serializing DistinctResultList when EntityManager is closed

                 Key: OPENJPA-1722
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 2.1.0
            Reporter: Dianne Richards
            Assignee: Dianne Richards
             Fix For: 2.1.0

A client application that worked earlier is now failing in 2.10, relating to the serialization
of the DistinctResultList. It does a distinct query followed by a getResultList(). A DistinctResultList
is returned from the query, where a DelegatingResultList used to be returned. The EntityManager
is closed before the serialization occurs. It fails with the exception: org.apache.openjpa.persistence.InvalidStateException:
The context has been closed.

Here's what is happening: The DistinctResultList contains a RuntimeExceptionTranslator object
which contains the closed EntityManager. The writeObject() in the enclosed BrokerImpl does
an assertOpen(), which issues the exception.

The DelegatingResultList also contains the RuntimeExceptionTranslator. But, it contains a
writeResult() method which is called during serialization. This only attempts to write the
ResultList object, not the RuntimeExceptionTranslator object.

So, I will add the writeResult() method to the DistinctResultList class. In this case, it
will write an ArrayList instead of a ResultList object. This should be ok since the method
signature is for a List.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message