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

Reply via email to