@Override public ObjectMessage createObjectMessage(final Serializable object) throws JMSException { checkClosed(); ActiveMQObjectMessage msg = new ActiveMQObjectMessage(session, options); msg.setObject(object); msg.setEnable1xPrefixes(enable1xPrefixes); return msg; }
@Override public boolean isBodyAssignableTo(Class c) { if (data == null) // we have no body return true; try { return Serializable.class == c || Object.class == c || c.isInstance(getObject()); } catch (JMSException e) { return false; } }
@Override public void setObject(final Serializable object) throws JMSException { checkWrite(); if (object != null) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(object); oos.flush(); data = baos.toByteArray(); } catch (Exception e) { JMSException je = new JMSException("Failed to serialize object"); je.setLinkedException(e); je.initCause(e); throw je; } } }
@Override public ObjectMessage createObjectMessage() throws JMSException { checkClosed(); ActiveMQObjectMessage message = new ActiveMQObjectMessage(session, options); message.setEnable1xPrefixes(enable1xPrefixes); return message; }
@Override public Serializable getObject() throws JMSException { if (data == null || data.length == 0) { return null; } try (ObjectInputStreamWithClassLoader ois = new ObjectInputStreamWithClassLoader(new ByteArrayInputStream(data))) { String blackList = getDeserializationBlackList(); if (blackList != null) { ois.setBlackList(blackList); } String whiteList = getDeserializationWhiteList(); if (whiteList != null) { ois.setWhiteList(whiteList); } Serializable object = (Serializable) ois.readObject(); return object; } catch (Exception e) { JMSException je = new JMSException(e.getMessage()); je.setStackTrace(e.getStackTrace()); throw je; } }
msg = new ActiveMQObjectMessage(message, session, options); break;
@Override public ObjectMessage createObjectMessage(final Serializable object) throws JMSException { checkClosed(); ActiveMQObjectMessage msg; if (enable1xPrefixes) { msg = new ActiveMQObjectCompatibleMessage(session, options); } else { msg = new ActiveMQObjectMessage(session, options); } msg.setObject(object); return msg; }
/** * A copy constructor for foreign JMS ObjectMessages. */ public ActiveMQObjectMessage(final ObjectMessage foreign, final ClientSession session, ConnectionFactoryOptions options) throws JMSException { super(foreign, ActiveMQObjectMessage.TYPE, session); setObject(foreign.getObject()); this.options = options; }
activeMQJmsMessage = new ActiveMQMapMessage((MapMessage) jmsMessage, clientSession); } else if (jmsMessage instanceof ObjectMessage) { activeMQJmsMessage = new ActiveMQObjectMessage((ObjectMessage) jmsMessage, clientSession, options); } else if (jmsMessage instanceof StreamMessage) { activeMQJmsMessage = new ActiveMQStreamMessage((StreamMessage) jmsMessage, clientSession);
@Override public Serializable getObject() throws JMSException { if (data == null || data.length == 0) { return null; } try (ObjectInputStreamWithClassLoader ois = new ObjectInputStreamWithClassLoader(new ByteArrayInputStream(data))) { String blackList = getDeserializationBlackList(); if (blackList != null) { ois.setBlackList(blackList); } String whiteList = getDeserializationWhiteList(); if (whiteList != null) { ois.setWhiteList(whiteList); } Serializable object = (Serializable) ois.readObject(); return object; } catch (Exception e) { JMSException je = new JMSException(e.getMessage()); je.setStackTrace(e.getStackTrace()); throw je; } }
@Override public ObjectMessage createObjectMessage() throws JMSException { checkClosed(); ActiveMQObjectMessage message = new ActiveMQObjectMessage(session, options); message.setEnable1xPrefixes(enable1xPrefixes); return message; }
@Override public ObjectMessage createObjectMessage(final Serializable object) throws JMSException { checkClosed(); ActiveMQObjectMessage msg; if (enable1xPrefixes) { msg = new ActiveMQObjectCompatibleMessage(session, options); } else { msg = new ActiveMQObjectMessage(session, options); } msg.setObject(object); return msg; }
/** * A copy constructor for foreign JMS ObjectMessages. */ public ActiveMQObjectMessage(final ObjectMessage foreign, final ClientSession session, ConnectionFactoryOptions options) throws JMSException { super(foreign, ActiveMQObjectMessage.TYPE, session); setObject(foreign.getObject()); this.options = options; }
@Override public ObjectMessage createObjectMessage(final Serializable object) throws JMSException { checkClosed(); ActiveMQObjectMessage msg = new ActiveMQObjectMessage(session, options); msg.setObject(object); msg.setEnable1xPrefixes(enable1xPrefixes); return msg; }
@Override public ObjectMessage createObjectMessage() throws JMSException { checkClosed(); ActiveMQObjectMessage message; if (enable1xPrefixes) { message = new ActiveMQObjectCompatibleMessage(session, options); } else { message = new ActiveMQObjectMessage(session, options); } return message; }
@Override public Serializable getObject() throws JMSException { if (data == null || data.length == 0) { return null; } try (ObjectInputStreamWithClassLoader ois = new ObjectInputStreamWithClassLoader(new ByteArrayInputStream(data))) { String blackList = getDeserializationBlackList(); if (blackList != null) { ois.setBlackList(blackList); } String whiteList = getDeserializationWhiteList(); if (whiteList != null) { ois.setWhiteList(whiteList); } Serializable object = (Serializable) ois.readObject(); return object; } catch (Exception e) { JMSException je = new JMSException(e.getMessage()); je.setStackTrace(e.getStackTrace()); throw je; } }
@Override protected <T> T getBodyInternal(Class<T> c) throws MessageFormatException { try { return (T) getObject(); } catch (JMSException e) { throw new MessageFormatException("Deserialization error on ActiveMQObjectMessage"); } }
@Override public ObjectMessage createObjectMessage() throws JMSException { checkClosed(); ActiveMQObjectMessage message = new ActiveMQObjectMessage(session, options); message.setEnable1xPrefixes(enable1xPrefixes); return message; }
/** * A copy constructor for foreign JMS ObjectMessages. */ public ActiveMQObjectMessage(final ObjectMessage foreign, final ClientSession session, ConnectionFactoryOptions options) throws JMSException { super(foreign, ActiveMQObjectMessage.TYPE, session); setObject(foreign.getObject()); this.options = options; }
@Override public void setObject(final Serializable object) throws JMSException { checkWrite(); if (object != null) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(object); oos.flush(); data = baos.toByteArray(); } catch (Exception e) { JMSException je = new JMSException("Failed to serialize object"); je.setLinkedException(e); je.initCause(e); throw je; } } }