You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/10/20 06:45:14 UTC
svn commit: r465987 - in
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp:
LegacyFrameTranslator.java StompSubscription.java
Author: chirino
Date: Thu Oct 19 21:45:12 2006
New Revision: 465987
URL: http://svn.apache.org/viewvc?view=rev&rev=465987
Log:
Found some issues with the client ack handling for stomp and bytes message conversion while looking into:
https://issues.apache.org/activemq/browse/AMQ-978
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompSubscription.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java?view=diff&rev=465987&r1=465986&r2=465987
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/LegacyFrameTranslator.java Thu Oct 19 21:45:12 2006
@@ -54,6 +54,7 @@
} else if( message.getDataStructureType() == ActiveMQBytesMessage.DATA_STRUCTURE_TYPE ) {
ActiveMQBytesMessage msg = (ActiveMQBytesMessage)message.copy();
+ msg.setReadOnlyBody(true);
byte[] data = new byte[(int)msg.getBodyLength()];
msg.readBytes(data);
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompSubscription.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompSubscription.java?view=diff&rev=465987&r1=465986&r2=465987
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompSubscription.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompSubscription.java Thu Oct 19 21:45:12 2006
@@ -20,6 +20,8 @@
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
import javax.jms.JMSException;
@@ -91,18 +93,23 @@
ack.setConsumerId(consumerInfo.getConsumerId());
int count=0;
- for (Iterator iter = dispatchedMessage.keySet().iterator(); iter.hasNext();) {
+ for (Iterator iter = dispatchedMessage.entrySet().iterator(); iter.hasNext();) {
+
+ Map.Entry entry = (Entry) iter.next();
+ String id = (String) entry.getKey();
+ MessageId msgid = (MessageId) entry.getValue();
- String id = (String) iter.next();
if( ack.getFirstMessageId()==null )
- ack.setFirstMessageId((MessageId) dispatchedMessage.get(id));
+ ack.setFirstMessageId(msgid);
iter.remove();
count++;
+
if( id.equals(messageId) ) {
- ack.setLastMessageId((MessageId) dispatchedMessage.get(id));
+ ack.setLastMessageId(msgid);
break;
}
+
}
ack.setMessageCount(count);