You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/05/21 11:58:49 UTC

svn commit: r1680797 - in /tomcat/trunk/java/org/apache/catalina/tribes/transport/nio: LocalStrings.properties NioReceiver.java NioReplicationTask.java NioSender.java ParallelNioSender.java PooledParallelSender.java

Author: kfujino
Date: Thu May 21 09:58:49 2015
New Revision: 1680797

URL: http://svn.apache.org/r1680797
Log:
Use StringManager to provide i18n support in the org.apache.catalina.tribes.transport.nio package.

Added:
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties   (with props)
Modified:
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
    tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java

Added: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties?rev=1680797&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties (added)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties Thu May 21 09:58:49 2015
@@ -0,0 +1,53 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nioReceiver.alreadyStarted=ServerSocketChannel already started
+nioReceiver.cleanup.fail=Unable to cleanup on selector close
+nioReceiver.clientDisconnect=Replication client disconnected, error when polling key. Ignoring client.
+nioReceiver.requestError=Unable to process request in NioReceiver
+nioReceiver.run.fail=Unable to run replication listener
+nioReceiver.start.fail=Unable to start cluster receiver
+nioReceiver.stop.fail=Unable to close cluster receiver selector
+nioReceiver.stop.threadRunning=The NioReceiver thread did not stop in a timely manner. Errors may be observed when the selector is closed.
+nioReceiver.threadpool.fail=ThreadPool cannot be initialized. Listener not started.
+nioReceiver.threadsExhausted=Channel key is registered, but has had no interest ops for the last [{0}] ms. (cancelled: [{1}]):[{2}] last access:[{3} Possible cause: all threads used, perform thread dump
+nioReplicationTask.unable.drainChannel.ioe=IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed[{0}].
+nioReplicationTask.exception.drainChannel=Exception caught in TcpReplicationThread.drainChannel.
+nioReplicationTask.process.clusterMsg.failed=Processing of cluster message failed.
+nioReplicationTask.error.register.key=Error registering key for read:{0}
+nioReplicationTask.unable.ack=Unable to send ACK back through channel, channel disconnected?: {0}
+nioSender.sender.disconnected=Sender has been disconnected, can't selection key.
+nioSender.key.inValid=Key is not valid, it must have been cancelled.
+nioSender.unknown.state=Data is in unknown state. readyOps={0}
+nioSender.unable.receive.ack=Unable to receive an ack message. EOF on socket channel has been reached.
+nioSender.receive.failedAck=Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA
+nioSender.not.connected=NioSender is not connected, this should not occur.
+nioSender.already.connected=NioSender is already in connected state.
+nioSender.datagram.already.established=Datagram channel has already been established. Connection might be in progress.
+nioSender.socketChannel.already.established=Socket channel has already been established. Connection might be in progress.
+nioSender.unable.disconnect=Unable to disconnect NioSender. msg={0}
+parallelNioSender.send.failed=Parallel NIO send failed.
+parallelNioSender.operation.timedout=Operation has timed out({0} ms.).
+parallelNioSender.send.fail.retrying=Member send is failing for:{0} ; Setting to suspect and retrying.
+parallelNioSender.send.fail=Member send is failing for:{0} ; Setting to suspect.
+parallelNioSender.sender.disconnected.notRetry=Not retrying send for:{0}; Sender is disconnected.
+parallelNioSender.sender.disconnected.sendFailed=Send failed, and sender is disconnected. Not retrying.
+parallelNioSender.sendFailed.attempt=Send failed, attempt:{0} max:{1}
+parallelNioSender.unable.setup.NioSender=Unable to setup NioSender.
+parallelNioSender.error.keepalive=Error during keepalive test for sender:{0} 
+pooledParallelSender.sender.disconnected=Sender not connected.
+pooledParallelSender.unable.retrieveSender.timeout=Unable to retrieve a data sender, time out({0} ms) error.
+pooledParallelSender.unable.retrieveSender=Unable to retrieve a sender from the sender pool
+pooledParallelSender.unable.open=Unable to open NIO selector.
\ No newline at end of file

Propchange: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java?rev=1680797&r1=1680796&r2=1680797&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java Thu May 21 09:58:49 2015
@@ -34,7 +34,6 @@ import java.util.concurrent.atomic.Atomi
 
 import org.apache.catalina.tribes.io.ObjectReader;
 import org.apache.catalina.tribes.transport.AbstractRxTask;
-import org.apache.catalina.tribes.transport.Constants;
 import org.apache.catalina.tribes.transport.ReceiverBase;
 import org.apache.catalina.tribes.transport.RxTaskPool;
 import org.apache.catalina.tribes.util.ExceptionUtils;
@@ -49,8 +48,7 @@ public class NioReceiver extends Receive
     /**
      * The string manager for this package.
      */
-    protected static final StringManager sm =
-            StringManager.getManager(Constants.Package);
+    protected static final StringManager sm = StringManager.getManager(NioReceiver.class);
 
     private volatile boolean running = false;
 
@@ -80,7 +78,7 @@ public class NioReceiver extends Receive
         try {
             setPool(new RxTaskPool(getMaxThreads(),getMinThreads(),this));
         } catch (Exception x) {
-            log.fatal(sm.getString("NioReceiver.threadpool.fail"), x);
+            log.fatal(sm.getString("nioReceiver.threadpool.fail"), x);
             if ( x instanceof IOException ) throw (IOException)x;
             else throw new IOException(x.getMessage());
         }
@@ -91,7 +89,7 @@ public class NioReceiver extends Receive
             t.setDaemon(true);
             t.start();
         } catch (Exception x) {
-            log.fatal(sm.getString("NioReceiver.start.fail"), x);
+            log.fatal(sm.getString("nioReceiver.start.fail"), x);
             if ( x instanceof IOException ) throw (IOException)x;
             else throw new IOException(x.getMessage());
         }
