private void handleRouting(final JmsSession jmsSession, Object message) throws JMSException, ActionProcessingException {
SESSION.set(jmsSession) ;
try {
if(!(message instanceof org.jboss.soa.esb.message.Message)) {
throw new ActionProcessingException("Cannot send Object [" + message.getClass().getName() + "] to destination [" + destinationName + "]. Object must be an instance of org.jboss.soa.esb.message.Message) .");
}
final org.jboss.soa.esb.message.Message esbMessage = (org.jboss.soa.esb.message.Message)message;
try {
Message jmsMessage = null;
if ( unwrap ) {
Object objectFromBody = getPayloadProxy().getPayload(esbMessage);
jmsMessage = createJMSMessageWithObjectType( objectFromBody );
}
else {
jmsMessage = createObjectMessage(Util.serialize(esbMessage));
}
setStringProperties(jmsMessage);
setJMSProperties( esbMessage, jmsMessage );
setJMSReplyTo( jmsMessage, esbMessage );
send( jmsMessage );
} catch (JMSException jmse) {
throw jmse ;
} catch(Exception e) {
final String errorMessage = "Exception while sending message [" + message + "] to destination [" + destinationName + "]." ;
logger.error(errorMessage);
throw new ActionProcessingException(errorMessage, e);
}
} finally {
SESSION.set(null) ;
}
}