Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

irIIIFService Causes Cantaloupe to Respond with 501 NOT_IMPLEMENTED Unsupported Source Format on Certain Requests #159

Open
markpbaggett opened this issue Nov 1, 2024 · 1 comment

Comments

@markpbaggett
Copy link

Describe the bug
irIIIFService is failing on certain jpf files (maybe others?) with 2024-11-01 12:57:55.140 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate: Response 501 NOT_IMPLEMENTED on certain files from Cantaloupe. Oddly, Cantaloupe has no issues processing the file, returning an image response, or generating a derivative from it when you by pass irIIIFService and do everything as a base64encoded request.

To Reproduce

  1. Request https://api.library.tamu.edu/iiif-service/dspace/presentation/1969.1/129038.
  2. Watch the log and notice the error below.
  3. Notice that it makes this request to Cantaloupe and how Cantaloupe responds: https://api.library.tamu.edu/iiif/2/78081ee6-95d1-3ca7-8e3b-da9ffad0fc6f/info.json
  4. As you see in the logs, it's requesting Canataloupe to process this: https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/2/CML_WWI_0087b.jpf
  5. We can base64 encode that and make a direct cantaloupe request like: https://api.library.tamu.edu/iiif/2/aHR0cHM6Ly9vYWt0cnVzdC5saWJyYXJ5LnRhbXUuZWR1L2JpdHN0cmVhbS8xOTY5LjEvMTI5MDM4LzIvQ01MX1dXSV8wMDg3Yi5qcGY=/info.json
  6. We can get the full image back from Canataloupe like: https://api.library.tamu.edu/iiif/2/aHR0cHM6Ly9vYWt0cnVzdC5saWJyYXJ5LnRhbXUuZWR1L2JpdHN0cmVhbS8xOTY5LjEvMTI5MDM4LzIvQ01MX1dXSV8wMDg3Yi5qcGY=/full/full/0/default.jpg

Expected behavior
irIIIFService is doing something to cause Cantaloupe to respond this way. It should work more like the base 64 encoded request.

Screenshots