@@ -211,7 +209,7 @@ public class NioReceiver extends Receive
                         if (delta > getTimeout() && (!ka.isAccessed())) {
                             if (log.isWarnEnabled())
                                 log.warn(sm.getString(
-                                        "NioReceiver.threadsExhausted",
+                                        "nioReceiver.threadsExhausted",
                                         Integer.valueOf(getTimeout()),
                                         Boolean.valueOf(ka.isCancelled()),
                                         key,
@@ -239,7 +237,7 @@ public class NioReceiver extends Receive
      */
     protected void listen() throws Exception {
         if (doListen()) {
-            log.warn(sm.getString("NioReceiver.alreadyStarted"));
+            log.warn(sm.getString("nioReceiver.alreadyStarted"));
             return;
         }
 
@@ -309,10 +307,10 @@ public class NioReceiver extends Receive
             } catch (java.nio.channels.ClosedSelectorException cse) {
                 // ignore is normal at shutdown or stop listen socket
             } catch (java.nio.channels.CancelledKeyException nx) {
-                log.warn(sm.getString("NioReceiver.clientDisconnect"));
+                log.warn(sm.getString("nioReceiver.clientDisconnect"));
             } catch (Throwable t) {
                 ExceptionUtils.handleThrowable(t);
-                log.error(sm.getString("NioReceiver.requestError"), t);
+                log.error(sm.getString("nioReceiver.requestError"), t);
             }
 
         }
@@ -349,11 +347,11 @@ public class NioReceiver extends Receive
                     count ++;
                 }
                 if (running) {
-                    log.warn(sm.getString("NioReceiver.stop.threadRunning"));
+                    log.warn(sm.getString("nioReceiver.stop.threadRunning"));
                 }
                 closeSelector();
             } catch (Exception x) {
-                log.error(sm.getString("NioReceiver.stop.fail"), x);
+                log.error(sm.getString("nioReceiver.stop.fail"), x);
             } finally {
                 this.selector.set(null);
             }
