final Destination dest = session.createQueue( destinationName );
// I don't expect this code to be reached when the destination is invalid
Method session.createQueue just creates a javax.jms.Queue object (the address of a queue), not the queue itself nor does it interact with the router to verify whether the queue exists.
Just verified that. It is a bug on our side that a JMSException instead of a InvalidDestinationException is thrown if you call createProducer with an invalid destinatopm. Will be fixed in the next release.