User: hiram
Date: 01/02/21 14:52:00
Modified: src/main/org/jbossmq AcknowledgementRequest.java
SpyConnection.java SpyMessage.java
SpyMessageConsumer.java SpyXAResourceManager.java
Log:
Bug fix: Acking durable subscriber messages was causing exceptions.
Bug reported by: Polina Alber <[EMAIL PROTECTED]> and Greg Lappen
<[EMAIL PROTECTED]>
Revision Changes Path
1.2 +4 -3 jbossmq/src/main/org/jbossmq/AcknowledgementRequest.java
Index: AcknowledgementRequest.java
===================================================================
RCS file:
/products/cvs/ejboss/jbossmq/src/main/org/jbossmq/AcknowledgementRequest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AcknowledgementRequest.java 2001/01/26 00:43:29 1.1
+++ AcknowledgementRequest.java 2001/02/21 22:51:58 1.2
@@ -17,7 +17,7 @@
*
* @author Hiram Chirino ([EMAIL PROTECTED])
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class AcknowledgementRequest
implements java.io.Serializable
@@ -26,7 +26,7 @@
public boolean isAck;
public Destination destination=null;
public String messageID=null;
- transient public int subscriberId;
+ public int subscriberId;
public boolean equals(Object o) {
@@ -34,7 +34,8 @@
return false;
return messageID.equals(((AcknowledgementRequest)o).messageID) &&
- destination.equals(((AcknowledgementRequest)o).destination);
+ destination.equals(((AcknowledgementRequest)o).destination) &&
+ subscriberId == ((AcknowledgementRequest)o).subscriberId ;
}
1.3 +1 -0 jbossmq/src/main/org/jbossmq/SpyConnection.java
Index: SpyConnection.java
===================================================================
RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyConnection.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SpyConnection.java 2001/02/14 00:41:33 1.2
+++ SpyConnection.java 2001/02/21 22:51:58 1.3
@@ -38,7 +38,7 @@
* @author Norbert Lataille ([EMAIL PROTECTED])
* @author Hiram Chirino ([EMAIL PROTECTED])
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SpyConnection implements java.io.Serializable, javax.jms.Connection {
//////////////////////////////////////////////////////////////
@@ -463,6 +463,7 @@
}
requests[i].message.shouldAck = true;
+ requests[i].message.routeToSubscriber =
requests[i].subscriptionId.intValue();
consumer.addMessage(requests[i].message);
consumersUsed.add(consumer);
1.3 +3 -0 jbossmq/src/main/org/jbossmq/SpyMessage.java
Index: SpyMessage.java
===================================================================
RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyMessage.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SpyMessage.java 2001/02/14 00:46:38 1.2
+++ SpyMessage.java 2001/02/21 22:51:58 1.3
@@ -22,7 +22,7 @@
* @author Norbert Lataille ([EMAIL PROTECTED])
* @author Hiram Chirino ([EMAIL PROTECTED])
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SpyMessage
implements Serializable, Cloneable, Message, Comparable
@@ -472,7 +472,10 @@
item.destination = jmsDestination;
item.messageID = jmsMessageID;
item.isAck = isAck;
+ item.subscriberId = routeToSubscriber;
return item;
}
+
+ public transient int routeToSubscriber;
}
1.2 +5 -3 jbossmq/src/main/org/jbossmq/SpyMessageConsumer.java
Index: SpyMessageConsumer.java
===================================================================
RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyMessageConsumer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SpyMessageConsumer.java 2001/01/26 00:43:34 1.1
+++ SpyMessageConsumer.java 2001/02/21 22:51:59 1.2
@@ -26,7 +26,7 @@
* @author Norbert Lataille ([EMAIL PROTECTED])
* @author Hiram Chirino ([EMAIL PROTECTED])
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class SpyMessageConsumer implements MessageConsumer, SpyConsumer {
@@ -253,14 +253,16 @@
(this instanceof SpyQueueReceiver ||
subscription.durableSubscriptionName!=null) ) {
Message mes = getMessage();
- while (mes != null) {
+ while (mes != null ) {
Log.log("Got unrequested message, sending NACK
for: " + mes);
AcknowledgementRequest item = new
AcknowledgementRequest();
item.destination = mes.getJMSDestination();
item.messageID = mes.getJMSMessageID();
item.isAck = false;
-
+ if( mes instanceof SpyMessage ) {
+ item.subscriberId =
((SpyMessage)mes).routeToSubscriber;
+ }
session.connection.send(item);
mes = getMessage();
1.2 +2 -1 jbossmq/src/main/org/jbossmq/SpyXAResourceManager.java
Index: SpyXAResourceManager.java
===================================================================
RCS file:
/products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyXAResourceManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SpyXAResourceManager.java 2001/01/26 00:43:39 1.1
+++ SpyXAResourceManager.java 2001/02/21 22:51:59 1.2
@@ -19,7 +19,7 @@
*
* @author Hiram Chirino ([EMAIL PROTECTED])
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class SpyXAResourceManager implements java.io.Serializable {
@@ -69,6 +69,7 @@
item.destination = msg.getJMSDestination();
item.messageID = msg.getJMSMessageID();
item.isAck = true;
+ item.subscriberId = msg.routeToSubscriber;
state.ackedMessages.addLast(item);
}