@@ -374,7 +372,7 @@ public class NioReceiver extends Receive
             }
         } catch (IOException ignore){
             if (log.isWarnEnabled()) {
-                log.warn(sm.getString("NioReceiver.cleanup.fail"), ignore);
+                log.warn(sm.getString("nioReceiver.cleanup.fail"), ignore);
             }
         } catch (ClosedSelectorException ignore){
             // Ignore
@@ -414,7 +412,7 @@ public class NioReceiver extends Receive
         try {
             listen();
         } catch (Exception x) {
-            log.error(sm.getString("NioReceiver.run.fail"), x);
+            log.error(sm.getString("nioReceiver.run.fail"), x);
         } finally {
             running = false;
         }

Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java?rev=1680797&r1=1680796&r2=1680797&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java Thu May 21 09:58:49 2015
@@ -37,6 +37,7 @@ import org.apache.catalina.tribes.io.Obj
 import org.apache.catalina.tribes.transport.AbstractRxTask;
 import org.apache.catalina.tribes.transport.Constants;
 import org.apache.catalina.tribes.util.Logs;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -53,6 +54,7 @@ import org.apache.juli.logging.LogFactor
 public class NioReplicationTask extends AbstractRxTask {
 
     private static final Log log = LogFactory.getLog(NioReplicationTask.class);
+    protected static final StringManager sm = StringManager.getManager(NioReplicationTask.class);
 
     private ByteBuffer buffer = null;
     private SelectionKey key;
@@ -106,10 +108,10 @@ public class NioReplicationTask extends
             } else if ( e instanceof IOException ) {
                 //dont spew out stack traces for IO exceptions unless debug is enabled.
                 if (log.isDebugEnabled()) log.debug ("IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed["+e.getMessage()+"].", e);
-                else log.warn ("IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed["+e.getMessage()+"].");
+                else log.warn (sm.getString("nioReplicationTask.unable.drainChannel.ioe", e.getMessage()));
             } else if ( log.isErrorEnabled() ) {
                 //this is a real error, log it.
-                log.error("Exception caught in TcpReplicationThread.drainChannel.",e);
+                log.error(sm.getString("nioReplicationTask.exception.drainChannel"),e);
             }
             cancelKey(key);
         }
@@ -213,10 +215,10 @@ public class NioReplicationTask extends
                  */
                 if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.ACK_COMMAND,saddr);
             }catch ( RemoteProcessException e ) {
-                if ( log.isDebugEnabled() ) log.error("Processing of cluster message failed.",e);
+                if ( log.isDebugEnabled() ) log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e);
                 if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr);
             }catch ( Exception e ) {
-                log.error("Processing of cluster message failed.",e);
+                log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e);
                 if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr);
             }
             if ( getUseBufferPool() ) {
@@ -261,7 +263,7 @@ public class NioReplicationTask extends
                         log.trace("CKX Cancelling key:"+key);
 
                 } catch (Exception x) {
-                    log.error("Error registering key for read:"+key,x);
+                    log.error(sm.getString("nioReplicationTask.error.register.key", key),x);
                 }
             }
         };
