Ticket #1245 (closed clarification: fixed)

Opened 12 months ago

Last modified 11 months ago

Error parsing query

Reported by: rcave Owned by: rcave
Priority: high Milestone: 0.9.3_rc1
Component: ambra Version: 0.9.1_rc1
Keywords: Cc:

Description

Error in the log files parsing a query:

2009-03-27 12:42:51,457 WARN DBQueryFunction(PLoSONE)> query '
                select art.state from Article art where
                  art.id = :p1 or cast(art, PermissionsPropagator).propPermsTo = :p1;
              ' execution failed. [TP-Processor53 org.topazproject.ambra.xacml.cond.DBQueryFunction]
org.topazproject.ambra.xacml.cond.DBQueryFunction$QueryException: query '
                select art.state from Article art where
                  art.id = :p1 or cast(art, PermissionsPropagator).propPermsTo = :p1;
              ' execution failed.
        at org.topazproject.ambra.xacml.cond.OtmQueryFunction.executeQuery(OtmQueryFunction.java:95)
        at org.topazproject.ambra.xacml.cond.DBQueryFunction.evaluate(DBQueryFunction.java:158)
        at com.sun.xacml.cond.Apply.evaluate(Unknown Source)
        at org.topazproject.ambra.xacml.cond.CachedBagFunction.evaluate(CachedBagFunction.java:171)
        at com.sun.xacml.cond.Apply.evaluate(Unknown Source)
        at com.sun.xacml.cond.FunctionBase.evalArgs(Unknown Source)
        at com.sun.xacml.cond.GeneralBagFunction.evaluate(Unknown Source)
        at com.sun.xacml.cond.Apply.evaluate(Unknown Source)
        at com.sun.xacml.cond.FunctionBase.evalArgs(Unknown Source)
        at com.sun.xacml.cond.ComparisonFunction.evaluate(Unknown Source)
        at com.sun.xacml.cond.Apply.evaluate(Unknown Source)
        at com.sun.xacml.cond.LogicalFunction.evaluate(Unknown Source)
        at com.sun.xacml.cond.Apply.evaluate(Unknown Source)
        at com.sun.xacml.Rule.evaluate(Unknown Source)
        at com.sun.xacml.combine.FirstApplicableRuleAlg.combine(Unknown Source)
        at com.sun.xacml.AbstractPolicy.evaluate(Unknown Source)
        at com.sun.xacml.PolicyReference.evaluate(Unknown Source)
        at com.sun.xacml.combine.FirstApplicablePolicyAlg.combine(Unknown Source)
        at com.sun.xacml.AbstractPolicy.evaluate(Unknown Source)
        at com.sun.xacml.PDP.evaluateContext(Unknown Source)
        at com.sun.xacml.PDP.evaluate(Unknown Source)
        at org.topazproject.ambra.xacml.DenyBiasedPEP.evaluate(DenyBiasedPEP.java:128)
        at org.topazproject.ambra.xacml.AbstractSimplePEP.checkAccess(AbstractSimplePEP.java:148)
        at org.topazproject.ambra.xacml.AbstractSimplePEP.checkAccess(AbstractSimplePEP.java:164)
        at org.topazproject.ambra.article.service.ArticleOtmService.getObjectInfo(ArticleOtmService.java:351)
        at org.topazproject.ambra.article.service.ArticleOtmService$$FastClassByCGLIB$$cdd3990.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:695)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:630)
        at org.topazproject.ambra.article.service.ArticleOtmService$$EnhancerByCGLIB$$3fc1b55.getObjectInfo(<generated>)
        at org.topazproject.ambra.article.action.FetchObjectAction.execute(FetchObjectAction.java:77)
        at sun.reflect.GeneratedMethodAccessor694.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
        at org.topazproject.ambra.struts2.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:79)
        at org.topazproject.ambra.struts2.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:76)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:127)
        at org.topazproject.ambra.struts2.TransactionInterceptor.intercept(TransactionInterceptor.java:75)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.topazproject.ambra.user.EnsureUserAccountInterceptor.intercept(EnsureUserAccountInterceptor.java:65)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.topazproject.ambra.user.UserAccountsInterceptor.intercept(UserAccountsInterceptor.java:102)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.topazproject.ambra.journal.SessionFiltersInterceptor.intercept(SessionFiltersInterceptor.java:51)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:184)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.LoggingInterceptor.intercept(LoggingInterceptor.java:52)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.TimerInterceptor.invokeUnderTiming(TimerInterceptor.java:125)
        at com.opensymphony.xwork2.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:112)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)
        at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:129)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.topazproject.ambra.web.DummySSOFilter.doFilter(DummySSOFilter.java:105)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.topazproject.ambra.web.VirtualJournalContextFilter.doFilter(VirtualJournalContextFilter.java:150)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
        at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
        at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.topazproject.ambra.web.MultipleRequestFilter.doFilter(MultipleRequestFilter.java:95)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.topazproject.otm.query.QueryException: Error parsing query '
                select art.state from Article art where
                  art.id = :p1 or cast(art, PermissionsPropagator).propPermsTo = :p1;
             '
