[
https://issues.apache.org/jira/browse/ARTEMIS-2268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robbie Gemmell closed ARTEMIS-2268.
-----------------------------------
Resolution: Not A Problem
> Encountered exception
> [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext]
> Expected Symbol type but found encoding: -95:
> org.apache.qpid.proton.ProtonException: Expected Symbol type but found
> encoding: -95
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-2268
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2268
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Reporter: Leo Provido
> Priority: Major
>
> We were trying out some existing tests with the latest build of Artemis
> (2.7.0-SNAPSHOT - as of 27-Feb-2019) and we encountered an exception thrown.
> When this occurs, our consumer is replying to a received message (i.e.
> sending a message to another queue on the same broker). The exception
> message that is shown in the Artemis log is also reported back via the AMQP
> client library.
> Below shows the exception and stack trace found in artemis-service.out.log.
> 2019-03-05 16:17:44,954 WARN
> [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext]
> Expected Symbol type but found encoding: -95:
> org.apache.qpid.proton.ProtonException: Expected Symbol type but found
> encoding: -95
> at
> org.apache.qpid.proton.codec.DecoderImpl.readSymbol(DecoderImpl.java:771)
> [proton-j-0.31.0.jar:]
> at
> org.apache.qpid.proton.codec.messaging.FastPathMessageAnnotationsType.readValue(FastPathMessageAnnotationsType.java:126)
> [proton-j-0.31.0.jar:]
> at
> org.apache.qpid.proton.codec.messaging.FastPathMessageAnnotationsType.readValue(FastPathMessageAnnotationsType.java:43)
> [proton-j-0.31.0.jar:]
> at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.scanMessageData(AMQPMessage.java:480)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.ensureMessageDataScanned(AMQPMessage.java:437)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.<init>(AMQPMessage.java:177)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:433)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.actualDelivery(ProtonServerReceiverContext.java:304)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:299)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:541)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:484)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:284)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:241)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:170)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:149)
> [artemis-amqp-protocol-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:643)
> [artemis-server-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
> [artemis-core-client-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
> [netty-all-4.1.28.Final.jar:4.1.28.Final]
> at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
> [artemis-commons-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
> The Exception that gets thrown is in the code below, which can be found in
> https://github.com/apache/qpid-proton-j/blob/master/proton-j/src/main/java/org/apache/qpid/proton/codec/DecoderImpl.java#L757
> public Symbol readSymbol(final Symbol defaultValue)
> {
> byte encodingCode = _buffer.get();
>
> switch (encodingCode)
> {
> case EncodingCodes.SYM8:
> return (Symbol) _constructors[EncodingCodes.SYM8 &
> 0xff].readValue();
> case EncodingCodes.SYM32:
> return (Symbol) _constructors[EncodingCodes.SYM32 &
> 0xff].readValue();
> case EncodingCodes.NULL:
> return defaultValue;
> default:
> throw new ProtonException("Expected Symbol type but
> found encoding: " + encodingCode);
> }
> }
> From the exception message (org.apache.qpid.proton.ProtonException: Expected
> Symbol type but found encoding: -95), encoding code has symbol -95 which does
> not match any of the switch cases SYM8, SYM32 and NULL.
> Note that this issue does not occur in Artemis 2.6.3 and 2.6.4 but does occur
> in the latest Artemis build (2.7.0-SNAPSHOT - as of 27-Feb-2019).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)