azure-service-bus-java
azure-service-bus-java copied to clipboard
UnHandled exception while processing events in reactor while sending or receiving messages using Azure service bus java SDK
Actual Behavior
- I am using azure-servicebus with version1.0.0. while trying to send messages to Azure queues using MessageSender class getting below error
[ERROR] 2017-10-03 08:41:38.509 [ReactorThreada232fb4f-2818-4bb9-979e-c491a02cf88a] MessagingFactory:279 - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: cb4a0a72-38de-4374-81f8-90a2fd3edc04, at: 2017-10-03T08:41:38.509Z[GMT] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) [azure-servicebus-1.0.0.jar!/:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102] Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:244) ~[?:1.8.0_102] at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:309) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:277) ~[proton-j-0.14.0.jar!/:?] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ~[azure-servicebus-1.0.0.jar!/:?] ... 1 more
- Please let me know what is the reason for getting this error or any fix is available to resolve the error.
Expected Behavior
Versions
- OS platform and version: Windows, Java
- Maven package version or commit ID: azure-servicebus, 1.0.0
What is the connection string you are using to create that MessageSender?
Please find used connection string :
final ConnectionStringBuilder connectionBuilder = new ConnectionStringBuilder( "Endpoint=amqps://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=MCGRUNLsAXhUBCjE04mBF7Vq41pA4OwvkowcVI+QoAA=", "queueName"); final IMessageSender messageSender = ClientFactory .createMessageSenderFromConnectionStringBuilder(connectionBuilder);
and for sending messages i had used below code:
messageSender.sendAsync(new Message(message)).thenRunAsync( () -> logger.debug("Message has been sent to Queue: " + queueName + " successfully "));
Is your namespace really "namespace.servicebus.windows.net" or you replaced the actual namespace name with 'namespace' before pasting it here? I have never seen this error before. We have just released version 1.1.0. Please update your pom to use the latest version. Could you run your sample again with debug level logging enabled and send me the logs?
I am closing this issue as I haven't received any response. Please reopen the issue if the issue is still not resolved.
Hi,
We are facing this issue even after upgrading the SDK version to 1.1.0. I don't see much in the log files except the below exception. But after sometime, the application seems to be working fine by establishing the connection to service bus.
com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: b5a84435-4fd8-4059-9769-1093452a0f90, at: 2017-10-27T14:18:29.959Z[GMT]
Please provide your thoughts on this.
Could you send me a copy of your code (remove your secrets)? Could you attach the log files to this thread?
I am having the same issue with this. Was there any resolution to this error ? Just trying to connect to a topic. Actually download sample code, and plugged in my azure service bus settings.
@mcnealjwefx I think they got it working. We had communication going on for some time, after that they stopped when I asked for logs generated by the sdk. I hope the issue was resolved for them. I have never seen the problem they reported. Many others just took the samples and got them working the first time. I couldn't resolve it as I couldn't reproduce it. I need log files to diagnose and the resolve the issue. The SDK by default generates logs. Could you capture the logs and send them to me along with the exception you are running into?
10:39:39.002 [main] INFO com.microsoft.azure.servicebus.MessageSender - Creating MessagingFactory from connection string 'Endpoint=amqps://myservicebus.servicebus.windows.net;EntityPath=mytopic;' 10:39:40.111 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating messaging factory from connection string 'Endpoint=amqps://myservicebus.servicebus.windows.net;EntityPath=mytopic;' 10:39:40.239 [main] DEBUG com.microsoft.azure.servicebus.primitives.Timer - Starting ScheduledThreadPoolExecutor with coreThreadPoolSize:8 10:39:40.681 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating and starting reactor 10:39:41.535 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - starting reactor instance. 10:39:41.535 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Started reactor 10:39:41.551 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ReactorHandler - reactor.onReactorInit 10:39:41.551 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating connection to host 'myservicebus.servicebus.windows.net:5671' 10:39:41.558 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ConnectionHandler - onConnectionInit: hostname:myservicebus.servicebus.windows.net:5671 10:39:41.667 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ConnectionHandler - onConnectionBound: hostname:myservicebus.servicebus.windows.net:5671 10:40:02.996 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] ERROR com.microsoft.azure.servicebus.primitives.MessagingFactory - UnHandled exception while processing events in reactor: org.apache.qpid.proton.engine.HandlerException: java.lang.IllegalArgumentException at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: null at java.nio.Buffer.position(Buffer.java:244) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ... 4 common frames omitted 10:40:03.042 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] ERROR com.microsoft.azure.servicebus.primitives.MessagingFactory - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: fead3e9e-da7a-40d6-8b4c-e7863c563ed8, at: 2018-01-08T10:40:03.030-05:00[America/New_York] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: null at java.nio.Buffer.position(Buffer.java:244) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 common frames omitted
This is the code being used:
ConnectionStringBuilder connectionStringBuilder = new ConnectionStringBuilder(
"myservicebus",
"mytopic", // QueueName or TopicName or SubscriptionPath
"RootManageSharedAccessKey",
"mysecretekey");
//
sendClient = new TopicClient(connectionStringBuilder);
dependencies { compile('com.microsoft.azure:azure-spring-boot') compile('com.microsoft.azure:azure-servicebus-spring-boot-starter') compile('com.google.code.gson:gson:2.8.2') compile('commons-cli:commons-cli:1.4') testCompile('org.springframework.boot:spring-boot-starter-test') }
Looks like a problem in one of the dependencies, , while establishing SSL connection. What is the version of azure service bus SDK you are using? What is the os on the client machine? Can you run a sample as a standalone java program? By standalone, I mean not using spring framework or any other extra dependencies.
Hi Gopal I am using the below code to send and receive messages from a Queue but am still getting the above error.
`import java.time.Duration; import java.util.concurrent.CompletableFuture;
import com.microsoft.azure.servicebus.*; import com.microsoft.azure.servicebus.primitives.ConnectionStringBuilder;
public class BasicSendReceiveWithQueueClient { // Connection String for the namespace can be obtained from the Azure portal under the // 'Shared Access policies' section. private static final String connectionString = "Endpoint=sb://..."; private static final String queueName = "..."; private static QueueClient queueClient; private static int totalSend = 1; private static int totalReceived = 0;`
public static void main(String[] args) throws Exception {
// Log.log("Starting BasicSendReceiveWithQueueClient sample");
// create client
// Log.log("Create queue client.");
queueClient = new QueueClient(new ConnectionStringBuilder(connectionString, queueName), ReceiveMode.PEEKLOCK);
// send and receive
queueClient.registerMessageHandler(new MessageHandler(queueClient), new MessageHandlerOptions(1, false, Duration.ofMinutes(1)));
for (int i = 0; i < totalSend; i++) {
int j = i;
// Log.log("Sending message #%d.", j);
queueClient.sendAsync(new Message("Some Text to the Queue" + i)).thenRunAsync(() -> { System.out.println("Sent message #%d."+ j);});
}
while(totalReceived != totalSend) {
Thread.sleep(1000);
}
System.out.println("Received all messages, exiting the sample.");
System.out.println("Closing queue client.");
queueClient.close();
}
static class MessageHandler implements IMessageHandler {
private IQueueClient client;
public MessageHandler(IQueueClient client) {
this.client = client;
}
@Override
public CompletableFuture<Void> onMessageAsync(IMessage iMessage) {
System.out.println("Received message with sq#: %d and lock token: %s." + iMessage.getSequenceNumber()+ " " + iMessage.getLockToken());
return this.client.completeAsync(iMessage.getLockToken()).thenRunAsync(() -> {
System.out.println("Completed message sq#: %d and locktoken: %s" + iMessage.getSequenceNumber() + " " + iMessage.getLockToken());
totalReceived++;
});
}
@Override
public void notifyException(Throwable throwable, ExceptionPhase exceptionPhase) {
System.out.println(exceptionPhase + "-" + throwable.getMessage());
}
}
}`
Exception: Creating connection to host '....servicebus.windows.net:5671' Jun 05, 2018 8:16:10 AM org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory getClass WARNING: unable to load org.bouncycastle.openssl.PEMReader 2018-06-05 08:16:12 - ERROR MessagingFactory:461 - UnHandled exception while processing events in reactor: org.apache.qpid.proton.engine.HandlerException: java.lang.IllegalArgumentException at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ... 4 more 2018-06-05 08:16:12 - ERROR MessagingFactory:280 - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: e5a8f5ba-18b8-4483-8d68-4a1e1a8d9e42, at: 2018-06-05T08:16:12.719+05:30[Asia/Calcutta] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 more Exception in thread "main" com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: e5a8f5ba-18b8-4483-8d68-4a1e1a8d9e42, at: 2018-06-05T08:16:12.719+05:30[Asia/Calcutta] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 more
https://github.com/Microsoft/azure-spring-boot/issues/243
https://issues.apache.org/jira/browse/PROTON-1275
It has the same issue and solution is in second link.Please refer to these links
#please-close