[ 
https://issues.apache.org/jira/browse/ARTEMIS-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Justin Bertram updated ARTEMIS-3437:
------------------------------------
    Description: 
I’ve a client which sends STOMP messages to a Artemis broker (2.18.0).

The server is currently consuming the messages using STOMP as well.

I’m not happy with my STOMP library and there are no good alternatives.

Therefore, I would like to switch to AMQP for the server. 

…as far as I understand the client and server can use a different 
protocol…right? 

Consuming messages with the new AMQP code works…but after a few messages the 
broker stops sending new messages to my client. The current implementation 
consumes one message at a time and sends a accept after each message… 

In the Artemis Log I can find entry like this when the broker stops sending 
messages to my AMQP client:
 
{noformat}
2021-08-20 19:40:54,946 DEBUG 
[org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper]
 null: java.lang.NumberFormatException: null
    at java.base/java.lang.Integer.parseInt(Integer.java:614) [java.base:]
    at java.base/java.lang.Short.parseShort(Short.java:130) [java.base:]
    at java.base/java.lang.Short.valueOf(Short.java:186) [java.base:]
    at java.base/java.lang.Short.valueOf(Short.java:212) [java.base:]
    at 
org.apache.activemq.artemis.utils.collections.TypedProperties.getShortProperty(TypedProperties.java:257)
 [artemis-commons-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1044)
 [artemis-core-client-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1049)
 [artemis-core-client-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper.getOrignalEncoding(CoreMessageWrapper.java:78)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.createAMQPSection(CoreBytesMessageWrapper.java:77)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:108)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:83)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:537)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]
    at 
org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl.run(MessageReferenceImpl.java:136)
 [artemis-server-2.18.0.jar:2.18.0]
    at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]
    at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) 
[netty-all-4.1.66.Final.jar:4.1.66.Final]
    at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]
    at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[netty-all-4.1.66.Final.jar:4.1.66.Final]
    at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
 [artemis-commons-2.18.0.jar:2.18.0]{noformat}
 

  was:
I’ve a client which sends STOMP messages to a Artemis broker (2.18.0).

The server is currently consuming the messages using STOMP as well.

I’m not happy with my STOMP library and there are no good alternatives.

Therefore, I would like to switch to AMQP for the server.

 

…as far as I understand the client and server can use a different 
protocol…right?

 

Consuming messages with the new AMQP code works…but after a few messages the 
broker stops sending new messages to my client. The current implementation 
consumes one message at a time and sends a accept after each message…

 

In the Artemis Log I can find entry like this when the broker stops sending 
messages to my AMQP client:

 

 
{code:java}
2021-08-20 19:40:54,946 DEBUG 
[org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper]
 null: java.lang.NumberFormatException: null    at 
java.base/java.lang.Integer.parseInt(Integer.java:614) [java.base:]    at 
java.base/java.lang.Short.parseShort(Short.java:130) [java.base:]    at 
java.base/java.lang.Short.valueOf(Short.java:186) [java.base:]    at 
java.base/java.lang.Short.valueOf(Short.java:212) [java.base:]    at 
org.apache.activemq.artemis.utils.collections.TypedProperties.getShortProperty(TypedProperties.java:257)
 [artemis-commons-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1044)
 [artemis-core-client-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1049)
 [artemis-core-client-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper.getOrignalEncoding(CoreMessageWrapper.java:78)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.createAMQPSection(CoreBytesMessageWrapper.java:77)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:108)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:83)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:537)
 [artemis-amqp-protocol-2.18.0.jar:2.18.0]    at 
org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl.run(MessageReferenceImpl.java:136)
 [artemis-server-2.18.0.jar:2.18.0]    at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]    at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]    at 
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) 
[netty-all-4.1.66.Final.jar:4.1.66.Final]    at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
 [netty-all-4.1.66.Final.jar:4.1.66.Final]    at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[netty-all-4.1.66.Final.jar:4.1.66.Final]    at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
 [artemis-commons-2.18.0.jar:2.18.0]{code}
 


> java.lang.NumberFormatException STOMP/AMQP interop
> --------------------------------------------------
>
>                 Key: ARTEMIS-3437
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3437
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.18.0
>         Environment: win10 21h1 x64
> jdk-15.0.1
> Artemis 2.18.0
>            Reporter: daves
>            Priority: Major
>
> I’ve a client which sends STOMP messages to a Artemis broker (2.18.0).
> The server is currently consuming the messages using STOMP as well.
> I’m not happy with my STOMP library and there are no good alternatives.
> Therefore, I would like to switch to AMQP for the server. 
> …as far as I understand the client and server can use a different 
> protocol…right? 
> Consuming messages with the new AMQP code works…but after a few messages the 
> broker stops sending new messages to my client. The current implementation 
> consumes one message at a time and sends a accept after each message… 
> In the Artemis Log I can find entry like this when the broker stops sending 
> messages to my AMQP client:
>  
> {noformat}
> 2021-08-20 19:40:54,946 DEBUG 
> [org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper]
>  null: java.lang.NumberFormatException: null
>     at java.base/java.lang.Integer.parseInt(Integer.java:614) [java.base:]
>     at java.base/java.lang.Short.parseShort(Short.java:130) [java.base:]
>     at java.base/java.lang.Short.valueOf(Short.java:186) [java.base:]
>     at java.base/java.lang.Short.valueOf(Short.java:212) [java.base:]
>     at 
> org.apache.activemq.artemis.utils.collections.TypedProperties.getShortProperty(TypedProperties.java:257)
>  [artemis-commons-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1044)
>  [artemis-core-client-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.core.message.impl.CoreMessage.getShortProperty(CoreMessage.java:1049)
>  [artemis-core-client-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMessageWrapper.getOrignalEncoding(CoreMessageWrapper.java:78)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.createAMQPSection(CoreBytesMessageWrapper.java:77)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:108)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:83)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:537)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>     at 
> org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl.run(MessageReferenceImpl.java:136)
>  [artemis-server-2.18.0.jar:2.18.0]
>     at 
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
>  [netty-all-4.1.66.Final.jar:4.1.66.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
>  [netty-all-4.1.66.Final.jar:4.1.66.Final]
>     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) 
> [netty-all-4.1.66.Final.jar:4.1.66.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
>  [netty-all-4.1.66.Final.jar:4.1.66.Final]
>     at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> [netty-all-4.1.66.Final.jar:4.1.66.Final]
>     at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  [artemis-commons-2.18.0.jar:2.18.0]{noformat}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to