Description
The subj method has restrictions on the types of objects it can accept, but those restrictions aren't implemented. Testcase below.
// get a live session ConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false&broker.useJmx=false"); Session session = cf.createConnection().createSession(false, Session.AUTO_ACKNOWLEDGE); StreamMessage sm = session.createStreamMessage(); // only primitives (with wrappers), String and byte[] are allowed: // http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/StreamMessage.html#writeObject(java.lang.Object) try { sm.writeObject(new Object()); fail("Should've failed with MessageFormatException"); } catch (MessageFormatException e) { // JMS 1.1 spec, Section 7.3 Standard Exceptions, page 89, 1st paragraph // expected }