On Fri, Jul 26, 2019 at 3:42 AM tucky kong <[email protected]> wrote:

>
>
> Le jeu. 25 juil. 2019 à 21:08, Nick Couchman <[email protected]> a écrit :
>
>>
>>
>> On Thu, Jul 25, 2019 at 8:45 AM tucky kong <[email protected]> wrote:
>>
>>> According to your advice, I wrote my extension with JAX-RS. It worked
>>> until I tried with guacamole 1.0.0. Since then, I got an error 500 with the
>>> following content:
>>>
>>> {"message":"Unexpected internal 
>>> error","translatableMessage":{"key":"Unexpected internal 
>>> error","variables":null},"statusCode":null,"expected":null,"type":"INTERNAL_ERROR"}
>>>
>>> Logs give:
>>> ERROR o.a.g.rest.RESTExceptionMapper - Unexpected internal error: null for 
>>> uri: http://localhost/guacamole/api/ext/prometheus/metrics
>>> DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
>>> com.sun.jersey.api.NotFoundException: null for uri: 
>>> http://localhost/guacamole/api/ext/prometheus/metrics
>>>
>>> what I'm concerned about is that with guacamole 0.9.14 when I tried to 
>>> access /api/ext endpoint, I had a 405 error. With guacamole 1.0.0 I get an 
>>> error 500 with the following logs:
>>> ERROR o.a.g.rest.RESTExceptionMapper - An internal error occurred, but did 
>>> not contain an error message. Enable debug-level logging for details.
>>> DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
>>> javax.ws.rs.WebApplicationException: null
>>>
>>>
>> Well, there's a null value somewhere that there shouldn't be.  There
>> should be some better log messages somewhere that point you to the exact
>> line of code where you're having issues.
>>
>
>
> Sorry, I forgot to give the full stack trace:
>
> 2019/07/26 07:22:47.052 [http-nio-8080-exec-1] ERROR
> o.a.g.rest.RESTExceptionMapper - Unexpected internal error: null for uri:
> http://localhost/guacamole/api/ext/prometheus/metrics
> 2019/07/26 07:22:47.070 [http-nio-8080-exec-1] DEBUG
> o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
> com.sun.jersey.api.NotFoundException: null for uri:
> http://localhost/guacamole/api/ext/prometheus/metrics
>
>

Do you have a variable called "uri" somewhere in your code?  I suspect you
do, and I suspect it is null at a time when whatever function you're
calling (_handleRequest) expects it to be non-null.


> at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1512)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> [servlet-api.jar:na]
>         at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> [guice-servlet-3.0.jar:na]
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
> [catalina.jar:8.5.41]
>         at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> [tomcat-coyote.jar:8.5.41]
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [na:1.8.0_212]
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [na:1.8.0_212]
>         at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> [tomcat-util.jar:8.5.41]
>         at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
>
> And for the /api/ext endpoint:
> 019/07/26 07:39:05.316 [http-nio-8080-exec-2] ERROR
> o.a.g.rest.RESTExceptionMapper - An internal error occurred, but did not
> contain an error message. Enable debug-level logging for details.
> 2019/07/26 07:39:05.317 [http-nio-8080-exec-2] DEBUG
> o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
> javax.ws.rs.WebApplicationException: null
>         at
> com.sun.jersey.server.impl.uri.rules.TerminatingRule.accept(TerminatingRule.java:66)
> ~[jersey-server-1.17.1.jar:1.17.1]
>

Again, there's some place a null value is being passed through to the
accept() method in a TerminatingRule object, and this is unexpected.  While
your code may not care about or deal with null values, whatever it's being
passed on to does care, and these traces should help guide you to where
those errors are.

If you can share your code, someone in the community might be able to spot
the issue.


>         at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> ~[jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> ~[jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> ~[jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
> [jersey-server-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
> [jersey-servlet-1.17.1.jar:1.17.1]
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> [servlet-api.jar:na]
>         at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
> [guice-servlet-3.0.jar:na]
>         at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> [guice-servlet-3.0.jar:na]
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> [catalina.jar:8.5.41]
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
> [catalina.jar:8.5.41]
>         at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> [tomcat-coyote.jar:8.5.41]
>         at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> [tomcat-coyote.jar:8.5.41]
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [na:1.8.0_212]
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [na:1.8.0_212]
>         at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> [tomcat-util.jar:8.5.41]
>         at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
>

-Nick

Reply via email to