@@ -320,7 +322,7 @@ public class NioReplicationTask extends
                           ((DatagramChannel)channel).socket().getInetAddress()));
             }
         } catch ( java.io.IOException x ) {
-            log.warn("Unable to send ACK back through channel, channel disconnected?: "+x.getMessage());
+            log.warn(sm.getString("nioReplicationTask.unable.ack", x.getMessage()));
         }
     }
 

Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java Thu May 21 09:58:49 2015
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import org.apache.catalina.tribes.RemoteProcessException;
 import org.apache.catalina.tribes.io.XByteBuffer;
 import org.apache.catalina.tribes.transport.AbstractSender;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -49,7 +50,7 @@ import org.apache.juli.logging.LogFactor
 public class NioSender extends AbstractSender {
 
     private static final Log log = LogFactory.getLog(NioSender.class);
-
+    protected static final StringManager sm = StringManager.getManager(NioSender.class);
 
 
     protected Selector selector;
@@ -83,8 +84,8 @@ public class NioSender extends AbstractS
         int ops = key.readyOps();
         key.interestOps(key.interestOps() & ~ops);
         //in case disconnect has been called
-        if ((!isConnected()) && (!connecting)) throw new IOException("Sender has been disconnected, can't selection key.");
-        if ( !key.isValid() ) throw new IOException("Key is not valid, it must have been cancelled.");
+        if ((!isConnected()) && (!connecting)) throw new IOException(sm.getString("nioSender.sender.disconnected"));
+        if ( !key.isValid() ) throw new IOException(sm.getString("nioSender.key.inValid"));
         if ( key.isConnectable() ) {
             if ( socketChannel.finishConnect() ) {
                 completeConnect();
@@ -124,8 +125,8 @@ public class NioSender extends AbstractS
             }//end if
         } else {
             //unknown state, should never happen
-            log.warn("Data is in unknown state. readyOps="+ops);
-            throw new IOException("Data is in unknown state. readyOps="+ops);
+            log.warn(sm.getString("nioSender.unknown.state", ops));
+            throw new IOException(sm.getString("nioSender.unknown.state", ops));
         }//end if
         return false;
     }
@@ -168,7 +169,7 @@ public class NioSender extends AbstractS
         if ( current == null ) return true;
         int read = isUdpBased()?dataChannel.read(readbuf) : socketChannel.read(readbuf);
         //end of stream
-        if ( read == -1 ) throw new IOException("Unable to receive an ack message. EOF on socket channel has been reached.");
+        if ( read == -1 ) throw new IOException(sm.getString("nioSender.unable.receive.ack"));
         //no data read
         else if ( read == 0 ) return false;
         readbuf.flip();
@@ -178,7 +179,7 @@ public class NioSender extends AbstractS
             byte[] ackcmd = ackbuf.extractDataPackage(true).getBytes();
             boolean ack = Arrays.equals(ackcmd,org.apache.catalina.tribes.transport.Constants.ACK_DATA);
             boolean fack = Arrays.equals(ackcmd,org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA);
