B4J Question Problems with jServer4 and Jetty11

Omar Moreno

Member
Licensed User
Longtime User
Hi.

I have a server application that has been running for several years with all the B4J updates (jserver3...)

Today update B4J to 9.80 which has new (jServer4, Jetty 11) , also update java jdk -10 to OpenJDK 11 (jdk-11.0.1.zip) from download page.

Now some users report connection errors and these messages are displayed on the server:

org.eclipse.jetty.websocket.api.exceptions.WebSocketTimeoutException: Connection Idle Timeout
at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.convertCause(JettyWebSocketFrameHandler.java:509)
at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onError(JettyWebSocketFrameHandler.java:258)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.lambda$closeConnection$2(WebSocketCoreSession.java:283)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1460)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1479)
at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker$1.handle(AbstractHandshaker.java:212)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.closeConnection(WebSocketCoreSession.java:283)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.lambda$sendFrame$7(WebSocketCoreSession.java:518)
at org.eclipse.jetty.util.Callback$3.succeeded(Callback.java:155)
at org.eclipse.jetty.websocket.core.internal.TransformingFlusher.notifyCallbackSuccess(TransformingFlusher.java:151)
at org.eclipse.jetty.websocket.core.internal.TransformingFlusher$Flusher.process(TransformingFlusher.java:111)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:232)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:214)
at org.eclipse.jetty.websocket.core.internal.TransformingFlusher.sendFrame(TransformingFlusher.java:75)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.sendFrame(WebSocketCoreSession.java:521)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.close(WebSocketCoreSession.java:239)
at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.processHandlerError(WebSocketCoreSession.java:370)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onIdleExpired(WebSocketConnection.java:233)
at org.eclipse.jetty.io.ssl.SslConnection.onIdleExpired(SslConnection.java:360)
at org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:407)
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:166)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:108)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.eclipse.jetty.websocket.core.exception.WebSocketTimeoutException: Connection Idle Timeout
... 11 more
Atrapado por Application_Error: java.lang.RuntimeException: Method: setMaxTextMessageSize not matched.
java.lang.RuntimeException: Method: setMaxTextMessageSize not matched.
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:130)
at ms.maestrax.modcompartidos._vvvvv0(modcompartidos.java:1219)
at ms.maestrax.crearenviosint._websocket_connected(crearenviosint.java:1327)
at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:204)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

java.lang.RuntimeException: java.lang.RuntimeException: Method: setMaxTextMessageSize not matched.
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:140)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:204)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Method: setMaxTextMessageSize not matched.
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:130)
at ms.maestrax.modcompartidos._vvvvv0(modcompartidos.java:1219)
at ms.maestrax.crearenviosint._websocket_connected(crearenviosint.java:1327)
at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
... 7 more


Can you give me some suggestion to fix these errors.

Thank you for your answers.
 

alwaysbusy

Expert
Licensed User
Longtime User
We do see a lot more of those in our logs too, but most of them do not hinder our users. it may be that jetty 4 just logs more stuff than jetty 3 did.

For this particular one however, the setMaxTextMessageSize syntax has changed as it now accepts a Long instead of an Int, so you may solve this one with:

B4X:
Dim MaxSize as Long = 5*1024*1024 ' <----------- put it in a Long variable
Dim jo As JavaObject = ws
jo = jo.GetFieldJO("session").RunMethod("getPolicy", Null)
jo.RunMethod("setMaxTextMessageSize", Array(MaxSize))

Alwaysbusy
 
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
We do see a lot more of those in our logs too, but most of them do not hinder our users. it may be that jetty 4 just logs more stuff than jetty 3 did.

For this particular one however, the setMaxTextMessageSize syntax has changed as it now accepts a Long instead of an Int, so you may solve this one with:

B4X:
Dim MaxSize as Long = 5*1024*1024 ' <----------- put it in a Long variable
Dim jo As JavaObject = ws
jo = jo.GetFieldJO("session").RunMethod("getPolicy", Null)
jo.RunMethod("setMaxTextMessageSize", Array(MaxSize))

Alwaysbusy

Where should I put the code you recommend?
Thank you for your answers.
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
From what I can see in the logs you must use the 'setMaxTextMessageSize' somewhere in the 'modcompartidos' class I think. Because you use obfuscation is should probably be in the ._vvvvv0 method. (I think a .map file is created in the /Objects folder where you can retrieve its original name).

Alwaysbusy
 
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
From what I can see in the logs you must use the 'setMaxTextMessageSize' somewhere in the 'modcompartidos' class I think. Because you use obfuscation is should probably be in the ._vvvvv0 method. (I think a .map file is created in the /Objects folder where you can retrieve its original name).

Alwaysbusy
I will verify the .map or remove the obfuscated
Note: I suspect that they are only the users who use the Safari browser, that Browser appears in the logs
 
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
Safari is a b*tch to program for 😅 , but I think this particular error happens on the server side and is because Jetty 4 changed the syntax of this method and will happen on all browsers.

Alwaysbusy
But I try with Chrome and Firefox and everything works and the two that are reporting problems use safari... 😵
Now I'm going to make your recommendations and come back with the results.
Thank you very much

Edited:
Your comment is very true, while I was recompiling the change in the setMaxTextMessageSize subroutine, the calls with users from different browsers began to come in...
The repair was successful, excellent!
Thanks.
 
Last edited:
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
Any suggestions for these constantly repeating messages:

OcultoSiNo: java.util.concurrent.TimeoutException
RedireccionarPagina: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
ValidaMenu: java.nio.channels.ClosedChannelException
java.io.IOException: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.util.FutureCallback.block(FutureCallback.java:163)
at org.eclipse.jetty.websocket.common.JettyWebSocketRemoteEndpoint.flush(JettyWebSocketRemoteEndpoint.java:267)
at anywheresoftware.b4j.object.WebSocket.Flush(WebSocket.java:117)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:205)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.websocket.core.internal.FrameFlusher.<clinit>(FrameFlusher.java:47)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:124)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:86)
at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.newWebSocketConnection(AbstractHandshaker.java:223)
at org.eclipse.jetty.websocket.core.server.internal.RFC6455Handshaker.createWebSocketConnection(RFC6455Handshaker.java:100)
at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.upgradeRequest(AbstractHandshaker.java:143)
at org.eclipse.jetty.websocket.core.server.internal.HandshakerSelector.upgradeRequest(HandshakerSelector.java:39)
at org.eclipse.jetty.websocket.core.server.WebSocketMappings.upgrade(WebSocketMappings.java:240)
at org.eclipse.jetty.websocket.server.JettyWebSocketServlet.service(JettyWebSocketServlet.java:181)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1630)
at anywheresoftware.b4j.object.JServlet$Handle.run(JServlet.java:151)
at anywheresoftware.b4j.object.JServlet.Handle(JServlet.java:126)
at anywheresoftware.b4j.object.JServlet.doFilter(JServlet.java:88)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1600)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:530)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:379)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:146)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
... 1 more
onWebSocketError: null
onWebSocketError: null
OcultoSiNo: java.util.concurrent.TimeoutException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
RedireccionarPagina: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
OcultoSiNo: java.nio.channels.ClosedChannelException
ValidaMenu: java.nio.channels.ClosedChannelException
java.io.IOException: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.util.FutureCallback.block(FutureCallback.java:163)
at org.eclipse.jetty.websocket.common.JettyWebSocketRemoteEndpoint.flush(JettyWebSocketRemoteEndpoint.java:267)
at anywheresoftware.b4j.object.WebSocket.Flush(WebSocket.java:117)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:205)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.websocket.core.internal.FrameFlusher.<clinit>(FrameFlusher.java:47)
OcultoSiNo: java.util.concurrent.TimeoutException
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:124)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:86)OcultoSiNo:java.nio.channels.ClosedChannelException

at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.newWebSocketConnection(AbstractHandshaker.
java:223)
RedireccionarPagina: java.nio.channels.ClosedChannelException at org.eclipse.jetty.websocket.core.server.internal.RFC64
55Handshaker.createWebSocketConnection(RFC6455Handshaker.java:100)

at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.upgradeRequest(AbstractHandshaker.java:143)
at org.eclipse.jetty.websocket.core.server.internal.HandshakerSelector.upgradeRequest(HandshakerSelector.java:39)

at org.eclipse.jetty.websocket.core.server.WebSocketMappings.upgrade(WebSocketMappings.java:240)
at org.eclipse.jetty.websocket.server.JettyWebSocketServlet.service(JettyWebSocketServlet.java:181)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)OcultoSiNo: java.nio.channels.ClosedChan
nelException

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1630)OcultoSiNo: java.nio.chann
els.ClosedChannelException
at anywheresoftware.b4j.object.JServlet$Handle.run(JServlet.java:151)

at anywheresoftware.b4j.object.JServlet.Handle(JServlet.java:126)
at anywheresoftware.b4j.object.JServlet.doFilter(JServlet.java:88)
OcultoSiNo: java.nio.channels.ClosedChannelException at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.j
ava:202)

at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1600)
OcultoSiNo: java.nio.channels.ClosedChannelException at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandl
er.java:506)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)OcultoSiNo: java.nio.channels
.ClosedChannelException

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
OcultoSiNo: java.nio.channels.ClosedChannelException at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(Scop
edHandler.java:221)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)OcultoSiNo: java.nio.channel
s.ClosedChannelException

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
ValidaMenu: java.nio.channels.ClosedChannelException at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandle
r.java:463)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:530)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:379)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:146)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
... 1 more
java.io.IOException: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.util.FutureCallback.block(FutureCallback.java:163)
at org.eclipse.jetty.websocket.common.JettyWebSocketRemoteEndpoint.flush(JettyWebSocketRemoteEndpoint.java:267)
at anywheresoftware.b4j.object.WebSocket.Flush(WebSocket.java:117)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:205)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.channels.ClosedChannelException
at org.eclipse.jetty.websocket.core.internal.FrameFlusher.<clinit>(FrameFlusher.java:47)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:124)
at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.<init>(WebSocketConnection.java:86)
at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.newWebSocketConnection(AbstractHandshaker.
java:223)
at org.eclipse.jetty.websocket.core.server.internal.RFC6455Handshaker.createWebSocketConnection(RFC6455Handshaker
.java:100)
at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker.upgradeRequest(AbstractHandshaker.java:143)
at org.eclipse.jetty.websocket.core.server.internal.HandshakerSelector.upgradeRequest(HandshakerSelector.java:39)

at org.eclipse.jetty.websocket.core.server.WebSocketMappings.upgrade(WebSocketMappings.java:240)
at org.eclipse.jetty.websocket.server.JettyWebSocketServlet.service(JettyWebSocketServlet.java:181)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1630)
at anywheresoftware.b4j.object.JServlet$Handle.run(JServlet.java:151)
at anywheresoftware.b4j.object.JServlet.Handle(JServlet.java:126)
at anywheresoftware.b4j.object.JServlet.doFilter(JServlet.java:88)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1600)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:530)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:379)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:146)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
... 1 more
RedireccionarPagina: java.util.concurrent.TimeoutException
OcultoSiNo: java.util.concurrent.TimeoutException
OcultoSiNo: java.util.concurrent.TimeoutException
OcultoSiNo: java.util.concurrent.TimeoutException
OcultoSiNo: java.util.concurrent.TimeoutException
OcultoSiNo: java.util.concurrent.TimeoutException
onWebSocketError: null
onWebSocketError: null
onWebSocketError: null
onWebSocketError: null
onWebSocketError: null
QuePadre: [ INICIO ]: java.util.concurrent.TimeoutException
onWebSocketError: null
onWebSocketError: null

Thank you for your answers.
 
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
I managed to repair the errors, all I have left is this:
onWebSocketError: null
This happens when I close the TAB or the browser.
 
Upvote 0

Omar Moreno

Member
Licensed User
Longtime User
It was a programming error because I have a timer object to display and a clock and messages on the page, but I mistakenly used it to validate properties of some jqueryelement and when the login finished the timer_tick event generated all those errors.
All of that validation inside the timer_tick event is turned into a subroutine that is called from the child page's onload event.
But I'm still investigating why when closing the webbapp the server always generates the message: onWebSocketError: null

Greetings.
 
Upvote 0
Top