Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.7.9
-
None
-
Unknown
Description
While a message is being retransmitted from a client (RM-Source) from its retransmission queue, the corresponding message might be acknowledged and its resource released at the client. And in this case, an NPE will be thrown during the resending of the message.
Feb 5, 2014 5:48:32 PM org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3 resend
WARNING: WS-RM retransmission failed.
java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:89)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:461)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.clientResend(RetransmissionQueueImpl.java:371)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$400(RetransmissionQueueImpl.java:80)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:768)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:577)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:565)
at org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:724)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Note that this issue is about handling this case gracefully to avoid throwing an NPE. The issue itself does not break the delivery guarantee semantics as the resend is failing because the message has been acknowledged.