-            if ( fack && getThrowOnFailedAck() ) throw new RemoteProcessException("Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA");
+            if ( fack && getThrowOnFailedAck() ) throw new RemoteProcessException(sm.getString("nioSender.receive.failedAck"));
             return ack || fack;
         } else {
             return false;
@@ -188,7 +189,7 @@ public class NioSender extends AbstractS
 
     protected boolean write() throws IOException {
         if ( (!isConnected()) || (this.socketChannel==null && this.dataChannel==null)) {
-            throw new IOException("NioSender is not connected, this should not occur.");
+            throw new IOException(sm.getString("nioSender.not.connected"));
         }
         if ( current != null ) {
             if ( remaining > 0 ) {
@@ -219,7 +220,7 @@ public class NioSender extends AbstractS
     public synchronized void connect() throws IOException {
         if ( connecting || isConnected()) return;
         connecting = true;
-        if ( isConnected() ) throw new IOException("NioSender is already in connected state.");
+        if ( isConnected() ) throw new IOException(sm.getString("nioSender.already.connected"));
         if ( readbuf == null ) {
             readbuf = getReadBuffer();
         } else {
@@ -233,7 +234,7 @@ public class NioSender extends AbstractS
 
         if (isUdpBased()) {
             InetSocketAddress daddr = new InetSocketAddress(getAddress(),getUdpPort());
-            if ( dataChannel != null ) throw new IOException("Datagram channel has already been established. Connection might be in progress.");
+            if ( dataChannel != null ) throw new IOException(sm.getString("nioSender.datagram.already.established"));
             dataChannel = DatagramChannel.open();
             configureSocket();
             dataChannel.connect(daddr);
@@ -242,7 +243,7 @@ public class NioSender extends AbstractS
 
         } else {
             InetSocketAddress addr = new InetSocketAddress(getAddress(),getPort());
-            if ( socketChannel != null ) throw new IOException("Socket channel has already been established. Connection might be in progress.");
+            if ( socketChannel != null ) throw new IOException(sm.getString("nioSender.socketChannel.already.established"));
             socketChannel = SocketChannel.open();
             configureSocket();
             if ( socketChannel.connect(addr) ) {
@@ -306,8 +307,8 @@ public class NioSender extends AbstractS
                 }
             }
         } catch ( Exception x ) {
-            log.error("Unable to disconnect NioSender. msg="+x.getMessage());
-            if ( log.isDebugEnabled() ) log.debug("Unable to disconnect NioSender. msg="+x.getMessage(),x);
+            log.error(sm.getString("nioSender.unable.disconnect", x.getMessage()));
+            if ( log.isDebugEnabled() ) log.debug(sm.getString("nioSender.unable.disconnect", x.getMessage()),x);
         }
     }
 

Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java Thu May 21 09:58:49 2015
@@ -36,12 +36,14 @@ import org.apache.catalina.tribes.transp
 import org.apache.catalina.tribes.transport.MultiPointSender;
 import org.apache.catalina.tribes.transport.SenderState;
 import org.apache.catalina.tribes.util.Logs;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
 public class ParallelNioSender extends AbstractSender implements MultiPointSender {
 
     private static final Log log = LogFactory.getLog(ParallelNioSender.class);
+    protected static final StringManager sm = StringManager.getManager(ParallelNioSender.class);
     protected final long selectTimeout = 5000; //default 5 seconds, same as send timeout
     protected final Selector selector;
     protected final HashMap<Member, NioSender> nioSenders = new HashMap<>();
@@ -77,7 +79,7 @@ public class ParallelNioSender extends A
                     int faulty = (cx == null)?0:cx.getFaultyMembers().length;
                     if ( cx == null ) {
                         if ( x instanceof ChannelException ) cx = (ChannelException)x;
-                        else cx = new ChannelException("Parallel NIO send failed.", x);
+                        else cx = new ChannelException(sm.getString("parallelNioSender.send.failed"), x);
                     } else {
                         if (x instanceof ChannelException) {
                             cx.addFaultyMember(((ChannelException) x).getFaultyMembers());
@@ -94,10 +96,8 @@ public class ParallelNioSender extends A
             }
             if ( remaining > 0 ) {
                 //timeout has occurred
-                ChannelException cxtimeout = new ChannelException(
-                        "Operation has timed out(" + getTimeout() + " ms.).");
-                if ( cx==null ) cx = new ChannelException(
-                        "Operation has timed out(" + getTimeout() + " ms.).");
+                ChannelException cxtimeout = new ChannelException(sm.getString("parallelNioSender.operation.timedout", getTimeout()));
+                if ( cx==null ) cx = new ChannelException(sm.getString("parallelNioSender.operation.timedout", getTimeout()));
                 for (int i=0; i<senders.length; i++ ) {
                     if (!senders[i].isComplete()) {
                         cx.addFaultyMember(senders[i].getDestination(),cxtimeout);
@@ -159,20 +159,14 @@ public class ParallelNioSender extends A
                     if (state.isReady()) {
                         state.setSuspect();
                         if ( retry )
-                            log.warn("Member send is failing for:" +
-                                    sender.getDestination().getName() +
-                                    " ; Setting to suspect and retrying.");
+                            log.warn(sm.getString("parallelNioSender.send.fail.retrying", sender.getDestination().getName()));
                         else
-                            log.warn("Member send is failing for:" +
-                                    sender.getDestination().getName() +
-                                    " ; Setting to suspect.", x);
+                            log.warn(sm.getString("parallelNioSender.send.fail", sender.getDestination().getName()), x);
                     }
                 }
                 if ( !isConnected() ) {
-                    log.warn("Not retrying send for:" + sender.getDestination().getName() +
-                            "; Sender is disconnected.");
-                    ChannelException cx = new ChannelException(
-                            "Send failed, and sender is disconnected. Not retrying.", x);
+                    log.warn(sm.getString("parallelNioSender.sender.disconnected.notRetry", sender.getDestination().getName()));
+                    ChannelException cx = new ChannelException(sm.getString("parallelNioSender.sender.disconnected.sendFailed"), x);
                     cx.addFaultyMember(sender.getDestination(),x);
                     throw cx;
                 }
@@ -189,7 +183,7 @@ public class ParallelNioSender extends A
                     }
                 } else {
                     ChannelException cx = new ChannelException(
-                            "Send failed, attempt:" + sender.getAttempt() + " max:" + maxAttempts,
+                            sm.getString("parallelNioSender.sendFailed.attempt", sender.getAttempt(), maxAttempts),
                             x);
                     cx.addFaultyMember(sender.getDestination(),x);
                     throw cx;
@@ -245,7 +239,7 @@ public class ParallelNioSender extends A
                 sender.setUdpBased(isUdpBased());
                 result[i] = sender;
             }catch ( UnknownHostException x ) {
-                if (cx == null) cx = new ChannelException("Unable to setup NioSender.", x);
+                if (cx == null) cx = new ChannelException(sm.getString("parallelNioSender.unable.setup.NioSender"), x);
                 cx.addFaultyMember(destination[i], x);
             }
         }
@@ -329,7 +323,7 @@ public class ParallelNioSender extends A
                     i.remove();
                     result = true;
                 }catch ( Exception x ) {
-                    log.warn("Error during keepalive test for sender:"+sender,x);
+                    log.warn(sm.getString("parallelNioSender.error.keepalive", sender),x);
                 }
             }
         }

Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java Thu May 21 09:58:49 2015
@@ -24,8 +24,11 @@ import org.apache.catalina.tribes.Member
 import org.apache.catalina.tribes.transport.AbstractSender;
 import org.apache.catalina.tribes.transport.DataSender;
 import org.apache.catalina.tribes.transport.PooledSender;
+import org.apache.catalina.tribes.util.StringManager;
 
 public class PooledParallelSender extends PooledSender {
+    protected static final StringManager sm = StringManager.getManager(PooledParallelSender.class);
+
     protected boolean connected = true;
     public PooledParallelSender() {
         super();
@@ -33,11 +36,12 @@ public class PooledParallelSender extend
 
     @Override
     public void sendMessage(Member[] destination, ChannelMessage message) throws ChannelException {
-        if ( !connected ) throw new ChannelException("Sender not connected.");
+        if ( !connected ) throw new ChannelException(sm.getString("pooledParallelSender.sender.disconnected"));
         ParallelNioSender sender = (ParallelNioSender)getSender();
         if (sender == null) {
-            ChannelException cx = new ChannelException("Unable to retrieve a data sender, time out("+getMaxWait()+" ms) error.");
-            for (int i = 0; i < destination.length; i++) cx.addFaultyMember(destination[i], new NullPointerException("Unable to retrieve a sender from the sender pool"));
+            ChannelException cx = new ChannelException(sm.getString("pooledParallelSender.unable.retrieveSender.timeout", getMaxWait()));
+            for (int i = 0; i < destination.length; i++)
+                cx.addFaultyMember(destination[i], new NullPointerException(sm.getString("pooledParallelSender.unable.retrieveSender")));
             throw cx;
         } else {
             try {
@@ -60,7 +64,7 @@ public class PooledParallelSender extend
             AbstractSender.transferProperties(this,sender);
             return sender;
         } catch ( IOException x ) {
-            throw new RuntimeException("Unable to open NIO selector.",x);
+            throw new RuntimeException(sm.getString("pooledParallelSender.unable.open"),x);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org