imixs / imixs-workflow

The open source technology for business process management
http://www.imixs.org/
GNU General Public License v3.0
353 stars 67 forks source link

JPQL query with "%" wildcard fails (REST API) #447

Open mazimmer opened 5 years ago

mazimmer commented 5 years ago

Issuing the example JPQL query in a slightly modified way (via REST) causes a failure in the document service - somehow it tries to decode the URL twice, I think

Request: (Auth header removed) curl --request GET \ --url http://localhost:8580/workflow/rest-service/documents/jpql/SELECT%20document%20FROM%20Document%20AS%20document%20WHERE%20document.type%20like%20%27%25workitem%27 \ --header 'Accept: application/json' \ --header 'cache-control: no-cache'

Log output:

2018-11-12 12:14:07,252 DEBUG [io.undertow.request.security] (default task-1) Authenticated as mirth, roles [org.imixs.ACCESSLEVEL.EDITORACCESS, IMIXS-WORKFLOW-Editor] 2018-11-12 12:14:07,252 DEBUG [io.undertow.request.security] (default task-1) Authentication outcome was AUTHENTICATED with method io.undertow.security.impl.BasicAuthenticationMechanism@2e610003 for /workflow/rest-service/documents/jpql/SELECT%20document%20FROM%20Document%20AS%20document%20WHERE%20document.type%20like%20%27%25workitem%27 2018-11-12 12:14:07,252 DEBUG [io.undertow.request.security] (default task-1) Authentication result was AUTHENTICATED for /workflow/rest-service/documents/jpql/SELECT document FROM Document AS document WHERE document.type like '%workitem' 2018-11-12 12:14:07,253 DEBUG [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-1) RESTEASY002315: PathInfo: /documents/jpql/SELECT document FROM Document AS document WHERE document.type like '%workitem' 2018-11-12 12:14:07,278 ERROR [stderr] (default task-1) java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "wo" 2018-11-12 12:14:07,286 ERROR [stderr] (default task-1) at java.net.URLDecoder.decode(URLDecoder.java:194) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at org.imixs.workflow.jaxrs.DocumentRestService.findDocumentsByJPQL(DocumentRestService.java:221) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at java.lang.reflect.Method.invoke(Method.java:498) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509) 2018-11-12 12:14:07,289 ERROR [stderr] (default task-1) at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:90) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:101) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:40) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,290 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:237) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:362) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:144) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) 2018-11-12 12:14:07,291 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) 2018-11-12 12:14:07,292 ERROR [stderr] (default task-1) at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438)

rsoika commented 5 years ago

You try selecting

document.type like (%workitem%) 

right?

Can you try the same query using the Lucene index:

http://localhost:8580/workflow/rest-service/documents/search/(type:*workitem*)