When using a camel-sjms endpoint with an Apache Artemis broker, the sjms endpoint will throw a NullPointerException in the org.apache.camel.component.sjms.consumer.AbstractMessageHandler.onMessage method. However, this exception is actually masking the real exception within sjms. In SjmsMessage.java the method getDestinationAsString gets called with a javax.jms.Destination object. In this case, it is a org.apache.activemq.artemis.jms.client.ActiveMQDestination. The ActiveMQDestination is neither a javax.jms.Topic nor a javax.jms.Queue. In the getDestinationAsString method in SjmsMessage.java, it first checks to see if the destination is a Topic and then if it is not it blindly casts to a javax.jms.Queue and in this case causes a ClassCastException.