[daisy] [JIRA] Resolved: (DSY-344) query on collection starting with a digit fails

Bruno Dumon (JIRA) issues at cocoondev.org
Tue Jan 30 06:19:20 CST 2007


     [ http://issues.cocoondev.org//browse/DSY-344?page=all ]
     
Bruno Dumon resolved DSY-344:
-----------------------------

    Resolution: Fixed

Fixed in SVN rev 3685.

It is not possible to fix this issue perfectly, since collection names consisting of only digits are allowed, and hence impossible to distinguish from collection IDs. Now I've implemented the heuristic that arguments that contain only digits are considered to be IDs, otherwise they are considered to be names.

> query on collection starting with a digit fails
> -----------------------------------------------
>
>          Key: DSY-344
>          URL: http://issues.cocoondev.org//browse/DSY-344
>      Project: Daisy
>         Type: Bug
>   Components: Querying and indexing (repository)
>     Versions: public - 1.5, public - 2.0
>     Reporter: Andreas Deininger
>     Priority: Minor
>      Fix For: public - 2.0

>
> Create a collection starting wit a digit like '2ABC'
> Performing a query on that collection fails (see stacktrace below):
> select id where InCollection('2ABC') 
> Also: If the collection is a numerical string (like '24'), the query states: 
> Received exception from repository server.
> Error performing query.
> "24" is not a valid collection name.
> ----------
> Received exception from repository server.
> Error performing query.
> Error consulting document collection information.
> Invalid collection specification: 2ABC
> Cocoon Stack Trace
> Message: Sitemap: error calling function 'org.outerj.daisy.frontend.QuerySearchApple'
> context://daisy/sitemap.xmap - 723:75	<map:call>
> Java Stack Trace
> Message: Sitemap: error calling function 'org.outerj.daisy.frontend.QuerySearchApple'
> Class: org.apache.cocoon.ProcessingException
> Stacktrace:
> org.apache.cocoon.ProcessingException.throwLocated (ProcessingException.java:112)
> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke (CallFunctionNode.java:140)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke (PipelineNode.java:142)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke (PipelinesNode.java:92)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:234)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:176)
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:252)
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke (MountNode.java:117)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke (PipelineNode.java:142)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke (PipelinesNode.java:92)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:234)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:176)
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:252)
> org.apache.cocoon.Cocoon.process (Cocoon.java:686)
> org.apache.cocoon.servlet.CocoonServlet.service (CocoonServlet.java:1153)
> javax.servlet.http.HttpServlet.service (HttpServlet.java:802)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252)
> org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
> org.outerj.daisy.frontend.util.CharacterEncodingFilter.doFilter (CharacterEncodingFilter.java:35)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
> org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
> org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213)
> org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178)
> org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126)
> org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)
> org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107)
> org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148)
> org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java:199)
> org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:282)
> org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:754)
> org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:684)
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt (ChannelSocket.java:876)
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:684)
> java.lang.Thread.run (Thread.java:595)
> Message: Received exception from repository server.
> Class: org.outerj.daisy.repository.RepositoryException
> Stacktrace:
> org.outerj.daisy.repository.clientimpl.infrastructure.DaisyHttpClient.handleNotOkResponse (DaisyHttpClient.java:155)
> org.outerj.daisy.repository.clientimpl.infrastructure.DaisyHttpClient.executeMethod (DaisyHttpClient.java:86)
> org.outerj.daisy.repository.clientimpl.query.RemoteQueryManager.performQuery (RemoteQueryManager.java:105)
> org.outerj.daisy.repository.clientimpl.query.RemoteQueryManager.performQuery (RemoteQueryManager.java:43)
> org.outerj.daisy.frontend.QuerySearchApple.processInternal (QuerySearchApple.java:79)
> org.outerj.daisy.frontend.util.AbstractDaisyApple.process (AbstractDaisyApple.java:55)
> org.apache.cocoon.components.flow.apples.ApplesProcessor.processApple (ApplesProcessor.java:138)
> org.apache.cocoon.components.flow.apples.ApplesProcessor.callFunction (ApplesProcessor.java:81)
> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke (CallFunctionNode.java:138)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke (PipelineNode.java:142)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke (PipelinesNode.java:92)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:234)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:176)
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:252)
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke (MountNode.java:117)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:46)
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke (PreparableMatchNode.java:130)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke (PipelineNode.java:142)
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes (AbstractParentProcessingNode.java:68)
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke (PipelinesNode.java:92)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:234)
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process (ConcreteTreeProcessor.java:176)
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:252)
> org.apache.cocoon.Cocoon.process (Cocoon.java:686)
> org.apache.cocoon.servlet.CocoonServlet.service (CocoonServlet.java:1153)
> javax.servlet.http.HttpServlet.service (HttpServlet.java:802)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252)
> org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
> org.outerj.daisy.frontend.util.CharacterEncodingFilter.doFilter (CharacterEncodingFilter.java:35)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
> org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
> org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213)
> org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178)
> org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126)
> org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)
> org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107)
> org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148)
> org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java:199)
> org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:282)
> org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:754)
> org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:684)
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt (ChannelSocket.java:876)
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:684)
> java.lang.Thread.run (Thread.java:595)
> Message: Error performing query.
> Class: org.outerj.daisy.repository.query.QueryException
> Stacktrace:
> ATTENTION: this is the stacktrace of an exception that happened on the repository server.
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQueryReturnDocuments (LocalQueryManager.java:550)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:112)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:101)
> org.outerj.daisy.httpconnector.handlers.QueryHandler.handleRequest (QueryHandler.java:68)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$PathHandler.handle (HttpConnectorImpl.java:244)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$DaisyHandler.handle (HttpConnectorImpl.java:203)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1530)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1482)
> org.mortbay.http.HttpServer.service (HttpServer.java:909)
> org.mortbay.http.HttpConnection.service (HttpConnection.java:816)
> org.mortbay.http.HttpConnection.handleNext (HttpConnection.java:982)
> org.mortbay.http.HttpConnection.handle (HttpConnection.java:833)
> org.mortbay.http.SocketListener.handleConnection (SocketListener.java:244)
> org.mortbay.util.ThreadedServer.handle (ThreadedServer.java:357)
> org.mortbay.util.ThreadPool$PoolThread.run (ThreadPool.java:534)
> Message: Error consulting document collection information.
> Class: org.outerj.daisy.repository.query.QueryException
> Stacktrace:
> ATTENTION: this is the stacktrace of an exception that happened on the repository server.
> org.outerj.daisy.query.model.InCollection.prepare (InCollection.java:48)
> org.outerj.daisy.query.model.Query.prepare (Query.java:81)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQueryReturnDocuments (LocalQueryManager.java:386)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:112)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:101)
> org.outerj.daisy.httpconnector.handlers.QueryHandler.handleRequest (QueryHandler.java:68)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$PathHandler.handle (HttpConnectorImpl.java:244)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$DaisyHandler.handle (HttpConnectorImpl.java:203)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1530)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1482)
> org.mortbay.http.HttpServer.service (HttpServer.java:909)
> org.mortbay.http.HttpConnection.service (HttpConnection.java:816)
> org.mortbay.http.HttpConnection.handleNext (HttpConnection.java:982)
> org.mortbay.http.HttpConnection.handle (HttpConnection.java:833)
> org.mortbay.http.SocketListener.handleConnection (SocketListener.java:244)
> org.mortbay.util.ThreadedServer.handle (ThreadedServer.java:357)
> org.mortbay.util.ThreadPool$PoolThread.run (ThreadPool.java:534)
> Message: Invalid collection specification: 1DemoSite_B
> Class: org.outerj.daisy.repository.RepositoryException
> Stacktrace:
> ATTENTION: this is the stacktrace of an exception that happened on the repository server.
> org.outerj.daisy.repository.commonimpl.CollectionManagerImpl.getCollection (CollectionManagerImpl.java:53)
> org.outerj.daisy.query.ExtQueryContext.getCollection (ExtQueryContext.java:53)
> org.outerj.daisy.query.model.InCollection.prepare (InCollection.java:44)
> org.outerj.daisy.query.model.Query.prepare (Query.java:81)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQueryReturnDocuments (LocalQueryManager.java:386)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:112)
> org.outerj.daisy.repository.serverimpl.query.LocalQueryManager.performQuery (LocalQueryManager.java:101)
> org.outerj.daisy.httpconnector.handlers.QueryHandler.handleRequest (QueryHandler.java:68)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$PathHandler.handle (HttpConnectorImpl.java:244)
> org.outerj.daisy.httpconnector.HttpConnectorImpl$DaisyHandler.handle (HttpConnectorImpl.java:203)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1530)
> org.mortbay.http.HttpContext.handle (HttpContext.java:1482)
> org.mortbay.http.HttpServer.service (HttpServer.java:909)
> org.mortbay.http.HttpConnection.service (HttpConnection.java:816)
> org.mortbay.http.HttpConnection.handleNext (HttpConnection.java:982)
> org.mortbay.http.HttpConnection.handle (HttpConnection.java:833)
> org.mortbay.http.SocketListener.handleConnection (SocketListener.java:244)
> org.mortbay.util.ThreadedServer.handle (ThreadedServer.java:357)
> org.mortbay.util.ThreadPool$PoolThread.run (ThreadPool.java:534)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.cocoondev.org//secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



More information about the daisy mailing list