Errors concerning impossible queries involving non-persistable entities

0
Hi, we get a lot of log errors like the one pasted below, complaining about an XPATH / database retrieve where non-persistable entities are involved, which, of course, is not possible. There is no clue however what the circumstances are or the user actions causing the problem. We cannot reproduce, it just happens a lot. Where do we need to look? Microflows? Pages? Certain elements on pages? Something else? Why is Mendix creating an impossible database query we didn't ask for and then bitching about it in the log?   com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"id":"[MendixIdentifier:: id=16607023625938520 objectType=PWNonPersistent.GeregistreerdePWNP entityID=59]","type":"RetrieveByIdWithSchemaAction"}', all database changes executed by this action were rolled back at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:178) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"id":"[MendixIdentifier:: id=16607023625938520 objectType=PWNonPersistent.GeregistreerdePWNP entityID=59]","type":"RetrieveByIdWithSchemaAction"}', all database changes executed by this action were rolled back at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:37) Caused by: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"id":"[MendixIdentifier:: id=16607023625938520 objectType=PWNonPersistent.GeregistreerdePWNP entityID=59]","type":"RetrieveByIdWithSchemaAction"}', all database changes executed by this action were rolled back at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.processErrorState(CoreActionHandlerImpl.scala:155) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.connectionbus.ConnectionBusRuntimeException: An exception has occurred for the following request(s): InternalXPathTextGetRequest (depth = 0): //PWNonPersistent.GeregistreerdePWNP[id=16607023625938520] at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:178) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.connectionbus.ConnectionBusRuntimeException: An exception has occurred for the following request(s): InternalXPathTextGetRequest (depth = 0): //PWNonPersistent.GeregistreerdePWNP[id=16607023625938520] at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:37) Caused by: com.mendix.connectionbus.ConnectionBusRuntimeException: An exception has occurred for the following request(s): InternalXPathTextGetRequest (depth = 0): //PWNonPersistent.GeregistreerdePWNP[id=16607023625938520] at com.mendix.connectionbus.RequestAnalyzer.doRequest(RequestAnalyzer.java:62) Caused by: com.mendix.connectionbus.ConnectionBusRuntimeException: 'PWNonPersistent.GeregistreerdePWNP' is not a persistable entity, exception occurred on mapping the following query: SELECT PWNonPersistent.GeregistreerdePWNP/* FROM PWNonPersistent.GeregistreerdePWNP WHERE PWNonPersistent.GeregistreerdePWNP/id = 16607023625938520 at com.mendix.connectionbus.retrieve.query.mapping.QueryMapper.getMappedQueries(QueryMapper.java:260) Caused by: com.mendix.connectionbus.ConnectionBusRuntimeException: 'PWNonPersistent.GeregistreerdePWNP' is not a persistable entity at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getMetaObject(MetaObjectInfo.java:161) Caused by: com.mendix.core.CoreRuntimeException: 'PWNonPersistent.GeregistreerdePWNP' is not a persistable entity at com.mendix.connectionbus.DomainModelUtilImpl.getPersistableMetaObject(DomainModelUtil.scala:69) at com.mendix.connectionbus.DomainModelUtil$.getPersistableMetaObject(DomainModelUtil.scala:31) at com.mendix.connectionbus.DomainModelUtil.getPersistableMetaObject(DomainModelUtil.scala) at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getMetaObject(MetaObjectInfo.java:138) at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getLocation(MetaObjectInfo.java:102) at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getIdLocation(MetaObjectInfo.java:86) at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getIdLocation(MetaObjectInfo.java:82) at com.mendix.connectionbus.retrieve.query.mapping.MetaObjectInfo.getIdLocation(MetaObjectInfo.java:78) at com.mendix.connectionbus.retrieve.query.mapping.QueryColumnItemHandler.createIdColumnDefinition(QueryColumnItemHandler.java:177) at com.mendix.connectionbus.retrieve.query.mapping.QueryColumnItemHandler.createColumnDefinition(QueryColumnItemHandler.java:156) at com.mendix.connectionbus.retrieve.query.mapping.QueryColumnItemHandler.mapSelectorLocation(QueryColumnItemHandler.java:127) at com.mendix.connectionbus.retrieve.query.mapping.QueryColumnItemHandler.handleQueryWhereTermLocation(QueryColumnItemHandler.java:64) at com.mendix.connectionbus.retrieve.query.mapping.WhereClauseMapper.prehandleWhereTermSide(WhereClauseMapper.java:236) at com.mendix.connectionbus.retrieve.query.mapping.WhereClauseMapper.handleWhereTerm(WhereClauseMapper.java:167) at com.mendix.connectionbus.retrieve.query.mapping.WhereClauseMapper.map(WhereClauseMapper.java:144) at com.mendix.connectionbus.retrieve.query.mapping.QueryMapper.mapWhereClauseWhereTerms(QueryMapper.java:723) at com.mendix.connectionbus.retrieve.query.mapping.QueryMapper.getMappedQueries(QueryMapper.java:227) at com.mendix.connectionbus.retrieve.query.mapping.QueryMapper.getQueryInstances(QueryMapper.java:127) at com.mendix.connectionbus.retrieve.DataStoreCaller.doOldQueryHandling(DataStoreCaller.java:100) at com.mendix.connectionbus.retrieve.DataStoreCaller.mapToQueryInstances(DataStoreCaller.java:148) at com.mendix.connectionbus.retrieve.DataStoreCaller.getResult(DataStoreCaller.java:76) at com.mendix.connectionbus.retrieve.GetRequestHandler.doRequest(GetRequestHandler.java:69) at com.mendix.connectionbus.RequestAnalyzer.doRequest(RequestAnalyzer.java:48) at com.mendix.connectionbus.ConnectionBusImpl.doRequest(ConnectionBusImpl.java:469) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.retrieveXPathSchemaRaw(RetrieveXPathSchemaRawAction.java:162) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.executeAction(RetrieveXPathSchemaRawAction.java:130) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.executeAction(RetrieveXPathSchemaRawAction.java:26) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:50) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:76) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:55) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:51) at com.mendix.basis.actionmanagement.ActionManager$1.execute(ActionManager.java:170) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:33) at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:174) at com.mendix.basis.component.InternalCore.retrieveXPathSchemaRaw(InternalCore.java:1443) at com.mendix.basis.action.user.RetrieveByIdWithSchemaAction.executeAction(RetrieveByIdWithSchemaAction.scala:48) at com.mendix.basis.action.user.RetrieveByIdWithSchemaAction.executeAction(RetrieveByIdWithSchemaAction.scala:16) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:50) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:76) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:55) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:51) at com.mendix.basis.actionmanagement.ActionManager$1.execute(ActionManager.java:170) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:33) at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:174) at com.mendix.basis.component.InternalCore.retrieveByIdWithSchema(InternalCore.java:1045) at com.mendix.webui.actions.client.RetrieveByIdsAction.execute(RetrieveByIdsAction.scala:38) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:315) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:300) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:300) at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:33) at com.mendix.basis.actionmanagement.IMonitoredAction$class.monitor(IMonitoredAction.scala:49) at com.mendix.webui.requesthandling.ClientRequestHandler$ClientMonitoredAction.monitor(ClientRequestHandler.scala:417) at com.mendix.webui.requesthandling.ClientRequestHandler.handleRequest(ClientRequestHandler.scala:300) at com.mendix.webui.requesthandling.ClientRequestHandler.handleActionWithSessionRequired(ClientRequestHandler.scala:238) at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:205) at com.mendix.webui.requesthandling.ClientRequestHandler.liftedTree1$1(ClientRequestHandler.scala:104) at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:96) at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:70) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:67) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:33) at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:73) at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:875) at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.handle(RuntimeHandler.java:41) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:748)  
asked
3 answers
3

I have a ticket open for the same issue. It seems to be related with people using the Back button of their browser.

Mendix only keeps a history of 5 actions, so after that it would open a form without having the NPE object for it. This then results in this stacktrace.

answered
2

I run into the same error when i'm developing. I have a page that has a Non persistent as the caller, and if I rerun locally while on that page, I think the object is garbage collected, which causes the page to be open without the object. 

 

I have also ran into a similar issue with a page that has a non persistent as the caller, and uses a reference selector to display data. It would repeatedly throw a similar error while trying to load the page.  

answered
0

Our users using 'back' buttons sounds plausible. We'll look into that. I don't think custom widgets or java calls are involved. Then we would have encountered it in our own tests. Apparently we don't use 'back' in our browsers. Thanks for the suggestions.

answered