Lorenz Quack created QPID-6793:
----------------------------------

             Summary: (0-10) Sending messages with large header string throws 
AssertionError
                 Key: QPID-6793
                 URL: https://issues.apache.org/jira/browse/QPID-6793
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker, Java Client
            Reporter: Lorenz Quack


On AMQP 0-10 when putting a large String (>16 Bit) on a header sending throws 
and AssertionError.

Example: 
{noformat}
// ...with an established 0-10 session
Message message = session.createMessage();
message.setStringProperty("foo", Strings.repeat("x", 1 << 16));
MessageProducer producer = session.createProducer(destination);
producer.send(message);
{noformat}

Results in:
{noformat}
java.lang.AssertionError
        at 
org.apache.qpid.transport.codec.BBEncoder.writeUint16(BBEncoder.java:149)
        at 
org.apache.qpid.transport.codec.AbstractEncoder.writeStr16(AbstractEncoder.java:185)
        at 
org.apache.qpid.transport.codec.AbstractEncoder.write(AbstractEncoder.java:579)
        at 
org.apache.qpid.transport.codec.AbstractEncoder.writeMapEntries(AbstractEncoder.java:365)
        at 
org.apache.qpid.transport.codec.AbstractEncoder.writeMap(AbstractEncoder.java:351)
        at 
org.apache.qpid.transport.MessageProperties.write(MessageProperties.java:390)
        at 
org.apache.qpid.transport.codec.AbstractEncoder.writeStruct32(AbstractEncoder.java:288)
        at 
org.apache.qpid.transport.network.Disassembler.method(Disassembler.java:224)
        at 
org.apache.qpid.transport.network.Disassembler.command(Disassembler.java:182)
        at 
org.apache.qpid.transport.network.Disassembler.command(Disassembler.java:56)
        at org.apache.qpid.transport.Method.delegate(Method.java:155)
        at 
org.apache.qpid.transport.network.Disassembler.send(Disassembler.java:82)
        at org.apache.qpid.transport.Connection.send(Connection.java:415)
        at org.apache.qpid.transport.Session.send(Session.java:588)
        at org.apache.qpid.transport.Session.invoke(Session.java:758)
        at org.apache.qpid.transport.Session.invoke(Session.java:613)
        at 
org.apache.qpid.transport.SessionInvoker.messageTransfer(SessionInvoker.java:93)
        at 
org.apache.qpid.client.BasicMessageProducer_0_10.sendMessage(BasicMessageProducer_0_10.java:355)
        at 
org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:525)
        at 
org.apache.qpid.client.BasicMessageProducer.send(BasicMessageProducer.java:326)
        at 
org.apache.qpid.test.unit.basic.PropertyValueTest.testFoo(PropertyValueTest.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at 
org.apache.qpid.test.utils.QpidTestCase.runTest(QpidTestCase.java:171)
        at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:332)
        at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:156)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
{noformat}

This should be caught and either handled or reported in a proper way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to