notify user of the actual error and add a todo behavior for buffer copying
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 23 Apr 2008 11:12:23 +0000 (11:12 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 23 Apr 2008 11:12:23 +0000 (11:12 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@650826 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/tribes/membership/McastServiceImpl.java
java/org/apache/catalina/tribes/transport/nio/NioSender.java

index 1c4341a..052d963 100644 (file)
@@ -230,7 +230,12 @@ public class McastServiceImpl
         boolean valid = false;
         if ( (level & Channel.MBR_RX_SEQ)==Channel.MBR_RX_SEQ ) {
             if ( receiver != null ) throw new IllegalStateException("McastService.receive already running.");
-            if ( sender == null ) socket.joinGroup(address);
+            try {
+                if ( sender == null ) socket.joinGroup(address);
+            }catch (IOException iox) {
+                log.error("Unable to join multicast group, make sure your system has multicasting enabled.");
+                throw iox;
+            }
             doRunReceiver = true;
             receiver = new ReceiverThread();
             receiver.setDaemon(true);
index 3db44e4..a5e9874 100644 (file)
@@ -338,6 +338,8 @@ public class NioSender extends AbstractSender implements DataSender{
            if ( writebuf != null ) writebuf.clear();
            else writebuf = getBuffer(length);
            if ( writebuf.capacity() < length ) writebuf = getBuffer(length);
+           
+           //TODO use ByteBuffer.wrap to avoid copying the data.
            writebuf.put(data,offset,length);
            //writebuf.rewind();
            //set the limit so that we don't write non wanted data