User: pkendall
  Date: 01/07/31 18:18:22

  Modified:    src/main/org/jbossmq/il/uil UILServerILService.java
                        UILClientILService.java
  Log:
  Make the sockets fully blocking and close the socket when stopping.  This is to work 
around a bug in Sun's JDK sockets i.e. they don't throw InterruptedException on 
timeout, you get a EOFException and the socket is then stuffed.
  
  Revision  Changes    Path
  1.6       +8 -9      jbossmq/src/main/org/jbossmq/il/uil/UILServerILService.java
  
  Index: UILServerILService.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmq/src/main/org/jbossmq/il/uil/UILServerILService.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- UILServerILService.java   2001/07/31 21:36:13     1.5
  +++ UILServerILService.java   2001/08/01 01:18:22     1.6
  @@ -38,6 +38,7 @@
   import javax.jms.TemporaryQueue;
   import org.jbossmq.TransactionRequest;
   import java.io.IOException;
  +import java.io.EOFException;
   import org.jbossmq.SpyDestination;
   
   /**
  @@ -45,7 +46,7 @@
    *  manage the JVM IL.
    *
    *   @author Hiram Chirino ([EMAIL PROTECTED])
  - *   @version $Revision: 1.5 $
  + *   @version $Revision: 1.6 $
    */
   public class UILServerILService extends ServerILJMXService implements 
UILServerILServiceMBean, Runnable {
        
  @@ -159,6 +160,7 @@
                        if( !running )
                                return;
                        
  +                     socket.setSoTimeout(0);
                        new Thread(this,"UIL Worker").start();
   
                        mSocket = new SocketMultiplexor(socket);
  @@ -174,18 +176,15 @@
                        return;
                }
   
  -
                while (!closed && running) {
   
                        try {
  -                             
  -                             //socket.setSoTimeout(SO_TIMEOUT);
                                code=in.readByte();             
  -                             
  -                     } catch ( java.io.InterruptedIOException e ) {
  -                             if( !closed && !running )
  -                                     continue;
  -                     } catch (IOException e) {
  +                     }
  +                     catch ( EOFException e ) {
  +                             break;
  +                     }
  +                     catch (IOException e) {
                                if( closed || !running )
                                        break;
                                        
  
  
  
  1.3       +3 -7      jbossmq/src/main/org/jbossmq/il/uil/UILClientILService.java
  
  Index: UILClientILService.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmq/src/main/org/jbossmq/il/uil/UILClientILService.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- UILClientILService.java   2001/07/16 02:51:46     1.2
  +++ UILClientILService.java   2001/08/01 01:18:22     1.3
  @@ -29,7 +29,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class UILClientILService implements org.jbossmq.il.ClientILService, Runnable 
{
        //the client IL
  @@ -108,15 +108,11 @@
                while (running) {
   
                        try {
  -                             cat.debug("Waiting for a request");
  +                             cat.debug("Waiting for a messgage from the server");
                                code = in.readByte();
  -                             cat.debug("Got it");
  -                             
  +                     } catch (java.io.InterruptedIOException e) {
  +                             continue;
                        } catch (IOException e) {
  -                             if (running)
  -                                     break;
  -
  -                             connection.asynchFailure("Connection failure", e);
                                break;
                        }
   
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to