[ https://issues.apache.org/jira/browse/OLINGO-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ramya resolved OLINGO-1254. --------------------------- Resolution: Fixed > Issue when sending requests in parallel > --------------------------------------- > > Key: OLINGO-1254 > URL: https://issues.apache.org/jira/browse/OLINGO-1254 > Project: Olingo > Issue Type: Bug > Components: odata2-jpa > Reporter: Fernando Mendel > Priority: Critical > > Hey, > We are using the following dependencies from Olingo: > {code:xml} > <dependency> > <groupId>org.apache.olingo</groupId> > <artifactId>olingo-odata2-api</artifactId> > <version>2.0.10</version> > </dependency> > <dependency> > <groupId>org.apache.olingo</groupId> > <artifactId>olingo-odata2-core</artifactId> > <version>2.0.10</version> > </dependency> > <dependency> > <groupId>org.apache.olingo</groupId> > <artifactId>olingo-odata2-jpa-processor-api</artifactId> > <version>2.0.10</version> > </dependency> > <dependency> > <groupId>org.apache.olingo</groupId> > <artifactId>olingo-odata2-api-annotation</artifactId> > <version>2.0.10</version> > </dependency> > <dependency> > <groupId>org.apache.olingo</groupId> > <artifactId>olingo-odata2-jpa-processor-core</artifactId> > <version>2.0.10</version> > </dependency> > {code} > > When doing two assyncronous requests GET data from OData with different > filters, sometimes it works, sometimes it does not. > Like below queries: > {code:java} > "http://localhost:8080/OData/V2/CareCorner.svc/PackageDTOMocks?%24filter=RecipientName%20eq%20'John%20Frank'" > "http://localhost:8080/OData/V2/CareCorner.svc/PackageDTOMocks?%24filter=RecipientName%20eq%20'Karl%20Mendel'" > {code} > The behavior is a bit non deterministic, I already have seen the following > behaviors: > * Return the first filter result twice > * Null pointer > * The following exception: > {code:java} > {"httpStatus":"INTERNAL_SERVER_ERROR","exceptionKey":"Exception(org.hibernate.QueryException)","exceptionMessage":"An > unhandled exception happened: Not all named parameters have been set: [2] > [SELECT E1 FROM PackageDTOMock E1 WHERE (E1.recipientName = ?2)]."} > {code} > I have generated the following test code in javascript: > {code:javascript} > function prepareData(sUrl){ var xhr = new XMLHttpRequest(); > xhr.withCredentials = true; xhr.addEventListener("readystatechange", function > () { if (this.readyState === this.DONE) { console.log(this.responseText); } > }); xhr.open("GET", sUrl); xhr.setRequestHeader("authorization", "Basic > YWRtaW46YWRtaW4="); return xhr; } > > a = > prepareData("http://localhost:8080/OData/V2/CareCorner.svc/PackageDTOMocks?%24filter=RecipientName%20eq%20'Karl%20Mendel'"); > > b = > prepareData("http://localhost:8080/OData/V2/CareCorner.svc/PackageDTOMocks?%24filter=RecipientName%20eq%20'John%20Frank'"); > > > a.send(null); > b.send(null); > {code} > The issue seems to lie on class *JPAQueryBuilder*, method *buildQuery*. > The parameter *parameterizedMap* is filled from an static method > _getParameterizedQueryMap_(). > {code:java} > Map<String, Map<Integer, Object>> parameterizedMap = > ODataParameterizedWhereExpressionUtil. > getParameterizedQueryMap(); > {code} > > I'm setting this as critical because we are facing this in two different > projects and there is no way to release Olingo in an production application > with this issue when sending parallel requests. -- This message was sent by Atlassian JIRA (v7.6.3#76005)