User: hiram
Date: 00/12/26 11:54:32
Modified: src/java/org/spydermq/server ExclusiveQueue.java
SharedQueue.java
Log:
Bug Fix: messages were not being delivered to topics.
Revision Changes Path
1.3 +4 -8 spyderMQ/src/java/org/spydermq/server/ExclusiveQueue.java
Index: ExclusiveQueue.java
===================================================================
RCS file:
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/ExclusiveQueue.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ExclusiveQueue.java 2000/12/24 01:55:07 1.2
+++ ExclusiveQueue.java 2000/12/26 19:54:32 1.3
@@ -10,17 +10,13 @@
import javax.jms.JMSException;
import javax.jms.DeliveryMode;
-import org.spydermq.*;
-import org.spydermq.persistence.SpyMessageLog;
import org.spydermq.selectors.Selector;
+import org.spydermq.Log;
+import org.spydermq.SpyMessage;
import java.util.Iterator;
-import java.util.Hashtable;
import java.util.LinkedList;
-import java.util.HashMap;
-import java.util.TreeSet;
-
/**
* This class represents a queue which provides it's messages
* exclusivly to one consumer at a time.
@@ -28,7 +24,7 @@
* @author Hiram Chirino ([EMAIL PROTECTED])
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class ExclusiveQueue extends BasicQueue {
@@ -36,7 +32,7 @@
String queueId;
public void addMessage(SpyMessage mes, Long txId) throws JMSException
- {
+ {
// Persist the message if it was persistent
if( mes.getJMSDeliveryMode() == DeliveryMode.PERSISTENT )
@@ -59,7 +55,7 @@
{
Log.log(""+this+"->run()");
-
+
synchronized (messages) {
synchronized (consumers) {
1.3 +17 -17 spyderMQ/src/java/org/spydermq/server/SharedQueue.java
Index: SharedQueue.java
===================================================================
RCS file:
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/SharedQueue.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SharedQueue.java 2000/12/24 01:55:06 1.2
+++ SharedQueue.java 2000/12/26 19:54:32 1.3
@@ -10,15 +10,12 @@
import javax.jms.JMSException;
import javax.jms.DeliveryMode;
-import org.spydermq.*;
-import org.spydermq.persistence.SpyMessageLog;
+import org.spydermq.Log;
+import org.spydermq.SpyMessage;
import java.util.Iterator;
-import java.util.Hashtable;
-import java.util.LinkedList;
-import java.util.HashMap;
-import java.util.TreeSet;
+
/**
* This class is a message queue which allows sending a single message
* to multiple consumers.
@@ -26,40 +23,39 @@
* @author Hiram Chirino ([EMAIL PROTECTED])
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SharedQueue extends BasicQueue {
- //List of Pending messages
- private TreeSet messages;
- //The JMSServer object
- JMSServer server;
- //DistributedConnection objs that have "registered" to this Destination
- private LinkedList consumers;
-
// Constructor ---------------------------------------------------
SharedQueue(JMSServer server) throws JMSException
{
super( server );
- consumers=new LinkedList();
- messages=new TreeSet();
}
// This will dispatch messages in the queue the the ClientConsumers
public void run() throws JMSException
{
+ Log.log(""+this+"->run()");
SpyMessage[] job;
-
+
synchronized (messages) {
- if( messages.size() == 0 )
+ if( messages.size() == 0 ) {
+ Log.log(""+this+"->run() : No Messages");
return;
+ }
job=new SpyMessage[messages.size()];
job=(SpyMessage[])messages.toArray(job);
messages.clear();
}
+ if( consumers.size() == 0 ) {
+ Log.log(""+this+"->run() : No consumers");
+ return;
+ }
+
Iterator iter = consumers.iterator();
while( iter.hasNext() ) {
@@ -72,5 +68,9 @@
}
+ }
+
+ public String toString() {
+ return "SharedQueue";
}
}