Error serializing the value for parameter 'p1': info%3Adoi%2F10.1371%2Fjournal.pone.0003556.g003
        at org.topazproject.otm.query.QueryImplBase.checkMessages(QueryImplBase.java:44)
        at org.topazproject.otm.query.GenericQueryImpl.doStep(GenericQueryImpl.java:189)
        at org.topazproject.otm.query.GenericQueryImpl.applyParameterValues(GenericQueryImpl.java:106)
        at org.topazproject.otm.impl.QueryImpl.execute(QueryImpl.java:85)
        at org.topazproject.ambra.xacml.cond.OqlQueryFunction.executeQuery(OqlQueryFunction.java:70)
        at org.topazproject.ambra.xacml.cond.OtmQueryFunction.executeQuery(OtmQueryFunction.java:78)
        ... 180 more

Change History

  Changed 12 months ago by ronald

Looks like ambra is not properly decoding the article URI before trying to load it.

  Changed 12 months ago by dragisak

Code is checking if user has permissions to access objects with specified URI's. Here is the list of the ones that caused errors:

  • getRisCitation.action?articleURI=info:doi/10.1371/journal.pone.0004311
  • inf...
  • inf...1371/journal.pone.0001881
  • inf...71/journal.pone.0000867
  • info
  • info%3Adoi%2F10.1371%2Fimage.pgen.v02.i05.g001
  • info%3Adoi%2F10.1371%2Fimage.ppat.v01.i04.g001
  • info%3Adoi%2F10.1371%2Fjournal.pcbi.1000249.g001
  • info%3Adoi%2F10.1371%2Fjournal.pgen.0020167.g008
  • info%3Adoi%2F10.1371%2Fjournal.pgen.1000144.g002
  • info%3Adoi%2F10.1371%2Fjournal.pgen.1000202.g002
  • info%3Adoi%2F10.1371%2Fjournal.pgen.1000277.g007
  • info%3Adoi%2F10.1371%2Fjournal.pone.0000039
  • info%3Adoi%2F10.1371%2Fjournal.pone.0001201.g001
  • info%3Adoi%2F10.1371%2Fjournal.pone.0001295
  • info%3Adoi%2F10.1371%2Fjournal.pone.0001671.g001
  • info%3Adoi%2F10.1371%2Fjournal.pone.0002963.g001
  • info%3Adoi%2F10.1371%2Fjournal.pone.0002995.g005
  • info%3Adoi%2F10.1371%2Fjournal.pone.0003303.g011
  • info%3Adoi%2F10.1371%2Fjournal.pone.0003303.g014
  • info%3Adoi%2F10.1371%2Fjournal.pone.0003325.g002
  • info%3Adoi%2F10.1371%2Fjournal.pone.0003546.g001
  • info%3Adoi%2F10.1371%2Fjournal.pone.0003556.g003
  • info%3Adoi%2F10.1371%2Fjournal.pone.0005022
  • info%3Adoi%2F10.1371%2Fjournal.ppat.0020107
  • info%3Adoi%2F10.1371%2Fjournal.ppat.0020113
  • info%3Adoi%2F10.1371%2Fjournal.ppat.0030041
  • info%3Adoi%2F10.1371%2Fjournal.ppat.0030151.g002
  • info%3Adoi%2F10.1371%2Fjournal.ppat.1000205.g001
  • info%3Adoi%2F10.1371%2Fjournal.ppat.1000205.g002
  • info%3Adoi%2F10.1371%2Fjournal.ppat.1000205.g003
  • info%3Adoi%2F10.1371%2Fjournal.ppat.1000205.g005
  • infodoi10.1371image.pgen.v05.i03.g001
  • pcbi.0010013.f09
  • pgen.1000407.s013.gz

follow-up: ↓ 5   Changed 11 months ago by rcave

How is this occurring? I browsed to  http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0000039 and didn't receive an error in the log file. I've tried both as anonymous and logged-in user.

in reply to: ↑ 4   Changed 11 months ago by dragisak

  • owner changed from dragisak to rich
  • type changed from defect to clarification

Replying to rich:

How is this occurring? I browsed to  http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0000039 and didn't receive an error in the log file. I've tried both as anonymous and logged-in user.

It happens on fetchObject.action and in one of the citation actions.

Someone is trying to fetch an image with double-url-encoded url: info:doi/10.1371/journal.pone.0002515.g001 becomes info%253adoi%252f10.1371%252fjournal.pone.0002515.g001

For example:  http://www.plosone.org/article/fetchObject.action?uri=info%253adoi%252f10.1371%252fjournal.pone.0002515.g001&representation=PNG_S

  Changed 11 months ago by dragisak

(In [7596]) Validate URIs in action before passing them to low-level routines. Addresses #1245

  Changed 11 months ago by rcave

  • milestone changed from 0.9.2 to 0.9.3_rc1

  Changed 11 months ago by rcave

  • status changed from new to closed
  • resolution set to fixed

Verified that the URI is being validated:

2009-04-28 13:16:31,430 ERROR UnhandledException(PLoSONE)> 'uri=<info%3adoi%2f10.1371%2fjournal.pone.0001596.g001>' must be
 a valid absolute URI [http-8080-Processor25 org.topazproject.ambra.UnhandledException]
java.lang.IllegalArgumentException: 'uri=<info%3adoi%2f10.1371%2fjournal.pone.0001596.g001>' must be a valid absolute URI
        at org.topazproject.otm.RdfUtil.validateUri(RdfUtil.java:126)
        at org.topazproject.ambra.article.action.FetchObjectAction.execute(FetchObjectAction.java:78)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
...
...
Note: See TracTickets for help on using tickets.