samvera / rubydora

Fedora Commons version 3 REST API ruby library
Other
27 stars 17 forks source link

#search() session expiration #77

Open jcoyne opened 10 years ago

jcoyne commented 10 years ago

When doing a long running search (e.g. over the whole repository) it's possible to encounter a Rubydora::FedoraInvalidRequest:

/Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rubydora-1.7.4/lib/rubydora/rest_api_client.rb:26:in `block (2 levels) in <module:RestApiClient>': See logger for details (Rubydora::FedoraInvalidRequest)
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/rescuable.rb:114:in `instance_exec'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/rescuable.rb:114:in `block in handler_for_rescue'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/rescuable.rb:80:in `call'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/rescuable.rb:80:in `rescue_with_handler'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rubydora-1.7.4/lib/rubydora/rest_api_client.rb:97:in `rescue in find_objects'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rubydora-1.7.4/lib/rubydora/rest_api_client.rb:87:in `find_objects'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rubydora-1.7.4/lib/rubydora/repository.rb:19:in `find_objects'
    from /Users/justin/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rubydora-1.7.4/lib/rubydora/repository.rb:64:in `search'

Due to:

javax.ws.rs.WebApplicationException: org.fcrepo.server.errors.UnknownSessionTokenException: Session is expired or never existed.
    at org.fcrepo.server.rest.BaseRestResource.handleException(BaseRestResource.java:168)
    at org.fcrepo.server.rest.FedoraObjectSearchResource.searchObjects(FedoraObjectSearchResource.java:89)
    at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:175)
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:163)
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:63)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:689)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:647)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:638)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:309)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:590)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.fcrepo.server.security.servletfilters.FilterRestApiFlash.doFilter(FilterRestApiFlash.java:79)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.fcrepo.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.fcrepo.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.fcrepo.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.fcrepo.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.fcrepo.server.errors.UnknownSessionTokenException: Session is expired or never existed.
    at org.fcrepo.server.search.FieldSearchSQLImpl.resumeFindObjects(FieldSearchSQLImpl.java:342)
    at org.fcrepo.server.search.FieldSearchSQLModule.resumeFindObjects(FieldSearchSQLModule.java:167)
    at org.fcrepo.server.storage.DefaultDOManager.resumeFindObjects(DefaultDOManager.java:1799)
    at org.fcrepo.server.access.DefaultAccess.resumeFindObjects(DefaultAccess.java:729)
    at org.fcrepo.server.rest.FedoraObjectSearchResource.searchObjects(FedoraObjectSearchResource.java:69)