Chandan V.A created OLINGO-604:
----------------------------------
Summary: 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
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)