diff options
| author | Arnaud Simon <arnaudsimon@apache.org> | 2007-08-24 15:59:22 +0000 |
|---|---|---|
| committer | Arnaud Simon <arnaudsimon@apache.org> | 2007-08-24 15:59:22 +0000 |
| commit | 65f3a76fbfb0ca5d3178be80e35f378faad8ac62 (patch) | |
| tree | 1544cf2f0dc1c7e5f1296f91e44ca67b331a29fe /java/client/src | |
| parent | 521f76262032fd020dd804bc0088955df6c566ec (diff) | |
| download | qpid-python-65f3a76fbfb0ca5d3178be80e35f378faad8ac62.tar.gz | |
updated afterReceive
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@569431 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client/src')
5 files changed, 32 insertions, 22 deletions
diff --git a/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java b/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java index bc60ef94a0..a3c7f6c94b 100644 --- a/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java +++ b/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java @@ -393,7 +393,7 @@ public class MessageConsumerImpl extends MessageActor implements MessageConsumer } catch (InterruptedException e) { - // do nothing + throw new RuntimeException(e); } } if (_incomingMessage != null) diff --git a/java/client/src/main/java/org/apache/qpidity/jms/message/BytesMessageImpl.java b/java/client/src/main/java/org/apache/qpidity/jms/message/BytesMessageImpl.java index ce6b14fac6..ca81db88b3 100644 --- a/java/client/src/main/java/org/apache/qpidity/jms/message/BytesMessageImpl.java +++ b/java/client/src/main/java/org/apache/qpidity/jms/message/BytesMessageImpl.java @@ -837,7 +837,8 @@ public class BytesMessageImpl extends MessageImpl implements BytesMessage try { _dataIn = new DataInputStream( - new ByteArrayInputStream(messageData.array(), messageData.arrayOffset(), messageData.limit())); + new ByteArrayInputStream(messageData.array(), messageData.arrayOffset() + messageData.position() + , messageData.remaining())); } catch (Exception e) { diff --git a/java/client/src/main/java/org/apache/qpidity/jms/message/MapMessageImpl.java b/java/client/src/main/java/org/apache/qpidity/jms/message/MapMessageImpl.java index 7e7429f8ab..fceb1a300a 100644 --- a/java/client/src/main/java/org/apache/qpidity/jms/message/MapMessageImpl.java +++ b/java/client/src/main/java/org/apache/qpidity/jms/message/MapMessageImpl.java @@ -594,7 +594,9 @@ public class MapMessageImpl extends MessageImpl implements MapMessage { try { - ByteArrayInputStream bais = new ByteArrayInputStream(messageData.array()); + ByteArrayInputStream bais = new ByteArrayInputStream(messageData.array(), + messageData.arrayOffset() + messageData.position(), + messageData.remaining()); ObjectInputStream ois = new ObjectInputStream(bais); _map = (Map<String, Object>) ois.readObject(); } diff --git a/java/client/src/main/java/org/apache/qpidity/jms/message/ObjectMessageImpl.java b/java/client/src/main/java/org/apache/qpidity/jms/message/ObjectMessageImpl.java index a981fc2846..45b7ac8c96 100644 --- a/java/client/src/main/java/org/apache/qpidity/jms/message/ObjectMessageImpl.java +++ b/java/client/src/main/java/org/apache/qpidity/jms/message/ObjectMessageImpl.java @@ -153,23 +153,29 @@ public class ObjectMessageImpl extends MessageImpl implements ObjectMessage public void afterMessageReceive() throws QpidException { super.afterMessageReceive(); - try - { - ByteArrayInputStream bais = new ByteArrayInputStream(getMessageData().array()); - ObjectInputStream ois = new ObjectInputStream(bais); - _object = (Serializable) ois.readObject(); - } - catch (IOException ioe) + ByteBuffer messageData = getMessageData(); + if (messageData != null) { - throw new QpidException( - "Unexpected error during rebuild of message in afterReceive() - " + "The Object stored in the message was not a Serializable object.", - null, ioe); - } - catch (ClassNotFoundException clnfe) - { - throw new QpidException( - "Unexpected error during rebuild of message in afterReceive() - " + "Could not find the required class in classpath.", - null, clnfe); + try + { + ByteArrayInputStream bais = new ByteArrayInputStream(messageData.array(), + messageData.arrayOffset() + messageData.position(), + messageData.remaining()); + ObjectInputStream ois = new ObjectInputStream(bais); + _object = (Serializable) ois.readObject(); + } + catch (IOException ioe) + { + throw new QpidException( + "Unexpected error during rebuild of message in afterReceive() - " + "The Object stored in the message was not a Serializable object.", + null, ioe); + } + catch (ClassNotFoundException clnfe) + { + throw new QpidException( + "Unexpected error during rebuild of message in afterReceive() - " + "Could not find the required class in classpath.", + null, clnfe); + } } } } diff --git a/java/client/src/main/java/org/apache/qpidity/jms/message/TextMessageImpl.java b/java/client/src/main/java/org/apache/qpidity/jms/message/TextMessageImpl.java index c1afc06502..647d1fe5b5 100644 --- a/java/client/src/main/java/org/apache/qpidity/jms/message/TextMessageImpl.java +++ b/java/client/src/main/java/org/apache/qpidity/jms/message/TextMessageImpl.java @@ -114,12 +114,13 @@ public class TextMessageImpl extends MessageImpl implements TextMessage public void afterMessageReceive() throws QpidException { super.afterMessageReceive(); - ByteBuffer data = getMessageData(); - if (data != null) + ByteBuffer messageData = getMessageData(); + if (messageData != null) { try { - _messageText = new String(data.array(), CHARACTER_ENCODING); + _messageText = new String(messageData.array(), messageData.arrayOffset() + messageData.position(), + messageData.remaining(), CHARACTER_ENCODING); } catch (UnsupportedEncodingException e) { |
