[
https://issues.apache.org/jira/browse/OPENJPA-1722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12887918#action_12887918
]
Michael Dick commented on OPENJPA-1722:
---------------------------------------
Hi Dianne, do you have a unit test for this change?
> Problem serializing DistinctResultList when EntityManager is closed
> -------------------------------------------------------------------
>
> Key: OPENJPA-1722
> URL: https://issues.apache.org/jira/browse/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.