You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Matthieu Riou <ma...@gmail.com> on 2009/05/12 19:27:37 UTC

Re: ODE 2.0 RuntimeException Filter Invalid when deleting a process instance

On Tue, May 12, 2009 at 12:37 AM, Nadege <na...@1und1.de> wrote:

>
> Hi,
>
> When deleting a process instance with
> client.buildMessage("delete", new String[]{"filter"}, new Object[]{"iid=" +
> iid});
> we get the following exception :
>
> <axis2ns33:RuntimeException
> xmlns:axis2ns33="http://www.apache.org/ode/pmapi/types/2006/08/02/
> ">java.lang.RuntimeException:
> Invocation of method delete in management interface failed: Exception
> during
> instance deletion: &lt;openjpa-1.3.0-SNAPSHOT-r422266:724491 nonfatal user
> error> org.apache.openjpa.persistence.ArgumentException: Filter invalid.
> Cannot compare field _instanceId of type java.lang.Long to value of type
> java.lang.String. Numeric comparisons must be between numeric types only.
> To
> enable such comparisons for backwards-compatibility, add
> "QuotedNumbersInQueries=true" to the org.apache.openjpa.Compatibility
> setting in your configuration.
>        at org.apache.ode.il.DynamicService.invoke(DynamicService.java:84)
>        at
>
> org.apache.ode.axis2.service.ManagementService$DynamicMessageReceiver.invokeBusinessLogic(ManagementService.java:126)
>        at
>
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
>        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
>        at
>
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>        at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>        at
>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>        at
>
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
>        at
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
>        at
>
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
>        at
>
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
>        at
>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>        at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>        at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>        at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>        at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>        at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
>        at
>
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>        at
>
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>        at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>        at org.mortbay.jetty.Server.handle(Server.java:324)
>        at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
>        at
>
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:834)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>        at
>
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>        at
>
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> Caused by: org.apache.ode.bpel.pmapi.ProcessingException: Exception during
> instance deletion: &lt;openjpa-1.3.0-SNAPSHOT-r422266:724491 nonfatal user
> error> org.apache.openjpa.persistence.ArgumentException: Filter invalid.
> Cannot compare field _instanceId of type java.lang.Long to value of type
> java.lang.String. Numeric comparisons must be between numeric types only.
> To
> enable such comparisons for backwards-compatibility, add
> "QuotedNumbersInQueries=true" to the org.apache.openjpa.Compatibility
> setting in your configuration.
>        at
>
> org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.delete(ProcessAndInstanceManagementImpl.java:470)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>        at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:616)
>        at org.apache.ode.il.DynamicService.invoke(DynamicService.java:69)
>        ... 30 more
> </axis2ns33:RuntimeException>
>
> The same code worked with ode 1.2.
> Would adding "QuotedNumbersInQueries=true" somewhere help?
> If yes, where do we need to add it?
>

I've committed a fix in the 1.X branch, can you give it a try? For some
reason the id (a long) was queried as a quoted string.

Matthieu


>
> Thanks in advance.
>
> Regards,
> Nadège
> --
> View this message in context:
> http://www.nabble.com/ODE-2.0-RuntimeException-Filter-Invalid-when-deleting-a-process-instance-tp23497647p23497647.html
> Sent from the Apache Ode User mailing list archive at Nabble.com.
>
>