2024-11-01 12:56:19.485 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.security.web.FilterChainProxy        : Securing GET /error
2024-11-01 12:56:19.485 DEBUG 1 --- [http-nio-8080-exec-4786] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2024-11-01 12:56:19.485 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2024-11-01 12:56:19.485 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.security.web.FilterChainProxy        : Secured GET /error
2024-11-01 12:56:19.485 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.web.servlet.DispatcherServlet        : "ERROR" dispatch for GET "/iiif-service/error", parameters={}
2024-11-01 12:56:19.486 DEBUG 1 --- [http-nio-8080-exec-4786] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse)
2024-11-01 12:56:19.487 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, text/html;q=0.8]
2024-11-01 12:56:19.488 DEBUG 1 --- [http-nio-8080-exec-4786] o.s.web.servlet.DispatcherServlet        : Exiting from "ERROR" dispatch, status 500
2024-11-01 12:56:19.488 DEBUG 1 --- [http-nio-8080-exec-4786] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2024-11-01 12:57:30.015  INFO 1 --- [http-nio-8080-exec-4796] o.apache.tomcat.util.http.parser.Cookie  : A cookie header was received [ezproxy=http://srv-proxy2.library.tamu.edu,ZKenB3nmWuYEN8Oj5CJOlwayst9YTjs;] that contained an invalid cookie. That cookie will be ignored.
 Note: further occurrences of this error will be logged at DEBUG level.
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.security.web.FilterChainProxy        : Securing GET /dspace/presentation/1969.1/129038
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.s.w.a.i.FilterSecurityInterceptor    : Authorized filter invocation [GET /dspace/presentation/1969.1/129038] with attributes [permitAll]
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.security.web.FilterChainProxy        : Secured GET /dspace/presentation/1969.1/129038
2024-11-01 12:57:30.015 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.servlet.DispatcherServlet        : GET "/iiif-service/dspace/presentation/1969.1/129038", parameters={}
2024-11-01 12:57:30.016 DEBUG 1 --- [http-nio-8080-exec-4796] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to edu.tamu.iiif.controller.dspace.rdf.DSpaceRdfPresentationManifestController#manifest(HttpServletResponse, ManifestRequest)
2024-11-01 12:57:30.016 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.d.redis.core.RedisConnectionUtils    : Fetching Redis Connection from RedisConnectionFactory
2024-11-01 12:57:30.016 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.d.redis.core.RedisConnectionUtils    : Closing Redis Connection.
2024-11-01 12:57:30.016  INFO 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : Generating new manifest.
2024-11-01 12:57:30.016  INFO 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : Requesting RDF for https://oaktrust.library.tamu.edu/server/rdf/handle/1969.1/129038
2024-11-01 12:57:30.016 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : HTTP GET https://oaktrust.library.tamu.edu/server/rdf/handle/1969.1/129038
2024-11-01 12:57:30.016 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Accept=[text/plain, application/json, application/*+json, */*]
2024-11-01 12:57:30.050 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Response 200 OK
2024-11-01 12:57:30.050 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Reading to [java.lang.String] as "text/turtle;charset=UTF-8"
2024-11-01 12:57:30.050 DEBUG 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : RDF for https://oaktrust.library.tamu.edu/server/rdf/handle/1969.1/129038:
@prefix void:  <http://rdfs.org/ns/void#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix bibo:  <http://purl.org/ontology/bibo/> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix dspace: <http://digital-repositories.org/ontologies/dspace/0.1.0#> .

<https://oaktrust.library.tamu.edu/server/rdf/resource/1969.1/129038>
        dspace:hasBitstream        <https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/1/CML_WWI_0087a.jpf> , <https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/2/CML_WWI_0087b.jpf> ;
        dspace:isPartOfCollection  <https://oaktrust.library.tamu.edu/server/rdf/resource/1969.1/128952> ;
        dc:date                    "2012-03-05T16:28:12Z"^^xsd:dateTime ;
        dc:format                  "3 1/2 x 5 1/2 in." ;
        dc:language                "eng" ;
        dc:publisher               "Cushing Memorial Library and Archives" ;
        dc:rights                  "No copyright - Non-commercial use only; for more information see: http://rightsstatements.org/vocab/NoC-NC/1.0/" ;
        dcterms:abstract           "(Color) This postcard displays an image of seven Allied flags (United Kingdom, France, Russia, Belgium, Serbia, Italy, and Japan) with an accompanying poem to encourage the soldiers and folks back home to \"Just Keep On!\" The back indicates that the text author produces the poems herself out of a hotel, and proceeds go to the \"Comforts for the Wounded at the Army Nursing Homes, Folkestone.\" This card is uninscribed and unposted."@en ;
        dcterms:available          "2012-03-05T16:28:12Z"^^xsd:dateTime ;
        dcterms:created            "[Between 1914 and 1918?]"^^xsd:dateTime ;
        dcterms:hasPart            <https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/1/CML_WWI_0087a.jpf> , <https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/2/CML_WWI_0087b.jpf> ;
        dcterms:isPartOf           "WWI Postcard Collection, Ragan Military Collection" ;
        dcterms:isPartOf           <https://oaktrust.library.tamu.edu/server/rdf/resource/1969.1/128952> ;
        dcterms:issued             "2012-03-05" ;
        dcterms:title              "Courage: \"Just Keep On!\"" ;
        bibo:uri                   <https://hdl.handle.net/1969.1/129038> ;
        void:sparqlEndpoint        <http://dspace-fuseki:3030/fuseki/dspace/sparql> ;
        foaf:homepage              <https://oaktrust.library.tamu.edu> .


2024-11-01 12:57:30.051  WARN 1 --- [http-nio-8080-exec-4796] org.apache.jena.riot                     : [line: 20, col: 36] Lexical form '[Between 1914 and 1918?]' not valid for datatype XSD dateTime
2024-11-01 12:57:30.051 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : HTTP HEAD https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/2/CML_WWI_0087b.jpf
2024-11-01 12:57:55.114 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Response 200 OK
2024-11-01 12:57:55.114 DEBUG 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : Mime type: image/jp2;charset=UTF-8
2024-11-01 12:57:55.114  INFO 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : Including: https://oaktrust.library.tamu.edu/bitstream/1969.1/129038/2/CML_WWI_0087b.jpf
2024-11-01 12:57:55.114 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.d.redis.core.RedisConnectionUtils    : Fetching Redis Connection from RedisConnectionFactory
2024-11-01 12:57:55.114 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.d.redis.core.RedisConnectionUtils    : Closing Redis Connection.
2024-11-01 12:57:55.115 DEBUG 1 --- [http-nio-8080-exec-4796] e.t.i.service.AbstractManifestService    : Fetching image info https://api.library.tamu.edu/iiif/2/78081ee6-95d1-3ca7-8e3b-da9ffad0fc6f/info.json
2024-11-01 12:57:55.115 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : HTTP GET https://api.library.tamu.edu/iiif/2/78081ee6-95d1-3ca7-8e3b-da9ffad0fc6f/info.json
2024-11-01 12:57:55.115 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Accept=[text/plain, application/json, application/*+json, */*]
2024-11-01 12:57:55.140 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.client.RestTemplate              : Response 501 NOT_IMPLEMENTED
2024-11-01 12:57:55.141 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.servlet.DispatcherServlet        : Failed to complete request: org.springframework.web.client.HttpServerErrorException$NotImplemented: 501 Not Implemented: "501 Not Implemented<EOL><EOL>Unsupported source format<EOL><EOL><EOL>edu.illinois.library.cantaloupe.processor.SourceFormatException: Unsupported source format<EOL>?at edu.illinois.library.cantaloupe.resource.InformationRequestHandler.handle(InformationRequestHandler.java:297)<EOL>?at edu.illinois.library.cantaloupe.resource.iiif.v2.InformationResource.doGET(InformationResource.java:85)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.handle(HandlerServlet.java:97)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.doGet(HandlerServlet.java:35)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<EOL>?at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)<EOL>?at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)<EOL>?at org.eclipse.jetty.server.Server.handle(Server.java:516)<EOL>?at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)<EOL>?at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)<EOL>?at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)<EOL>?at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)<EOL>?at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)<EOL>?at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)<EOL>?at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)<EOL>?at java.base/java.lang.Thread.run(Thread.java:840)<EOL><EOL>"
2024-11-01 12:57:55.141 DEBUG 1 --- [http-nio-8080-exec-4796] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2024-11-01 12:57:55.142 ERROR 1 --- [http-nio-8080-exec-4796] o.a.c.c.C.[.[.[.[dispatcherServlet]      : Servlet.service() for servlet [dispatcherServlet] in context with path [/iiif-service] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpServerErrorException$NotImplemented: 501 Not Implemented: "501 Not Implemented<EOL><EOL>Unsupported source format<EOL><EOL><EOL>edu.illinois.library.cantaloupe.processor.SourceFormatException: Unsupported source format<EOL>?at edu.illinois.library.cantaloupe.resource.InformationRequestHandler.handle(InformationRequestHandler.java:297)<EOL>?at edu.illinois.library.cantaloupe.resource.iiif.v2.InformationResource.doGET(InformationResource.java:85)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.handle(HandlerServlet.java:97)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.doGet(HandlerServlet.java:35)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<EOL>?at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)<EOL>?at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)<EOL>?at org.eclipse.jetty.server.Server.handle(Server.java:516)<EOL>?at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)<EOL>?at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)<EOL>?at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)<EOL>?at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)<EOL>?at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)<EOL>?at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)<EOL>?at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)<EOL>?at java.base/java.lang.Thread.run(Thread.java:840)<EOL><EOL>"] with root cause

org.springframework.web.client.HttpServerErrorException$NotImplemented: 501 Not Implemented: "501 Not Implemented<EOL><EOL>Unsupported source format<EOL><EOL><EOL>edu.illinois.library.cantaloupe.processor.SourceFormatException: Unsupported source format<EOL>?at edu.illinois.library.cantaloupe.resource.InformationRequestHandler.handle(InformationRequestHandler.java:297)<EOL>?at edu.illinois.library.cantaloupe.resource.iiif.v2.InformationResource.doGET(InformationResource.java:85)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.handle(HandlerServlet.java:97)<EOL>?at edu.illinois.library.cantaloupe.resource.HandlerServlet.doGet(HandlerServlet.java:35)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)<EOL>?at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<EOL>?at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)<EOL>?at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)<EOL>?at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)<EOL>?at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)<EOL>?at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)<EOL>?at org.eclipse.jetty.server.Server.handle(Server.java:516)<EOL>?at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)<EOL>?at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)<EOL>?at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)<EOL>?at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)<EOL>?at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)<EOL>?at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)<EOL>?at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)<EOL>?at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)<EOL>?at java.base/java.lang.Thread.run(Thread.java:840)<EOL><EOL>"
        at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:104) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:170) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:825) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:783) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:340) ~[spring-web-5.3.24.jar!/:5.3.24]
        at edu.tamu.iiif.service.AbstractManifestService.fetchImageInfo(AbstractManifestService.java:285) ~[classes!/:na]
        at edu.tamu.iiif.service.AbstractManifestService.getImageInfo(AbstractManifestService.java:494) ~[classes!/:na]
        at edu.tamu.iiif.service.AbstractManifestService.generateImageResource(AbstractManifestService.java:218) ~[classes!/:na]
        at edu.tamu.iiif.service.AbstractManifestService.generateImage(AbstractManifestService.java:197) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.AbstractDSpaceRdfManifestService.getDSpaceRdfCanvas(AbstractDSpaceRdfManifestService.java:210) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.AbstractDSpaceRdfManifestService.generateCanvas(AbstractDSpaceRdfManifestService.java:67) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.AbstractDSpaceRdfManifestService.getCanvases(AbstractDSpaceRdfManifestService.java:189) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.AbstractDSpaceRdfManifestService.generateSequence(AbstractDSpaceRdfManifestService.java:59) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.DSpaceRdfPresentationManifestService.aggregateSequences(DSpaceRdfPresentationManifestService.java:113) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.DSpaceRdfPresentationManifestService.getSequences(DSpaceRdfPresentationManifestService.java:82) ~[classes!/:na]
        at edu.tamu.iiif.service.dspace.rdf.DSpaceRdfPresentationManifestService.generateManifest(DSpaceRdfPresentationManifestService.java:44) ~[classes!/:na]
        at edu.tamu.iiif.service.AbstractManifestService.getManifest(AbstractManifestService.java:131) ~[classes!/:na]
        at edu.tamu.iiif.controller.AbstractManifestController.sendManifest(AbstractManifestController.java:26) ~[classes!/:na]
        at edu.tamu.iiif.controller.dspace.rdf.DSpaceRdfPresentationManifestController.manifest(DSpaceRdfPresentationManifestController.java:25) ~[classes!/:na]
        at jdk.internal.reflect.GeneratedMethodAccessor80.invoke(Unknown Source) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:670) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.24.jar!/:5.3.24]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:150) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.9.jar!/:5.6.9]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.6.14.jar!/:2.6.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar!/:5.3.24]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.69.jar!/:na]
        at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

