[
https://issues.apache.org/jira/browse/OLINGO-604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chandan V.A updated OLINGO-604:
-------------------------------
Component/s: odata2-jpa
> Injected Entity Managers are closed after fetching query results
> ----------------------------------------------------------------
>
> Key: OLINGO-604
> URL: https://issues.apache.org/jira/browse/OLINGO-604
> Project: Olingo
> Issue Type: Bug
> Components: odata2-jpa
> Affects Versions: V2 2.0.4
> Reporter: Chandan V.A
> Assignee: Chandan V.A
> Priority: Minor
>
> There is an issue with the way the result list is accessed in JPAProcessor
> method: private Object readEntity(final Object uriParserResultView, final
> JPQLContextType contextType)
> Currently (Olingo 2.03) accesses the Resultlist by following code snippet:
> …
> query = em.createQuery(selectJPQLStatement.toString());
> if (!query.getResultList().isEmpty()) {
> selectedObject = query.getResultList().get(0);
> …
> Because an injected entityprocessor (via proxy) from the Spring Framework, on
> the first access to query.getResultList() closes the entitymanager after the
> query transaction is done.
> Since the object is accessed in a separate call the entitymanager is closed
> and therefore we get an error “Attempting to execute an operation on a closed
> EntityManager."
> The solution is ..
> By assigning the ResultList to a List, the issue is solved:
> …
> query = em.createQuery(selectJPQLStatement.toString());
> final List resultList = query.getResultList();
> if (!resultList.isEmpty())
> {
> selectedObject = resultList.get(0);
> }
> …
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)