The documentation of ExternalContext.getSessionMaxInactiveInterval says this:
"... Returns the maximum time interval, in seconds, that the servlet container will keep this session open between client accesses. After this interval, the servlet container will invalidate the session. The maximum time interval can be set with the setSessionMaxInactiveInterval(int) method.
A return value of zero or less indicates that the session will never timeout.
Servlet: This must return the result of calling getMaxInactiveInterval on the underlying javax.servlet.http.HttpServletRequest instance.
The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class. ..."
I checked if HttpServletRequest has getMaxInactiveInterval method but the class with that method is HttpSession.
I suppose it is a bug on the javadoc.