2024-11-01 12:57:55.143 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.security.web.FilterChainProxy        : Securing GET /error
2024-11-01 12:57:55.143 DEBUG 1 --- [http-nio-8080-exec-4796] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2024-11-01 12:57:55.143 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2024-11-01 12:57:55.143 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.security.web.FilterChainProxy        : Secured GET /error
2024-11-01 12:57:55.143 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.servlet.DispatcherServlet        : "ERROR" dispatch for GET "/iiif-service/error", parameters={}
2024-11-01 12:57:55.144 DEBUG 1 --- [http-nio-8080-exec-4796] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse)
2024-11-01 12:57:55.145 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, text/html;q=0.8]
2024-11-01 12:57:55.145 DEBUG 1 --- [http-nio-8080-exec-4796] o.s.web.servlet.DispatcherServlet        : Exiting from "ERROR" dispatch, status 500
2024-11-01 12:57:55.145 DEBUG 1 --- [http-nio-8080-exec-4796] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
@markpbaggett
Copy link
Author

It's not just jpfs:

2024-11-01 14:49:37.992  INFO 1 --- [http-nio-8080-exec-4948] e.t.i.service.AbstractManifestService    : Including: https://oaktrust.library.tamu.edu/bitstream/1969.1/3398/7/077pg01.tif
2024-11-01 14:49:37.992 DEBUG 1 --- [http-nio-8080-exec-4948] o.s.d.redis.core.RedisConnectionUtils    : Fetching Redis Connection from RedisConnectionFactory
2024-11-01 14:49:37.992 DEBUG 1 --- [http-nio-8080-exec-4948] o.s.d.redis.core.RedisConnectionUtils    : Closing Redis Connection.
2024-11-01 14:49:37.993 DEBUG 1 --- [http-nio-8080-exec-4948] e.t.i.service.AbstractManifestService    : Fetching image info https://api.library.tamu.edu/iiif/2/1cd78f45-afd8-3b56-9f38-5b26f1043669/info.json
2024-11-01 14:49:37.993 DEBUG 1 --- [http-nio-8080-exec-4948] o.s.web.client.RestTemplate              : HTTP GET https://api.library.tamu.edu/iiif/2/1cd78f45-afd8-3b56-9f38-5b26f1043669/info.json
2024-11-01 14:49:37.993 DEBUG 1 --- [http-nio-8080-exec-4948] o.s.web.client.RestTemplate              : Accept=[text/plain, application/json, application/*+json, */*]
2024-11-01 14:49:38.040 DEBUG 1 --- [http-nio-8080-exec-4948] o.s.web.client.RestTemplate              : Response 501 NOT_IMPLEMENTED

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant