You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by ishaan_tantra <is...@tantrasoftsolutions.com> on 2019/07/30 04:37:55 UTC

amqp:internal-error: Unrecoverable error: NullPointerException on connection open event

Platform - Windows 10 - x64

Library qpid-proton:0.28.0

Visual C++ 2017 (15.9.14)

I am attempting to connect to ActiveMQ Artemis using AMQP 1.0 protocol using
Apache Qpid-Proton library; I'm using its C++ binding.

After I connect to Artemis my client gets disconnected throwing the
exception 

> amqp:internal-error: Unrecoverable error: NullPointerException

on running the `on_connection_open` method.

In the Artemis console I had observed that after successfully executing
`on_container_start` method; in the `Connection` tab a new connection entry
is inserted with all proper values. Executing `on_connection_open` method
return exception.
    
    //is a static method
    bool MessageQueue::initalize_message_queue(void)
    {
    	try {
    		  proton::container(mq).run();
    		  return true;
    	}
    	catch (const std::exception& ex) {
    #ifdef _DEBUG
    		spdlog::error("Exception in MessageQueue::initalize_message_queue.
Exception : {}", ex.what());
    #endif // _DEBUG
    		LOG_ERROR << ex.what();
    		return false;
    	}
    }
    
    void MessageQueue::on_container_start(proton::container& container)
    {
    	try {
    		proton::connection_options	connection_option;
    		if (not this->user_name.empty())
    			connection_option.user(this->user_name);
    		if (not this->password.empty())
    			connection_option.password(this->password);
    		connection_option.sasl_enabled(false);
    		container.connect(this->broker_uri, connection_option);
    	}
    	catch (const std::exception& ex) {
    	#ifdef _DEBUG
    		spdlog::error("Exception in MessageQueue::on_container_start.
Exception : {}", ex.what());
    	#endif // _DEBUG
    		LOG_ERROR << ex.what();
    	}
    }
    
    void MessageQueue::on_connection_open(proton::connection& conn)
    {
    	try {
    		conn.open_receiver(this->endpoint);
    		conn.open_sender(this->endpoint);
    	}
    	catch (const std::exception& ex) {
    #ifdef _DEBUG
    		spdlog::error("Exception in MessageQueue::on_connection_open.
Exception : {}", ex.what());
    #endif // _DEBUG
    		LOG_ERROR << ex.what();
    	}
    }    
    
    //  **I am receiving error here**
    void MessageQueue::on_connection_error(proton::connection &connection)
    {
    #ifdef _DEBUG
    	spdlog::error("Caught Error in MessageQueue::on_connection_error. Error
: {}", connection.error().what());
    #endif // _DEBUG
    	LOG_ERROR << connection.error().what();
    }
 

Error Output :

    Caught Error in MessageQueue::on_connection_error. Error :
amqp:internal-error: Unrecoverable error: NullPointerException

As per my knowledge NullPointerException belong to languages operating on
JVM or any such runtime engine. It is not something native to C++.



--
Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: amqp:internal-error: Unrecoverable error: NullPointerException on connection open event

Posted by Robbie Gemmell <ro...@gmail.com>.
The NPE will be occuring on the broker and causing it to close the
connection with the error details noted, which your C++ program then
prints.

You look to be disabling SASL on the client. Is your broker actually
set up to allow unauthenticated access? I think its possible this
recent Artemis JIRA could be related:
https://issues.apache.org/jira/browse/ARTEMIS-2431.

Enabling the protocol trace output (set environment variable
PN_TRACE_FRM=1) would make the protocol interaction occuring clear.

Robbie

On Tue, 30 Jul 2019 at 05:38, ishaan_tantra
<is...@tantrasoftsolutions.com> wrote:
>
> Platform - Windows 10 - x64
>
> Library qpid-proton:0.28.0
>
> Visual C++ 2017 (15.9.14)
>
> I am attempting to connect to ActiveMQ Artemis using AMQP 1.0 protocol using
> Apache Qpid-Proton library; I'm using its C++ binding.
>
> After I connect to Artemis my client gets disconnected throwing the
> exception
>
> > amqp:internal-error: Unrecoverable error: NullPointerException
>
> on running the `on_connection_open` method.
>
> In the Artemis console I had observed that after successfully executing
> `on_container_start` method; in the `Connection` tab a new connection entry
> is inserted with all proper values. Executing `on_connection_open` method
> return exception.
>
>     //is a static method
>     bool MessageQueue::initalize_message_queue(void)
>     {
>         try {
>                   proton::container(mq).run();
>                   return true;
>         }
>         catch (const std::exception& ex) {
>     #ifdef _DEBUG
>                 spdlog::error("Exception in MessageQueue::initalize_message_queue.
> Exception : {}", ex.what());
>     #endif // _DEBUG
>                 LOG_ERROR << ex.what();
>                 return false;
>         }
>     }
>
>     void MessageQueue::on_container_start(proton::container& container)
>     {
>         try {
>                 proton::connection_options      connection_option;
>                 if (not this->user_name.empty())
>                         connection_option.user(this->user_name);
>                 if (not this->password.empty())
>                         connection_option.password(this->password);
>                 connection_option.sasl_enabled(false);
>                 container.connect(this->broker_uri, connection_option);
>         }
>         catch (const std::exception& ex) {
>         #ifdef _DEBUG
>                 spdlog::error("Exception in MessageQueue::on_container_start.
> Exception : {}", ex.what());
>         #endif // _DEBUG
>                 LOG_ERROR << ex.what();
>         }
>     }
>
>     void MessageQueue::on_connection_open(proton::connection& conn)
>     {
>         try {
>                 conn.open_receiver(this->endpoint);
>                 conn.open_sender(this->endpoint);
>         }
>         catch (const std::exception& ex) {
>     #ifdef _DEBUG
>                 spdlog::error("Exception in MessageQueue::on_connection_open.
> Exception : {}", ex.what());
>     #endif // _DEBUG
>                 LOG_ERROR << ex.what();
>         }
>     }
>
>     //  **I am receiving error here**
>     void MessageQueue::on_connection_error(proton::connection &connection)
>     {
>     #ifdef _DEBUG
>         spdlog::error("Caught Error in MessageQueue::on_connection_error. Error
> : {}", connection.error().what());
>     #endif // _DEBUG
>         LOG_ERROR << connection.error().what();
>     }
>
>
> Error Output :
>
>     Caught Error in MessageQueue::on_connection_error. Error :
> amqp:internal-error: Unrecoverable error: NullPointerException
>
> As per my knowledge NullPointerException belong to languages operating on
> JVM or any such runtime engine. It is not something native to C++.
>
>
>
> --
> Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org