You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If "length" were followed by an open parenthesis, then it would be a LENGTH(string_expression) operation, but it is not followed by ( in this query. The correct parsing ought to be an entity attribute named length which has the optional entity identification variable omitted.
[6/26/24, 14:31:58:458 CDT] 00000051 id=0458cc71 io.openliberty.data.internal.persistence.RepositoryImpl 3 QueryInfo@3ce96da9 long resizeAll(int, int) UPDATE Box SET length = length + ?1, width = width - ?1, height = height * ?2 [2 positional params]
[6/26/24, 14:31:58:458 CDT] 00000051 id=6f99ba0f enliberty.data.internal.persistence.service.DBStoreEMBuilder > createEntityManager Entry
[6/26/24, 14:31:58:458 CDT] 00000051 id=4f7ca5d3 om.ibm.wsspi.persistence.internal.PersistenceServiceUnitImpl > createEntityManager Entry
[6/26/24, 14:31:58:458 CDT] 00000051 id=4f7ca5d3 om.ibm.wsspi.persistence.internal.PersistenceServiceUnitImpl < createEntityManager Exit
org.eclipse.persistence.internal.jpa.EntityManagerImpl@63c97bfc
[6/26/24, 14:31:58:458 CDT] 00000051 id=6f99ba0f enliberty.data.internal.persistence.service.DBStoreEMBuilder < createEntityManager Exit
org.eclipse.persistence.internal.jpa.EntityManagerImpl@63c97bfc
[6/26/24, 14:31:58:461 CDT] 00000051 id=00000000 io.openliberty.data.internal.persistence.RepositoryImpl 3 java.lang.IllegalArgumentException replaced with jakarta.data.exceptions.MappingException
[6/26/24, 14:31:58:461 CDT] 00000051 id=0458cc71 io.openliberty.data.internal.persistence.RepositoryImpl < invoke MultipleEntityRepo.resizeAll Exit
jakarta.data.exceptions.MappingException: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [UPDATE Box SET length = length + ?1, width = width - ?1, height = height * ?2].
[30, 30] The left parenthesis is missing from the LENGTH expression.
[45, 50] The left expression is not an arithmetic expression.
[66, 72] The left expression is not an arithmetic expression.
at io.openliberty.data.internal.persistence.RepositoryImpl.failure(RepositoryImpl.java:302)
at io.openliberty.data.internal.persistence.RepositoryImpl.invoke(RepositoryImpl.java:1256)
at jdk.proxy11/jdk.proxy11.$Proxy96.resizeAll(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:109)
at ee.jakarta.tck.data.standalone.entity.MultipleEntityRepo$1282971833$Proxy$_$$_WeldClientProxy.resizeAll(Unknown Source)
at ee.jakarta.tck.data.standalone.entity.EntityTest.testUpdateQueryWithoutWhereClause(EntityTest.java:1701)
at ee.jakarta.tck.data.standalone.entity.EntityTest$Proxy$_$$_WeldClientProxy.testUpdateQueryWithoutWhereClause(Unknown Source)
at ee.jakarta.tck.data.standalone.entity.EntityTestServlet.testUpdateQueryWithoutWhereClause(EntityTestServlet.java:379)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at componenttest.app.FATServlet.doGet(FATServlet.java:74)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1266)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:754)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:451)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1362)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1078)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:77)
at com.ibm.ws.webcontainer40.servlet.CacheServletWrapper40.handleRequest(CacheServletWrapper40.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:978)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:293)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:1260)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.wrapHandlerAndExecute(HttpDispatcherLink.java:476)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:435)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:569)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:503)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:363)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:330)
at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:169)
at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:77)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:516)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:586)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:970)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1059)
at com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:280)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [UPDATE Box SET length = length + ?1, width = width - ?1, height = height * ?2].
[30, 30] The left parenthesis is missing from the LENGTH expression.
[45, 50] The left expression is not an arithmetic expression.
[66, 72] The left expression is not an arithmetic expression.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1848)
at io.openliberty.data.internal.persistence.RepositoryImpl.invoke(RepositoryImpl.java:1079)
... 40 more
Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 5.0.0-B02.v202404111748): org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing [UPDATE Box SET length = length + ?1, width = width - ?1, height = height * ?2].
[30, 30] The left parenthesis is missing from the LENGTH expression.
[45, 50] The left expression is not an arithmetic expression.
[66, 72] The left expression is not an arithmetic expression.
at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException(HermesParser.java:169)
at org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate(HermesParser.java:345)
at org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:292)
at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(HermesParser.java:174)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:144)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:120)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:107)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:91)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1846)
... 41 more
The text was updated successfully, but these errors were encountered:
njr-11
changed the title
EclipseLink misinterprets length attribute in JPQL as LENGTH(...) operation
length entity attribute misinterpreted as LENGTH(...) operation in JPQL
Jun 26, 2024
EclipseLink is misterpreting the
length
entity attribute as a LENGTH(...) operation in,If "length" were followed by an open parenthesis, then it would be a LENGTH(string_expression) operation, but it is not followed by
(
in this query. The correct parsing ought to be an entity attribute namedlength
which has the optional entity identification variable omitted.The text was updated successfully, but these errors were encountered: