Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
proton-j-0.27.0, proton-j-0.28.0
-
None
-
None
Description
Whilst verifying the RC1 candidate for the 0.27.3 RC1, the proton_tests.engine.CreditTest.testDrainOrder Jython test caused a NPE with Proton-J's application code. I realised later my shell had the PN_TRACE_FRM=true environment variable set. Unsetting the variable allows the test to pass. The regression was introduced at 0.27.0.
proton_tests.engine.CreditTest.testDrainOrder ...........................[1346009488:0] -> Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}, target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, properties=null} [1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=10, available=null, drain=false, echo=false, properties=null} [1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, resume=false, aborted=false, batchable=false} (1) "A" fail Error during test: Traceback (most recent call last): File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test", line 362, in run phase() File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py", line 1556, in testDrainOrder self.pump() File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py", line 112, in pump pump(t1, t2, buffer_size) File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py", line 113, in pump while (pump_uni(transport1, transport2, buffer_size) or File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py", line 86, in pump_uni p = src.pending() File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py", line 2764, in pending p = pn_transport_pending(self._impl) File "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py", line 936, in pn_transport_pending return trans.impl.pending() NullPointerException: java.lang.NullPointerException org.apache.qpid.proton.codec.CompositeReadableBuffer.<init>(CompositeReadableBuffer.java:69) org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474) org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35) org.apache.qpid.proton.amqp.Binary.create(Binary.java:181) org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200) org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168) org.apache.qpid.proton.engine.impl.TransportImpl.writeFrame(TransportImpl.java:1081) org.apache.qpid.proton.engine.impl.TransportImpl.processTransportWorkSender(TransportImpl.java:606) org.apache.qpid.proton.engine.impl.TransportImpl.processTransportWork(TransportImpl.java:518) org.apache.qpid.proton.engine.impl.TransportImpl.writeInto(TransportImpl.java:347) org.apache.qpid.proton.engine.impl.TransportOutputAdaptor.pending(TransportOutputAdaptor.java:59) org.apache.qpid.proton.engine.impl.TransportImpl.pending(TransportImpl.java:1532) sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) proton_tests.engine.CreditTest.testDrainZero ............................[2018964506:0] -> Open{ containerId='', hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, properties=null}
Attachments
Issue Links
- relates to
-
PROTON-1906 duplicating an empty composite buffer can lead to NPE
- Closed