Query with * throws an SQLException on Oracle
---------------------------------------------
Key: NXP-4149
URL: http://jira.nuxeo.org/browse/NXP-4149
Project: Nuxeo Enterprise Platform
Issue Type: Bug
Components: Core SQL Storage
Affects Versions: 5.3.x
Environment: Windows XP, JDK 1.5, OracleXE, VCS, Nuxeo Snapshot
nuxeo-dm-5.2.1-I20091005_1027
Reporter: Vladislav Pernin
Assignee: Thierry Delprat
Priority: Major
Connect as Administrator, query from the simple query field.
From the Nuxeo webapp, a query with the term test* throws an SQLException :
17:32:41,301 ERROR [ResultsProvidersCacheBean] failed to obtain sorted
resultProvider
org.nuxeo.ecm.core.api.ClientException: Failed to execute query: ORA-20000:
Oracle Text error:
DRG-50901: erreur de syntaxe de l'analyseur d'interrogation textuelle Ó la
ligne 1, colonne 6
at
org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1404)
at sun.reflect.GeneratedMethodAccessor454.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.nuxeo.jboss.interceptors.NXSessionSynchronizationInterceptor.invoke(NXSessionSynchronizationInterceptor.java:157)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
at
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
at
org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at
org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at
org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:206)
at
org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:119)
at $Proxy226.query(Unknown Source)
at
org.nuxeo.ecm.core.search.api.client.querymodel.QueryModel.getResultsProvider(QueryModel.java:177)
...
Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception:
org.nuxeo.ecm.core.query.QueryException. message: Invalid query: SELECT * FROM
Document WHERE ecm:full
text LIKE 'test*' AND ecm:mixinType !=
'HiddenInNavigation' AND ecm:isCheckedInVersion = 0 AND
ecm:currentLifeCycleState != 'deleted'
at
org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession$SQLSessionQuery.execute(SQLSession.java:473)
at
org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1351)
... 167 more
Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception:
org.nuxeo.ecm.core.storage.StorageException. message: Invalid query: SELECT *
FROM Document WHERE ecm:
fulltext LIKE 'test*' AND ecm:mixinType !=
'HiddenInNavigation' AND ecm:isCheckedInVersion = 0 AND
ecm:currentLifeCycleState != 'deleted'
at
org.nuxeo.ecm.core.storage.sql.SessionImpl.query(SessionImpl.java:635)
at
org.nuxeo.ecm.core.storage.sql.ra.ConnectionImpl.query(ConnectionImpl.java:267)
at
org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession$SQLSessionQuery.execute(SQLSession.java:468)
... 168 more
Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception:
java.sql.SQLException. message: ORA-20000: Oracle Text error:
DRG-50901: erreur de syntaxe de l'analyseur d'interrogation textuelle Ó la
ligne 1, colonne 6
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1062)
at
oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
at
oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4055)
at
oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:10763)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3283)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
at org.nuxeo.ecm.core.storage.sql.Mapper.query(Mapper.java:1822)
at
org.nuxeo.ecm.core.storage.sql.SessionImpl.query(SessionImpl.java:633)
... 170 more
Using % instead of * works well.
Maybe it would be a good idea to replaace * by % before building the SQL query.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.nuxeo.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets