AMB NullPointerExceptions MidServer user


Description

Lots of NullPointer alerts coming in the logs, example transaction below:

2019-11-18 00:06:17 (372) glide.amb.cluster.synchronizer New transaction 243C65BFDB014410E9288F670596190E #257859 receive /amb/mid/server/8ff3838ecd96a704fa478bae93ba59c2
2019-11-18 00:06:17 (379) AMB_RECEIVE-thread-5 243C65BFDB014410E9288F670596190E txid=6a2ba6f7db01 *** Start #257853 receive /amb/mid/server/8ff3838ecd96a704fa478bae93ba59c2, user: D0A02339
2019-11-18 00:06:17 (379) AMB_RECEIVE-thread-5 243C65BFDB014410E9288F670596190E txid=6a2ba6f7db01 [AMB] AMBGlideRecordReceiveCensor channel_id=/mid/server/8ff3838ecd96a704fa478bae93ba59c2 Message will not be ACL-censored, as it is a custom JSON object, not a GlideRecord
2019-11-18 00:06:17 (380) AMB_RECEIVE-thread-5 243C65BFDB014410E9288F670596190E txid=6a2ba6f7db01 SEVERE *** ERROR *** java.lang.NullPointerException
java.lang.NullPointerException

2019-11-18 00:06:17 (381) AMB_RECEIVE-thread-5 243C65BFDB014410E9288F670596190E txid=6a2ba6f7db01 *** End #257853 receive /amb/mid/server/8ff3838ecd96a704fa478bae93ba59c2, user: D0A02339, total time: 0:00:00.010, processing time: 0:00:00.010, SQL time: 0:00:00.002 (count: 2)

 

Stack trace of the error below (this is only outputted if property -XX:-OmitStackTraceInFastThrow is set, see TASK482942)

 

2019-08-13 02:00:30 (210) AMB_RECEIVE-thread-4 28D90360DB13330016C06F13CA961923 txid=fe55dfa0db57 SEVERE *** ERROR *** java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:213)
at org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:179)
at org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:173)
at org.cometd.server.transport.AbstractStreamHttpTransport$DispatchingLongPollScheduler.dispatch(AbstractStreamHttpTransport.java:210)
at org.cometd.server.transport.AbstractHttpTransport$LongPollScheduler.resume(AbstractHttpTransport.java:773)
at org.cometd.server.transport.AbstractHttpTransport$LongPollScheduler.schedule(AbstractHttpTransport.java:737)
at org.cometd.server.ServerSessionImpl.flush(ServerSessionImpl.java:535)
at org.cometd.server.ServerSessionImpl.doDeliver(ServerSessionImpl.java:272)
at com.glide.amb.server.GlideCometdServerSessionImpl.handleDeferral(GlideCometdServerSessionImpl.java:46)
at com.glide.amb.server.AbstractAMBContext.handleDeferral(AbstractAMBContext.java:234)
at com.glide.amb.server.GlideAMBProcessor.process(GlideAMBProcessor.java:38)
at com.glide.processors.AProcessor.runProcessor(AProcessor.java:531)
at com.glide.processors.AProcessor.processTransaction(AProcessor.java:229)
at com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:188)
at com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:177)
at com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:31)
at com.glide.sys.Transaction.run(Transaction.java:2147)
at com.glide.amb.server.AMBTransaction.run(AMBTransaction.java:30)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Steps to Reproduce

Unfortunately we have not been able to determine the exact steps to reproduce this NPE at will. We know that it seems to only effect the AMB transactions, and occurs when the session is owned by a MidServer user.  The NullPointer exception is triggered every now and then on the AMP transactions.

Workaround

As per the problem, the error does not cause any functionality problems and therefore can be ignored.


Related Problem: PRB1357319