Mike Jumper created GUACAMOLE-2052:
--------------------------------------
Summary: Logging of request details fails with recent Tomcat
Key: GUACAMOLE-2052
URL: https://issues.apache.org/jira/browse/GUACAMOLE-2052
Project: Guacamole
Issue Type: Bug
Components: guacamole-ext
Affects Versions: 1.6.0
Reporter: Mike Jumper
Fix For: 1.6.0
When testing {{staging/1.6.0}} under Tomcat 9.0.91, I encounter the following
exception filling the logs:
{code:none}
SLF4J(E): Failed toString() invocation on an object of type
[org.apache.guacamole.event.RemoteAddress]
SLF4J(E): Reported exception:
java.lang.IllegalStateException: The request object has been recycled and is no
longer associated with this facade
at
org.apache.catalina.connector.RequestFacade.checkFacade(RequestFacade.java:856)
at
org.apache.catalina.connector.RequestFacade.getHeader(RequestFacade.java:516)
at
javax.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:82)
at
javax.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:82)
at
javax.servlet.http.HttpServletRequestWrapper.getHeader(HttpServletRequestWrapper.java:82)
at
org.apache.guacamole.event.RemoteAddress.toString(RemoteAddress.java:86)
...
at
org.apache.guacamole.rest.auth.TokenRESTService.createToken(TokenRESTService.java:174)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
...
{code}
This is caused by Tomcat recycling the underlying request object, which is then
no longer usable via the facade stored within the {{Credentials}} object. The
new behavior looks to be either the result of new defaults or new sanity checks.
We'll have to start storing the most relevant parts of the request directly
within {{Credentials}} instead of relying on direct access to the request.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)