INT-1229 JMSExceptions thrown when trying to read unsupported JMS properties no longer cause the rest of the properties (e.g. user-defined String, Long, Object, etc. properties) to be skipped when mapping to MessageHeaders.

This commit is contained in:
Mark Fisher
2010-07-19 17:55:51 +00:00
parent 8acb89cedd
commit 6efdf9e372
2 changed files with 122 additions and 17 deletions

View File

@@ -264,7 +264,7 @@ public class DefaultJmsHeaderMapperTests {
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public void setJMSReplyTo(Destination replyTo) throws JMSException {
throw new IllegalArgumentException("illegal property");
throw new JMSException("illegal property");
}
};
mapper.fromHeaders(message.getHeaders(), jmsMessage);
@@ -283,7 +283,7 @@ public class DefaultJmsHeaderMapperTests {
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public void setJMSType(String type) throws JMSException {
throw new IllegalArgumentException("illegal property");
throw new JMSException("illegal property");
}
};
mapper.fromHeaders(message.getHeaders(), jmsMessage);
@@ -302,7 +302,7 @@ public class DefaultJmsHeaderMapperTests {
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public void setJMSCorrelationID(String correlationId) throws JMSException {
throw new IllegalArgumentException("illegal property");
throw new JMSException("illegal property");
}
};
mapper.fromHeaders(message.getHeaders(), jmsMessage);
@@ -321,7 +321,7 @@ public class DefaultJmsHeaderMapperTests {
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public void setJMSCorrelationID(String correlationId) throws JMSException {
throw new IllegalArgumentException("illegal property");
throw new JMSException("illegal property");
}
};
mapper.fromHeaders(message.getHeaders(), jmsMessage);
@@ -330,4 +330,84 @@ public class DefaultJmsHeaderMapperTests {
assertEquals("bar", jmsMessage.getStringProperty("foo"));
}
@Test
public void attemptToReadDisallowedMessageIdPropertyIsNotFatal() throws JMSException {
DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper();
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public String getJMSMessageID() throws JMSException {
throw new JMSException("illegal property");
}
};
jmsMessage.setStringProperty("foo", "bar");
Map<String, Object> headers = mapper.toHeaders(jmsMessage);
assertNull(headers.get(JmsHeaders.MESSAGE_ID));
assertNotNull(headers.get("foo"));
assertEquals("bar", headers.get("foo"));
}
@Test
public void attemptToReadDisallowedCorrelationIdPropertyIsNotFatal() throws JMSException {
DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper();
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public String getJMSCorrelationID() throws JMSException {
throw new JMSException("illegal property");
}
};
jmsMessage.setStringProperty("foo", "bar");
Map<String, Object> headers = mapper.toHeaders(jmsMessage);
assertNull(headers.get(JmsHeaders.CORRELATION_ID));
assertNotNull(headers.get("foo"));
assertEquals("bar", headers.get("foo"));
}
@Test
public void attemptToReadDisallowedTypePropertyIsNotFatal() throws JMSException {
DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper();
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public String getJMSType() throws JMSException {
throw new JMSException("illegal property");
}
};
jmsMessage.setStringProperty("foo", "bar");
Map<String, Object> headers = mapper.toHeaders(jmsMessage);
assertNull(headers.get(JmsHeaders.TYPE));
assertNotNull(headers.get("foo"));
assertEquals("bar", headers.get("foo"));
}
@Test
public void attemptToReadDisallowedReplyToPropertyIsNotFatal() throws JMSException {
DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper();
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public Destination getJMSReplyTo() throws JMSException {
throw new JMSException("illegal property");
}
};
jmsMessage.setStringProperty("foo", "bar");
Map<String, Object> headers = mapper.toHeaders(jmsMessage);
assertNull(headers.get(JmsHeaders.REPLY_TO));
assertNotNull(headers.get("foo"));
assertEquals("bar", headers.get("foo"));
}
@Test
public void attemptToReadDisallowedRedeliveredPropertyIsNotFatal() throws JMSException {
DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper();
javax.jms.Message jmsMessage = new StubTextMessage() {
@Override
public boolean getJMSRedelivered() throws JMSException {
throw new JMSException("illegal property");
}
};
jmsMessage.setStringProperty("foo", "bar");
Map<String, Object> headers = mapper.toHeaders(jmsMessage);
assertNull(headers.get(JmsHeaders.REDELIVERED));
assertNotNull(headers.get("foo"));
assertEquals("bar", headers.get("foo"));
}
}