[Ubermq-commits] jms/src/com/ubermq/jms/client/impl LocalMessage.java,1.19,1.20 QueueReceiver.java,1
Brought to you by:
jimmyp
Update of /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl In directory sc8-pr-cvs1:/tmp/cvs-serv28341/src/com/ubermq/jms/client/impl Modified Files: LocalMessage.java QueueReceiver.java QueueSender.java Session.java LocalTopicSubscriber.java TopicSession.java AbstractConsumer.java SimpleDeliveryManager.java AbstractClientSession.java AbstractProducer.java Connection.java QueueSession.java Log Message: bug fixes related to read/write initialization race conditions Index: LocalMessage.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/LocalMessage.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** LocalMessage.java 7 May 2003 17:41:46 -0000 1.19 --- LocalMessage.java 21 Jan 2004 02:05:24 -0000 1.20 *************** *** 4,9 **** import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.server.datagram.*; import com.ubermq.kernel.*; import EDU.oswego.cs.dl.util.concurrent.*; import java.nio.*; --- 4,11 ---- import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.common.datagram.*; import com.ubermq.kernel.*; + import com.ubermq.util.*; + import EDU.oswego.cs.dl.util.concurrent.*; import java.nio.*; Index: QueueReceiver.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/QueueReceiver.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** QueueReceiver.java 19 Dec 2002 22:36:22 -0000 1.3 --- QueueReceiver.java 21 Jan 2004 02:05:24 -0000 1.4 *************** *** 3,7 **** import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.server.datagram.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; --- 3,7 ---- import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.common.datagram.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; Index: QueueSender.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/QueueSender.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** QueueSender.java 17 Dec 2002 14:52:24 -0000 1.2 --- QueueSender.java 21 Jan 2004 02:05:24 -0000 1.3 *************** *** 2,6 **** import com.ubermq.jms.client.*; ! import com.ubermq.jms.server.datagram.*; import java.io.*; import java.util.*; --- 2,6 ---- import com.ubermq.jms.client.*; ! import com.ubermq.jms.common.datagram.*; import java.io.*; import java.util.*; Index: Session.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/Session.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Session.java 12 Jan 2004 19:24:24 -0000 1.20 --- Session.java 21 Jan 2004 02:05:24 -0000 1.21 *************** *** 4,8 **** import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.server.datagram.*; import com.ubermq.kernel.*; import java.util.*; --- 4,8 ---- import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.common.datagram.*; import com.ubermq.kernel.*; import java.util.*; *************** *** 109,113 **** private String createRandomIdentifier() { ! return com.ubermq.Utility.allocateLocallyUniqueInt() + "-" + new Random().nextInt(); } --- 109,113 ---- private String createRandomIdentifier() { ! return com.ubermq.util.Utility.allocateLocallyUniqueInt() + "-" + new Random().nextInt(); } *************** *** 439,443 **** } } catch(RuntimeException re) { ! com.ubermq.Utility.getLogger().error("", re); if (ackMode == Session.CLIENT_ACKNOWLEDGE) { // according to JMS spec, ignore --- 439,443 ---- } } catch(RuntimeException re) { ! com.ubermq.util.Utility.getLogger().error("", re); if (ackMode == Session.CLIENT_ACKNOWLEDGE) { // according to JMS spec, ignore Index: LocalTopicSubscriber.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/LocalTopicSubscriber.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** LocalTopicSubscriber.java 12 Jan 2004 19:24:24 -0000 1.27 --- LocalTopicSubscriber.java 21 Jan 2004 02:05:24 -0000 1.28 *************** *** 3,11 **** import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.server.datagram.*; ! import com.ubermq.jms.server.routing.*; ! import com.ubermq.jms.server.routing.impl.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; import com.ubermq.*; import java.io.*; --- 3,12 ---- import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.common.datagram.*; ! import com.ubermq.jms.common.routing.*; ! import com.ubermq.jms.common.routing.impl.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; + import com.ubermq.util.*; import com.ubermq.*; import java.io.*; Index: TopicSession.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/TopicSession.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** TopicSession.java 12 Dec 2002 18:01:48 -0000 1.22 --- TopicSession.java 21 Jan 2004 02:05:24 -0000 1.23 *************** *** 1,15 **** package com.ubermq.jms.client.impl; - import com.ubermq.*; - import com.ubermq.jms.client.*; - import com.ubermq.jms.client.msg.*; - import com.ubermq.jms.server.datagram.*; - import com.ubermq.jms.server.proc.*; - import com.ubermq.kernel.*; - import com.ubermq.kernel.overflow.*; - import java.io.*; - import java.util.*; import javax.jms.*; /** * The topic session is a core JMS abstraction representing a set of publishers --- 1,9 ---- package com.ubermq.jms.client.impl; import javax.jms.*; + import com.ubermq.jms.common.datagram.*; + import com.ubermq.kernel.*; + /** * The topic session is a core JMS abstraction representing a set of publishers Index: AbstractConsumer.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/AbstractConsumer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AbstractConsumer.java 12 Jan 2004 19:24:24 -0000 1.5 --- AbstractConsumer.java 21 Jan 2004 02:05:24 -0000 1.6 *************** *** 3,9 **** import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.server.datagram.*; ! import com.ubermq.jms.server.routing.*; ! import com.ubermq.jms.server.routing.impl.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; --- 3,9 ---- import EDU.oswego.cs.dl.util.concurrent.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.common.datagram.*; ! import com.ubermq.jms.common.routing.*; ! import com.ubermq.jms.common.routing.impl.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; *************** *** 307,311 **** } } catch(Exception ie) { ! com.ubermq.Utility.getLogger().error("", ie); } } --- 307,311 ---- } } catch(Exception ie) { ! com.ubermq.util.Utility.getLogger().error("", ie); } } Index: SimpleDeliveryManager.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/SimpleDeliveryManager.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SimpleDeliveryManager.java 12 Jan 2004 19:24:24 -0000 1.10 --- SimpleDeliveryManager.java 21 Jan 2004 02:05:24 -0000 1.11 *************** *** 3,7 **** import com.ubermq.jms.client.*; import com.ubermq.kernel.*; ! import com.ubermq.Utility; import java.util.*; import javax.jms.Message; --- 3,8 ---- import com.ubermq.jms.client.*; import com.ubermq.kernel.*; ! import com.ubermq.util.*; ! import java.util.*; import javax.jms.Message; Index: AbstractClientSession.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/AbstractClientSession.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** AbstractClientSession.java 12 Jan 2004 19:24:24 -0000 1.10 --- AbstractClientSession.java 21 Jan 2004 02:05:24 -0000 1.11 *************** *** 55,65 **** /** ! * Registers the connection with the I/o threads. */ public void addConnection(ConnectionInfo conn) throws IOException { ! read.register(conn); ! write.register(conn); } } --- 55,70 ---- /** ! * Registers the connection with the I/o threads. <P> ! * ! * JP note 1/20/04: It is <B>HIGHLY</b> important ! * to register the write thread prior to registering the read thread. Otherwise, ! * it is possible to run into situations where the write end is not prepared to respond to ! * incoming messages that are already in the connection buffer at the time of registration.<P> */ public void addConnection(ConnectionInfo conn) throws IOException { ! write.register(conn, true); ! read.register(conn, true); } } Index: AbstractProducer.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/AbstractProducer.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** AbstractProducer.java 12 Jan 2004 19:24:24 -0000 1.7 --- AbstractProducer.java 21 Jan 2004 02:05:24 -0000 1.8 *************** *** 1,14 **** package com.ubermq.jms.client.impl; import com.ubermq.*; import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.server.datagram.*; ! import com.ubermq.jms.server.proc.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; ! import java.io.*; ! import java.util.*; ! import javax.jms.*; /** --- 1,17 ---- package com.ubermq.jms.client.impl; + import java.io.*; + import java.util.*; + + import javax.jms.*; + import com.ubermq.*; import com.ubermq.jms.client.*; import com.ubermq.jms.client.msg.*; ! import com.ubermq.jms.common.datagram.*; ! import com.ubermq.jms.common.overflow.*; import com.ubermq.kernel.*; import com.ubermq.kernel.overflow.*; ! import com.ubermq.util.*; /** *************** *** 22,25 **** --- 25,31 ---- implements IDatagramEndpoint, javax.jms.MessageProducer { + private static final org.apache.log4j.Logger log = + org.apache.log4j.Logger.getLogger(AbstractProducer.class); + private final Destination d; private final Session s; *************** *** 80,84 **** { nextSequence = 0; ! senderId = com.ubermq.Utility.allocateGloballyUniqueLong(); s.conn.addLocalSender(senderId); } --- 86,90 ---- { nextSequence = 0; ! senderId = com.ubermq.util.Utility.allocateGloballyUniqueLong(); s.conn.addLocalSender(senderId); } *************** *** 316,319 **** --- 322,326 ---- // wait for it + log.debug(proc + " waiting for msg ACK " + waitingFor + ", " + MAX_ACK_WAIT_TIMEOUT + "ms"); this.wait(MAX_ACK_WAIT_TIMEOUT); *************** *** 321,327 **** // check that it is valid, and that it is not a NACK if (acknowledgement == null) ! throw new JMSUndeliverableException("Message was not acknowledged in the timeout period."); else if (acknowledgement.isNegativeAck()) ! throw new JMSUndeliverableException("Message was not successfully delivered."); } catch(InterruptedException ie) { --- 328,344 ---- // check that it is valid, and that it is not a NACK if (acknowledgement == null) ! { ! log.debug("no ack for " + waitingFor + " on " + proc); ! throw new JMSUndeliverableException("Message " + waitingFor + " was not acknowledged in the timeout period."); ! } else if (acknowledgement.isNegativeAck()) ! { ! log.debug("negative ack recv'd for " + waitingFor + " on " + proc); ! throw new JMSUndeliverableException("Message " + waitingFor + " was not successfully delivered."); ! } ! else ! { ! log.debug(waitingFor + " acknowledged"); ! } } catch(InterruptedException ie) { Index: Connection.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/Connection.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Connection.java 12 Jan 2004 19:24:24 -0000 1.33 --- Connection.java 21 Jan 2004 02:05:24 -0000 1.34 *************** *** 3,10 **** import com.ubermq.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.server.datagram.*; import com.ubermq.kernel.*; import com.ubermq.kernel.event.*; import com.ubermq.kernel.overflow.*; import java.io.*; import java.util.*; --- 3,12 ---- import com.ubermq.*; import com.ubermq.jms.client.*; ! import com.ubermq.jms.common.datagram.*; import com.ubermq.kernel.*; import com.ubermq.kernel.event.*; import com.ubermq.kernel.overflow.*; + import com.ubermq.util.*; + import java.io.*; import java.util.*; *************** *** 28,32 **** // version information public static final int UBERMQ_MAJOR_VERSION = 2; ! public static final int UBERMQ_MINOR_VERSION = 4; public static final int UBERMQ_REVISION = 0; public static final String UBERMQ_PROVIDER_NAME = "UberMQ"; --- 30,34 ---- // version information public static final int UBERMQ_MAJOR_VERSION = 2; ! public static final int UBERMQ_MINOR_VERSION = 6; public static final int UBERMQ_REVISION = 0; public static final String UBERMQ_PROVIDER_NAME = "UberMQ"; *************** *** 329,333 **** void sendEvent(ConnectionEvent event) { ! com.ubermq.Utility.getLogger().debug("sending connection event " + event); Iterator iter = eventHandlers.iterator(); --- 331,335 ---- void sendEvent(ConnectionEvent event) { ! com.ubermq.util.Utility.getLogger().debug("sending connection event " + event); Iterator iter = eventHandlers.iterator(); Index: QueueSession.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/client/impl/QueueSession.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** QueueSession.java 17 Dec 2002 14:52:24 -0000 1.2 --- QueueSession.java 21 Jan 2004 02:05:24 -0000 1.3 *************** *** 1,5 **** package com.ubermq.jms.client.impl; ! import com.ubermq.jms.server.datagram.*; final class QueueSession --- 1,5 ---- package com.ubermq.jms.client.impl; ! import com.ubermq.jms.common.datagram.*; final class QueueSession |