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 12:14:51 UTC

svn commit: r1680802 [2/3] - in /tomcat/tc8.0.x/trunk: java/org/apache/catalina/tribes/group/ java/org/apache/catalina/tribes/group/interceptors/ java/org/apache/catalina/tribes/io/ java/org/apache/catalina/tribes/membership/ java/org/apache/catalina/t...

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Thu May 21 10:14:50 2015
@@ -42,6 +42,7 @@ import org.apache.catalina.tribes.group.
 import org.apache.catalina.tribes.group.RpcChannel;
 import org.apache.catalina.tribes.io.XByteBuffer;
 import org.apache.catalina.tribes.util.Arrays;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -55,6 +56,9 @@ public abstract class AbstractReplicated
 
     private static final long serialVersionUID = 1L;
 
+    protected static final StringManager sm =
+            StringManager.getManager(AbstractReplicatedMap.class.getPackage().getName());
+
     private final Log log = LogFactory.getLog(AbstractReplicatedMap.class);
 
     /**
@@ -200,7 +204,7 @@ public abstract class AbstractReplicated
     protected void init(MapOwner owner, Channel channel, String mapContextName,
             long timeout, int channelSendOptions,ClassLoader[] cls, boolean terminate) {
         long start = System.currentTimeMillis();
-        if (log.isInfoEnabled()) log.info("Initializing AbstractReplicatedMap with context name:"+mapContextName);
+        if (log.isInfoEnabled()) log.info(sm.getString("abstractReplicatedMap.init.start", mapContextName));
         this.mapOwner = owner;
         this.externalLoaders = cls;
         this.channelSendOptions = channelSendOptions;
@@ -228,15 +232,15 @@ public abstract class AbstractReplicated
             //state is transferred, we are ready for messaging
             broadcast(MapMessage.MSG_START, true);
         } catch (ChannelException x) {
-            log.warn("Unable to send map start message.");
+            log.warn(sm.getString("abstractReplicatedMap.unableSend.startMessage"));
             if (terminate) {
                 breakdown();
-                throw new RuntimeException("Unable to start replicated map.",x);
+                throw new RuntimeException(sm.getString("abstractReplicatedMap.unableStart"),x);
             }
         }
         long complete = System.currentTimeMillis() - start;
         if (log.isInfoEnabled())
-            log.info("AbstractReplicatedMap[" +mapContextName + "] initialization was completed in " + complete + " ms.");
+            log.info(sm.getString("abstractReplicatedMap.init.completed", mapContextName, complete));
     }
 
 
@@ -321,7 +325,7 @@ public abstract class AbstractReplicated
                     messageReceived(resp[i].getMessage(), resp[i].getSource());
                 }
             } else {
-                log.warn("broadcast received 0 replies, probably a timeout.");
+                log.warn(sm.getString("abstractReplicatedMap.broadcast.noReplies"));
             }
         } else {
             channel.send(channel.getMembers(),msg,channelSendOptions);
@@ -433,7 +437,7 @@ public abstract class AbstractReplicated
                                          entry.getBackupNodes());
                     rentry.resetDiff();
                 } catch (IOException x) {
-                    log.error("Unable to diff object. Will replicate the entire object instead.", x);
+                    log.error(sm.getString("abstractReplicatedMap.unable.diffObject"), x);
                 } finally {
                     rentry.unlock();
                 }
@@ -457,7 +461,7 @@ public abstract class AbstractReplicated
                     channel.send(entry.getBackupNodes(), msg, channelSendOptions);
                 }
             } catch (ChannelException x) {
-                log.error("Unable to replicate data.", x);
+                log.error(sm.getString("abstractReplicatedMap.unable.replicate"), x);
             }
         } //end if
 
@@ -497,15 +501,15 @@ public abstract class AbstractReplicated
                     }
                     stateTransferred = true;
                 } else {
-                    log.warn("Transfer state, 0 replies, probably a timeout.");
+                    log.warn(sm.getString("abstractReplicatedMap.transferState.noReplies"));
                 }
             }
         } catch (ChannelException x) {
-            log.error("Unable to transfer LazyReplicatedMap state.", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.transferState"), x);
         } catch (IOException x) {
-            log.error("Unable to transfer LazyReplicatedMap state.", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.transferState"), x);
         } catch (ClassNotFoundException x) {
-            log.error("Unable to transfer LazyReplicatedMap state.", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.transferState"), x);
         }
     }
 
@@ -586,9 +590,9 @@ public abstract class AbstractReplicated
                 memberAlive(mapmsg.getPrimary());
             }
         } catch (IOException x ) {
-            log.error("Unable to deserialize MapMessage.",x);
+            log.error(sm.getString("abstractReplicatedMap.unable.deserialize.MapMessage"),x);
         } catch (ClassNotFoundException x ) {
-            log.error("Unable to deserialize MapMessage.",x);
+            log.error(sm.getString("abstractReplicatedMap.unable.deserialize.MapMessage"),x);
         }
     }
 
@@ -605,10 +609,10 @@ public abstract class AbstractReplicated
         try {
             mapmsg.deserialize(getExternalLoaders());
         } catch (IOException x) {
-            log.error("Unable to deserialize MapMessage.", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.deserialize.MapMessage"), x);
             return;
         } catch (ClassNotFoundException x) {
-            log.error("Unable to deserialize MapMessage.", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.deserialize.MapMessage"), x);
             return;
         }
         if ( log.isTraceEnabled() )
@@ -666,7 +670,7 @@ public abstract class AbstractReplicated
                         try {
                             diff.applyDiff(mapmsg.getDiffValue(), 0, mapmsg.getDiffValue().length);
                         } catch (Exception x) {
-                            log.error("Unable to apply diff to key:" + entry.getKey(), x);
+                            log.error(sm.getString("abstractReplicatedMap.unableApply.diff", entry.getKey()), x);
                         } finally {
                             diff.unlock();
                         }
@@ -748,7 +752,7 @@ public abstract class AbstractReplicated
                             entry.setBackupNodes(backup);
                             entry.setPrimary(channel.getLocalMember(false));
                         } catch (ChannelException x) {
-                            log.error("Unable to select backup node.", x);
+                            log.error(sm.getString("abstractReplicatedMap.unableSelect.backup"), x);
                         } //catch
                     } //end if
                 } //while
@@ -791,7 +795,7 @@ public abstract class AbstractReplicated
             }
         }
         if (log.isInfoEnabled())
-            log.info("Member["+member+"] disappeared. Related map entries will be relocated to the new node.");
+            log.info(sm.getString("abstractReplicatedMap.member.disappeared", member));
         long start = System.currentTimeMillis();
         Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator();
         while (i.hasNext()) {
@@ -805,7 +809,7 @@ public abstract class AbstractReplicated
                     entry.setBackupNodes(backup);
                     entry.setPrimary(channel.getLocalMember(false));
                 } catch (ChannelException x) {
-                    log.error("Unable to relocate[" + entry.getKey() + "] to a new backup node", x);
+                    log.error(sm.getString("abstractReplicatedMap.unable.relocate", entry.getKey()), x);
                 }
             } else if (member.equals(entry.getPrimary())) {
                 if (log.isDebugEnabled()) log.debug("[2] Primary disappeared");
@@ -836,13 +840,13 @@ public abstract class AbstractReplicated
                     if ( mapOwner!=null ) mapOwner.objectMadePrimary(entry.getKey(),entry.getValue());
 
                 } catch (ChannelException x) {
-                    log.error("Unable to relocate[" + entry.getKey() + "] to a new backup node", x);
+                    log.error(sm.getString("abstractReplicatedMap.unable.relocate", entry.getKey()), x);
                 }
             }
 
         } //while
         long complete = System.currentTimeMillis() - start;
-        if (log.isInfoEnabled()) log.info("Relocation of map entries was complete in " + complete + " ms.");
+        if (log.isInfoEnabled()) log.info(sm.getString("abstractReplicatedMap.relocate.complete", complete));
     }
 
     public int getNextBackupIndex() {
@@ -870,7 +874,7 @@ public abstract class AbstractReplicated
         try {
             ping(accessTimeout);
         }catch ( Exception x ) {
-            log.error("Unable to send AbstractReplicatedMap.ping message",x);
+            log.error(sm.getString("abstractReplicatedMap.heartbeat.failed"),x);
         }
     }
 
@@ -897,7 +901,7 @@ public abstract class AbstractReplicated
                 getChannel().send(getMapMembers(), msg, getChannelSendOptions());
             }
         } catch ( ChannelException x ) {
-            log.error("Unable to replicate out data for a LazyReplicatedMap.remove operation",x);
+            log.error(sm.getString("abstractReplicatedMap.unable.remove"),x);
         }
         return entry!=null?entry.getValue():null;
     }
@@ -927,7 +931,7 @@ public abstract class AbstractReplicated
                     Response[] resp = getRpcChannel().send(entry.getBackupNodes(),msg, RpcChannel.FIRST_REPLY, Channel.SEND_OPTIONS_DEFAULT, getRpcTimeout());
                     if (resp == null || resp.length == 0) {
                         //no responses
-                        log.warn("Unable to retrieve remote object for key:" + key);
+                        log.warn(sm.getString("abstractReplicatedMap.unable.retrieve", key));
                         return null;
                     }
                     msg = (MapMessage) resp[0].getMessage();
@@ -961,7 +965,7 @@ public abstract class AbstractReplicated
                 if ( getMapOwner()!=null ) getMapOwner().objectMadePrimary(key, entry.getValue());
 
             } catch (Exception x) {
-                log.error("Unable to replicate out data for a LazyReplicatedMap.get operation", x);
+                log.error(sm.getString("abstractReplicatedMap.unable.get"), x);
                 return null;
             }
         }
@@ -1027,7 +1031,7 @@ public abstract class AbstractReplicated
                 entry.setBackupNodes(backup);
             }
         } catch (ChannelException x) {
-            log.error("Unable to replicate out data for a LazyReplicatedMap.put operation", x);
+            log.error(sm.getString("abstractReplicatedMap.unable.put"), x);
         }
         innerMap.put(key,entry);
         return old;
@@ -1080,7 +1084,7 @@ public abstract class AbstractReplicated
 
     @Override
     public Object clone() {
-        throw new UnsupportedOperationException("This operation is not valid on a replicated map");
+        throw new UnsupportedOperationException(sm.getString("abstractReplicatedMap.unsupport.operation"));
     }
 
     /**
@@ -1416,7 +1420,7 @@ public abstract class AbstractReplicated
             try {
                 return key(null);
             } catch ( Exception x ) {
-                throw new RuntimeException("Deserialization error of the MapMessage.key", x);
+                throw new RuntimeException(sm.getString("mapMessage.deserialize.error.key"), x);
             }
         }
 
@@ -1436,7 +1440,7 @@ public abstract class AbstractReplicated
             try {
                 return value(null);
             } catch ( Exception x ) {
-                throw new RuntimeException("Deserialization error of the MapMessage.value", x);
+                throw new RuntimeException(sm.getString("mapMessage.deserialize.error.value"), x);
             }
         }
 

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java Thu May 21 10:14:50 2015
@@ -173,7 +173,7 @@ public class LazyReplicatedMap<K,V> exte
                 //we published out to a backup, mark the test success
                 success = true;
             }catch ( ChannelException x ) {
-                log.error("Unable to replicate backup key:"+key+" to backup:"+next+". Reason:"+x.getMessage(),x);
+                log.error(sm.getString("lazyReplicatedMap.unableReplicate.backup", key, next, x.getMessage()), x);
             }
             try {
                 //publish the data out to all nodes
@@ -189,7 +189,7 @@ public class LazyReplicatedMap<K,V> exte
                 //log the error, but proceed, this should only happen if a node went down,
                 //and if the node went down, then it can't receive the message, the others
                 //should still get it.
-                log.error("Unable to replicate proxy key:"+key+" to backup:"+next+". Reason:"+x.getMessage(),x);
+                log.error(sm.getString("lazyReplicatedMap.unableReplicate.proxy", key, next, x.getMessage()), x);
             }
         } while ( !success && (firstIdx!=nextIdx));
         return backup;

Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties?rev=1680802&view=auto
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties (added)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties Thu May 21 10:14:50 2015
@@ -0,0 +1,43 @@
+# 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.
+
+abstractReplicatedMap.init.start=Initializing AbstractReplicatedMap with context name:{0}
+abstractReplicatedMap.unableSend.startMessage=Unable to send map start message.
+abstractReplicatedMap.unableStart=Unable to start replicated map.
+abstractReplicatedMap.init.completed=AbstractReplicatedMap[{0}] initialization was completed in {1} ms.
+abstractReplicatedMap.broadcast.noReplies=broadcast received 0 replies, probably a timeout.
+abstractReplicatedMap.unable.diffObject=Unable to diff object. Will replicate the entire object instead.
+abstractReplicatedMap.unable.replicate=Unable to replicate data.
+abstractReplicatedMap.transferState.noReplies=Transfer state, 0 replies, probably a timeout.
+abstractReplicatedMap.unable.transferState=Unable to transfer LazyReplicatedMap state.
+abstractReplicatedMap.unable.deserialize.MapMessage=Unable to deserialize MapMessage.
+abstractReplicatedMap.unableApply.diff=Unable to apply diff to key:{0}
+abstractReplicatedMap.unableSelect.backup=Unable to select backup node.
+abstractReplicatedMap.member.disappeared=Member[{0}] disappeared. Related map entries will be relocated to the new node.
+abstractReplicatedMap.unable.relocate=Unable to relocate[{0}] to a new backup node
+abstractReplicatedMap.relocate.complete=Relocation of map entries was complete in {0} ms.
+abstractReplicatedMap.heartbeat.failed=Unable to send AbstractReplicatedMap.ping message
+abstractReplicatedMap.unable.remove=Unable to replicate out data for a LazyReplicatedMap.remove operation
+abstractReplicatedMap.unable.retrieve=Unable to retrieve remote object for key:{0}
+abstractReplicatedMap.unable.get=Unable to replicate out data for a LazyReplicatedMap.get operation
+abstractReplicatedMap.unable.put=Unable to replicate out data for a LazyReplicatedMap.put operation
+abstractReplicatedMap.unsupport.operation=This operation is not valid on a replicated map
+mapMessage.deserialize.error.key=Deserialization error of the MapMessage.key
+mapMessage.deserialize.error.value=Deserialization error of the MapMessage.value
+lazyReplicatedMap.unableReplicate.backup=Unable to replicate backup key:{0} to backup:{1}. Reason:{2}
+lazyReplicatedMap.unableReplicate.proxy=Unable to replicate proxy key:{0} to backup:{1}. Reason:{2}
+replicatedMap.member.disappeared=Member[{0}] disappeared. Related map entries will be relocated to the new node.
+replicatedMap.unable.relocate=Unable to relocate[{0}] to a new backup node
+replicatedMap.relocate.complete=Relocation of map entries was complete in {0} ms.
\ No newline at end of file

Propchange: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java Thu May 21 10:14:50 2015
@@ -151,7 +151,7 @@ public class ReplicatedMap<K,V> extends
             }
         }
         if (log.isInfoEnabled())
-            log.info("Member["+member+"] disappeared. Related map entries will be relocated to the new node.");
+            log.info(sm.getString("replicatedMap.member.disappeared", member));
         long start = System.currentTimeMillis();
         Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator();
         while (i.hasNext()) {
@@ -169,7 +169,7 @@ public class ReplicatedMap<K,V> extends
                     entry.setBackupNodes(backup);
                     entry.setPrimary(channel.getLocalMember(false));
                 } catch (ChannelException x) {
-                    log.error("Unable to relocate[" + entry.getKey() + "] to a new backup node", x);
+                    log.error(sm.getString("replicatedMap.unable.relocate", entry.getKey()), x);
                 }
             } else if (member.equals(entry.getPrimary())) {
                 entry.setPrimary(null);
@@ -195,13 +195,13 @@ public class ReplicatedMap<K,V> extends
                     if ( mapOwner!=null ) mapOwner.objectMadePrimary(entry.getKey(),entry.getValue());
 
                 } catch (ChannelException x) {
-                    log.error("Unable to relocate[" + entry.getKey() + "] to a new backup node", x);
+                    log.error(sm.getString("replicatedMap.unable.relocate", entry.getKey()), x);
                 }
             }
 
         } //while
         long complete = System.currentTimeMillis() - start;
-        if (log.isInfoEnabled()) log.info("Relocation of map entries was complete in " + complete + " ms.");
+        if (log.isInfoEnabled()) log.info(sm.getString("replicatedMap.relocate.complete", complete));
     }
 
     @Override

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings.properties?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings.properties (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings.properties Thu May 21 10:14:50 2015
@@ -13,24 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-IDataSender.ack.eof=EOF reached at local port [{0}:{1,number,integer}]
-IDataSender.ack.missing=Unable to read acknowledgement from [{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting socket, and trying again.
-IDataSender.ack.wrong=Missing correct ACK after 10 bytes read at local port [{0}:{1,number,integer}]
-IDataSender.closeSocket=Sender close socket to [{0}:{1,number,integer}] (close count {2,number,integer})
-IDataSender.disconnect=Sender disconnect from [{0}:{1,number,integer}] (disconnect count {2,number,integer})
-IDataSender.openSocket=Sender open socket to [{0}:{1,number,integer}] (open count {2,number,integer})
-IDataSender.openSocket.failure=Open sender socket [{0}:{1,number,integer}] failure! (open failure count {2,number,integer})
-IDataSender.send.again=Send data again to [{0}:{1,number,integer}]
-
-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
-
+pooledSender.closed.queue=Queue is closed
 PooledSender.senderDisconnectFail=Failed to disconnect sender
+receiverBase.bind.failed=Failed bind replication listener on address:{0}
+receiverBase.socket.bind=Receiver Server Socket bound to:{0}
+receiverBase.unable.bind=Unable to bind server socket to:{0} throwing error.
+receiverBase.udp.bind=UDP Receiver Server Socket bound to:{0}
+receiverBase.unable.bind.udp=Unable to bind UDP socket to:{0} throwing error.
\ No newline at end of file

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings_es.properties?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings_es.properties (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings_es.properties Thu May 21 10:14:50 2015
@@ -12,12 +12,12 @@
 # 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.
-IDataSender.ack.eof = EOF alcanzado en puerto local [{0}\:{1,number,integer}]
-IDataSender.ack.missing = No puedo leer reconocimiento desde [{0}\:{1,number,integer}] en {2,number,integer} ms. Desconectando conector e intentando otra vez.
-IDataSender.ack.wrong = Falta ACK correcto tras 10 bytes le\u00EDdos en puerto local [{0}\:{1,number,integer}]
-IDataSender.closeSocket = El remitente cerr\u00F3 el conector con [{0}\:{1,number,integer}] (contador de cierre {2,number,integer})
-IDataSender.disconnect = Remitente desconectado de [{0}\:{1,number,integer}] (contador de desconexi\u00F3n {2,number,integer})
-IDataSender.openSocket = Remitente abri\u00F3 conector con [{0}\:{1,number,integer}] (contador de apertura {2,number,integer})
-IDataSender.openSocket.failure = \u00A1No pude abrir conector de remitente [{0}\:{1,number,integer}]\! (contador de fallo de apertura {2,number,integer})
-IDataSender.send.again = Enviar datos de nuevo a [{0}\:{1,number,integer}]
+bioSender.ack.eof = EOF alcanzado en puerto local [{0}\:{1,number,integer}]
+bioSender.ack.missing = No puedo leer reconocimiento desde [{0}\:{1,number,integer}] en {2,number,integer} ms. Desconectando conector e intentando otra vez.
+bioSender.ack.wrong = Falta ACK correcto tras 10 bytes le\u00EDdos en puerto local [{0}\:{1,number,integer}]
+bioSender.closeSocket = El remitente cerr\u00F3 el conector con [{0}\:{1,number,integer}] (contador de cierre {2,number,integer})
+bioSender.disconnect = Remitente desconectado de [{0}\:{1,number,integer}] (contador de desconexi\u00F3n {2,number,integer})
+bioSender.openSocket = Remitente abri\u00F3 conector con [{0}\:{1,number,integer}] (contador de apertura {2,number,integer})
+bioSender.openSocket.failure = \u00A1No pude abrir conector de remitente [{0}\:{1,number,integer}]\! (contador de fallo de apertura {2,number,integer})
+bioSender.send.again = Enviar datos de nuevo a [{0}\:{1,number,integer}]
 PooledSender.senderDisconnectFail = No pude desconectar al remitente

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/PooledSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/PooledSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/PooledSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/PooledSender.java Thu May 21 10:14:50 2015
@@ -27,8 +27,7 @@ import org.apache.juli.logging.LogFactor
 public abstract class PooledSender extends AbstractSender implements MultiPointSender {
 
     private static final Log log = LogFactory.getLog(PooledSender.class);
-    protected static final StringManager sm =
-        StringManager.getManager(Constants.Package);
+    protected static final StringManager sm = StringManager.getManager(Constants.Package);
 
     private final SenderQueue queue;
     private int poolSize = 25;
@@ -160,7 +159,7 @@ public abstract class PooledSender exten
         public synchronized DataSender getSender(long timeout) {
             long start = System.currentTimeMillis();
             while ( true ) {
-                if (!isOpen)throw new IllegalStateException("Queue is closed");
+                if (!isOpen)throw new IllegalStateException(sm.getString("pooledSender.closed.queue"));
                 DataSender sender = null;
                 if (notinuse.size() == 0 && inuse.size() < limit) {
                     sender = parent.getNewDataSender();

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java Thu May 21 10:14:50 2015
@@ -31,6 +31,7 @@ import org.apache.catalina.tribes.Channe
 import org.apache.catalina.tribes.MessageListener;
 import org.apache.catalina.tribes.io.ListenCallback;
 import org.apache.catalina.tribes.util.ExecutorFactory;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -42,6 +43,8 @@ public abstract class ReceiverBase imple
 
     private static final Object bindLock = new Object();
 
+    protected static final StringManager sm = StringManager.getManager(Constants.Package);
+
     private MessageListener listener;
     private String host = "auto";
     private InetAddress bind;
@@ -157,7 +160,7 @@ public abstract class ReceiverBase imple
                     log.debug("Starting replication listener on address:"+ host);
                 bind = java.net.InetAddress.getByName(host);
             } catch (IOException ioe) {
-                log.error("Failed bind replication listener on address:"+ host, ioe);
+                log.error(sm.getString("receiverBase.bind.failed", host), ioe);
             }
         }
         return bind;
@@ -183,13 +186,12 @@ public abstract class ReceiverBase imple
                     addr = new InetSocketAddress(getBind(), port);
                     socket.bind(addr);
                     setPort(port);
-                    log.info("Receiver Server Socket bound to:"+addr);
+                    log.info(sm.getString("receiverBase.socket.bind", addr));
                     retries = 0;
                 } catch ( IOException x) {
                     retries--;
                     if ( retries <= 0 ) {
-                        log.info("Unable to bind server socket to:" + addr +
-                                " throwing error.");
+                        log.info(sm.getString("receiverBase.unable.bind", addr));
                         throw x;
                     }
                     port++;
@@ -213,12 +215,12 @@ public abstract class ReceiverBase imple
                 addr = new InetSocketAddress(getBind(), portstart);
                 socket.bind(addr);
                 setUdpPort(portstart);
-                log.info("UDP Receiver Server Socket bound to:"+addr);
+                log.info(sm.getString("receiverBase.udp.bind", addr));
                 return 0;
             }catch ( IOException x) {
                 retries--;
                 if ( retries <= 0 ) {
-                    log.info("Unable to bind UDP socket to:"+addr+" throwing error.");
+                    log.info(sm.getString("receiverBase.unable.bind.udp", addr));
                     throw x;
                 }
                 portstart++;

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReceiver.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReceiver.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReceiver.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReceiver.java Thu May 21 10:14:50 2015
@@ -24,6 +24,7 @@ import org.apache.catalina.tribes.io.Obj
 import org.apache.catalina.tribes.transport.AbstractRxTask;
 import org.apache.catalina.tribes.transport.ReceiverBase;
 import org.apache.catalina.tribes.transport.RxTaskPool;
+import org.apache.catalina.tribes.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -31,6 +32,9 @@ public class BioReceiver extends Receive
 
     private static final Log log = LogFactory.getLog(BioReceiver.class);
 
+    protected static final StringManager sm =
+            StringManager.getManager(BioReceiver.class.getPackage().getName());
+
     protected ServerSocket serverSocket;
 
     public BioReceiver() {
@@ -43,7 +47,7 @@ public class BioReceiver extends Receive
         try {
             setPool(new RxTaskPool(getMaxThreads(),getMinThreads(),this));
         } catch (Exception x) {
-            log.fatal("ThreadPool can initilzed. Listener not started", x);
+            log.fatal(sm.getString("bioReceiver.threadpool.fail"), x);
             if ( x instanceof IOException ) throw (IOException)x;
             else throw new IOException(x.getMessage());
         }
@@ -54,7 +58,7 @@ public class BioReceiver extends Receive
             t.setDaemon(true);
             t.start();
         } catch (Exception x) {
-            log.fatal("Unable to start cluster receiver", x);
+            log.fatal(sm.getString("bioReceiver.start.fail"), x);
             if ( x instanceof IOException ) throw (IOException)x;
             else throw new IOException(x.getMessage());
         }
@@ -79,7 +83,7 @@ public class BioReceiver extends Receive
             this.serverSocket.close();
         } catch (Exception x) {
             if (log.isDebugEnabled()) {
-                log.debug("Failed to close socket", x);
+                log.debug(sm.getString("bioReceiver.socket.closeFailed"), x);
             }
         }
         super.stop();
@@ -100,13 +104,13 @@ public class BioReceiver extends Receive
         try {
             listen();
         } catch (Exception x) {
-            log.error("Unable to run replication listener.", x);
+            log.error(sm.getString("bioReceiver.run.fail"), x);
         }
     }
 
     public void listen() throws Exception {
         if (doListen()) {
-            log.warn("ServerSocket already started");
+            log.warn(sm.getString("bioReceiver.already.started"));
             return;
         }
         setListen(true);
@@ -115,7 +119,7 @@ public class BioReceiver extends Receive
             Socket socket = null;
             if ( getTaskPool().available() < 1 ) {
                 if ( log.isWarnEnabled() )
-                    log.warn("All BIO server replication threads are busy, unable to handle more requests until a thread is freed up.");
+                    log.warn(sm.getString("bioReceiver.threads.busy"));
             }
             BioReplicationTask task = (BioReplicationTask)getTaskPool().getRxTask();
             if ( task == null ) continue; //should never happen

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReplicationTask.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReplicationTask.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReplicationTask.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReplicationTask.java Thu May 21 10:14:50 2015
@@ -28,6 +28,7 @@ import org.apache.catalina.tribes.io.Lis
 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.util.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -43,9 +44,11 @@ import org.apache.juli.logging.LogFactor
  */
 public class BioReplicationTask extends AbstractRxTask {
 
-
     private static final Log log = LogFactory.getLog( BioReplicationTask.class );
 
+    protected static final StringManager sm =
+            StringManager.getManager(BioReplicationTask.class.getPackage().getName());
+
     protected Socket socket;
     protected ObjectReader reader;
 
@@ -61,20 +64,20 @@ public class BioReplicationTask extends
         try {
             drainSocket();
         } catch ( Exception x ) {
-            log.error("Unable to service bio socket", x);
+            log.error(sm.getString("bioReplicationTask.unable.service"), x);
         }finally {
             try {
                 socket.close();
             }catch (Exception e) {
                 if (log.isDebugEnabled()) {
-                    log.debug("Failed to close socket", e);
+                    log.debug(sm.getString("bioReplicationTask.socket.closeFailed"), e);
                 }
             }
             try {
                 reader.close();
             }catch (Exception e) {
                 if (log.isDebugEnabled()) {
-                    log.debug("Failed to close reader", e);
+                    log.debug(sm.getString("bioReplicationTask.reader.closeFailed"), e);
                 }
             }
             reader = null;
@@ -113,7 +116,7 @@ public class BioReplicationTask extends
                     if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(Constants.ACK_COMMAND);
                 }catch  ( Exception x ) {
                     if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(Constants.FAIL_ACK_COMMAND);
-                    log.error("Error thrown from messageDataReceived.",x);
+                    log.error(sm.getString("bioReplicationTask.messageDataReceived.error"),x);
                 }
                 if ( getUseBufferPool() ) {
                     BufferPool.getBufferPool().returnBuffer(msgs[i].getMessage());
@@ -159,7 +162,7 @@ public class BioReplicationTask extends
                 log.trace("ACK sent to " + socket.getPort());
             }
         } catch ( java.io.IOException x ) {
-            log.warn("Unable to send ACK back through channel, channel disconnected?: "+x.getMessage());
+            log.warn(sm.getString("bioReplicationTask.unable.sendAck", x.getMessage()));
         }
     }
 
@@ -170,14 +173,14 @@ public class BioReplicationTask extends
             socket.close();
         }catch (Exception e) {
             if (log.isDebugEnabled()) {
-                log.debug("Failed to close socket", e);
+                log.debug(sm.getString("bioReplicationTask.socket.closeFailed"), e);
             }
         }
         try {
             reader.close();
         }catch (Exception e) {
             if (log.isDebugEnabled()) {
-                log.debug("Failed to close reader", e);
+                log.debug(sm.getString("bioReplicationTask.reader.closeFailed"), e);
             }
         }
         reader = null;

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioSender.java Thu May 21 10:14:50 2015
@@ -45,7 +45,8 @@ public class BioSender extends AbstractS
     /**
      * The string manager for this package.
      */
-    protected static final StringManager sm = StringManager.getManager(Constants.Package);
+    protected static final StringManager sm =
+            StringManager.getManager(BioSender.class.getPackage().getName());
 
     // ----------------------------------------------------- Instance Variables
 
@@ -90,7 +91,7 @@ public class BioSender extends AbstractS
         closeSocket();
         if (connect) {
             if (log.isDebugEnabled())
-                log.debug(sm.getString("IDataSender.disconnect", getAddress().getHostAddress(), new Integer(getPort()), new Long(0)));
+                log.debug(sm.getString("bioSender.disconnect", getAddress().getHostAddress(), new Integer(getPort()), new Long(0)));
         }
 
     }
@@ -107,7 +108,7 @@ public class BioSender extends AbstractS
         } catch (IOException x) {
             SenderState.getSenderState(getDestination()).setSuspect();
             exception = x;
-            if (log.isTraceEnabled()) log.trace(sm.getString("IDataSender.send.again", getAddress().getHostAddress(),new Integer(getPort())),x);
+            if (log.isTraceEnabled()) log.trace(sm.getString("bioSender.send.again", getAddress().getHostAddress(),new Integer(getPort())),x);
             while ( getAttempt()<getMaxRetryAttempts() ) {
                 try {
                     setAttempt(getAttempt()+1);
@@ -165,11 +166,11 @@ public class BioSender extends AbstractS
            setRequestCount(0);
            setConnectTime(System.currentTimeMillis());
            if (log.isDebugEnabled())
-               log.debug(sm.getString("IDataSender.openSocket", getAddress().getHostAddress(), new Integer(getPort()), new Long(0)));
+               log.debug(sm.getString("bioSender.openSocket", getAddress().getHostAddress(), new Integer(getPort()), new Long(0)));
       } catch (IOException ex1) {
           SenderState.getSenderState(getDestination()).setSuspect();
           if (log.isDebugEnabled())
-              log.debug(sm.getString("IDataSender.openSocket.failure",getAddress().getHostAddress(), new Integer(getPort()),new Long(0)), ex1);
+              log.debug(sm.getString("bioSender.openSocket.failure",getAddress().getHostAddress(), new Integer(getPort()),new Long(0)), ex1);
           throw (ex1);
         }
 
@@ -196,7 +197,7 @@ public class BioSender extends AbstractS
             setRequestCount(0);
             setConnected(false);
             if (log.isDebugEnabled())
-                log.debug(sm.getString("IDataSender.closeSocket",getAddress().getHostAddress(), new Integer(getPort()),new Long(0)));
+                log.debug(sm.getString("bioSender.closeSocket",getAddress().getHostAddress(), new Integer(getPort()),new Long(0)));
        }
     }
 
@@ -256,13 +257,13 @@ public class BioSender extends AbstractS
                 i = soIn.read();
             }
             if (!ackReceived) {
-                if (i == -1) throw new IOException(sm.getString("IDataSender.ack.eof",getAddress(), new Integer(socket.getLocalPort())));
-                else throw new IOException(sm.getString("IDataSender.ack.wrong",getAddress(), new Integer(socket.getLocalPort())));
+                if (i == -1) throw new IOException(sm.getString("bioSender.ack.eof",getAddress(), new Integer(socket.getLocalPort())));
+                else throw new IOException(sm.getString("bioSender.ack.wrong",getAddress(), new Integer(socket.getLocalPort())));
             } else if ( failAckReceived && getThrowOnFailedAck()) {
-                throw new RemoteProcessException("Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA");
+                throw new RemoteProcessException(sm.getString("bioSender.fail.AckReceived"));
             }
         } catch (IOException x) {
-            String errmsg = sm.getString("IDataSender.ack.missing", getAddress(),new Integer(socket.getLocalPort()), new Long(getTimeout()));
+            String errmsg = sm.getString("bioSender.ack.missing", getAddress(),new Integer(socket.getLocalPort()), new Long(getTimeout()));
             if ( SenderState.getSenderState(getDestination()).isReady() ) {
                 SenderState.getSenderState(getDestination()).setSuspect();
                 if ( log.isWarnEnabled() ) log.warn(errmsg, x);

Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/LocalStrings.properties?rev=1680802&view=auto
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/LocalStrings.properties (added)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/LocalStrings.properties Thu May 21 10:14:50 2015
@@ -0,0 +1,37 @@
+# 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.
+
+bioReceiver.threadpool.fail=ThreadPool can initilzed. Listener not started
+bioReceiver.start.fail=Unable to start cluster receiver
+bioReceiver.socket.closeFailed=Failed to close socket
+bioReceiver.run.fail=Unable to run replication listener.
+bioReceiver.already.started=ServerSocket already started
+bioReceiver.threads.busy=All BIO server replication threads are busy, unable to handle more requests until a thread is freed up.
+bioReplicationTask.unable.service=Unable to service bio socket
+bioReplicationTask.socket.closeFailed=Failed to close socket
+bioReplicationTask.reader.closeFailed=Failed to close reader
+bioReplicationTask.messageDataReceived.error=Error thrown from messageDataReceived.
+bioReplicationTask.unable.sendAck=Unable to send ACK back through channel, channel disconnected?: {0}
+bioSender.disconnect=Sender disconnect from [{0}:{1,number,integer}] (disconnect count {2,number,integer})
+bioSender.send.again=Send data again to [{0}:{1,number,integer}]
+bioSender.openSocket=Sender open socket to [{0}:{1,number,integer}] (open count {2,number,integer})
+bioSender.openSocket.failure=Open sender socket [{0}:{1,number,integer}] failure! (open failure count {2,number,integer})
+bioSender.closeSocket=Sender close socket to [{0}:{1,number,integer}] (close count {2,number,integer})
+bioSender.ack.eof=EOF reached at local port [{0}:{1,number,integer}]
+bioSender.ack.wrong=Missing correct ACK after 10 bytes read at local port [{0}:{1,number,integer}]
+bioSender.fail.AckReceived=Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA
+bioSender.ack.missing=Unable to read acknowledgement from [{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting socket, and trying again.
+pooledMultiSender.unable.retrieve.sender=Unable to retrieve a data sender, time out{0} ms) error.
+pooledMultiSender.retrieve.fail=Unable to retrieve a sender from the sender pool
\ No newline at end of file

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

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java Thu May 21 10:14:50 2015
@@ -23,9 +23,12 @@ import org.apache.catalina.tribes.transp
 import org.apache.catalina.tribes.transport.DataSender;
 import org.apache.catalina.tribes.transport.MultiPointSender;
 import org.apache.catalina.tribes.transport.PooledSender;
+import org.apache.catalina.tribes.util.StringManager;
 
 public class PooledMultiSender extends PooledSender {
 
+    protected static final StringManager sm =
+            StringManager.getManager(PooledMultiSender.class.getPackage().getName());
 
     public PooledMultiSender() {
         // NO-OP
@@ -37,8 +40,9 @@ public class PooledMultiSender extends P
         try {
             sender = (MultiPointSender)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("pooledMultiSender.unable.retrieve.sender", getMaxWait()));
+                for (int i = 0; i < destination.length; i++)
+                    cx.addFaultyMember(destination[i], new NullPointerException(sm.getString("pooledMultiSender.retrieve.fail")));
                 throw cx;
             } else {
                 sender.sendMessage(destination, msg);

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java Thu May 21 10:14:50 2015
@@ -22,6 +22,9 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.catalina.tribes.ChannelMessage;
 import org.apache.catalina.tribes.Member;
 import org.apache.catalina.tribes.group.InterceptorPayload;
+import org.apache.catalina.tribes.util.StringManager;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
 
 
 
@@ -29,12 +32,13 @@ import org.apache.catalina.tribes.group.
  * A fast queue that remover thread lock the adder thread. <br>Limit the queue
  * length when you have strange producer thread problems.
  *
- * FIXME add i18n support to log messages
  * @author Peter Rossbach
  */
 public class FastQueue {
 
-    private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog(FastQueue.class);
+    private static final Log log = LogFactory.getLog(FastQueue.class);
+    protected static final StringManager sm =
+            StringManager.getManager(FastQueue.class.getPackage().getName());
 
     /**
      * This is the actual queue
@@ -195,7 +199,7 @@ public class FastQueue {
 
         if (!enabled) {
             if (log.isInfoEnabled())
-                log.info("FastQueue.add: queue disabled, add aborted");
+                log.info(sm.getString("fastQueue.queue.disabled"));
             return false;
         }
 
@@ -218,7 +222,7 @@ public class FastQueue {
                 } else {
                     if (last == null) {
                         ok = false;
-                        log.error("FastQueue.add: Could not add, since last is null although size is "+ size.get() + " (>0)");
+                        log.error(sm.getString("fastQueue.last.null", size.get()));
                     } else {
                         last.append(element);
                         last = element;
@@ -228,10 +232,10 @@ public class FastQueue {
             }
 
             if (first == null) {
-                log.error("FastQueue.add: first is null, size is " + size.get() + " at end of add");
+                log.error(sm.getString("fastQueue.first.null", size.get()));
             }
             if (last == null) {
-                log.error("FastQueue.add: last is null, size is " + size.get() + " at end of add");
+                log.error(sm.getString("fastQueue.last.null.end", size.get()));
             }
 
             if (log.isTraceEnabled()) log.trace("FastQueue.add: add ending with size " + size.get());
@@ -252,7 +256,7 @@ public class FastQueue {
 
         if (!enabled) {
             if (log.isInfoEnabled())
-                log.info("FastQueue.remove: queue disabled, remove aborted");
+                log.info(sm.getString("fastQueue.remove.queue.disabled"));
             return null;
         }
 
@@ -262,10 +266,10 @@ public class FastQueue {
             if (!gotLock) {
                 if (enabled) {
                     if (log.isInfoEnabled())
-                        log.info("FastQueue.remove: Remove aborted although queue enabled");
+                        log.info(sm.getString("fastQueue.remove.aborted"));
                 } else {
                     if (log.isInfoEnabled())
-                        log.info("FastQueue.remove: queue disabled, remove aborted");
+                        log.info(sm.getString("fastQueue.remove.queue.disabled"));
                 }
                 return null;
             }

Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties?rev=1680802&view=auto
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties (added)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties Thu May 21 10:14:50 2015
@@ -0,0 +1,21 @@
+# 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.
+
+fastQueue.queue.disabled=FastQueue.add: queue disabled, add aborted
+fastQueue.last.null=FastQueue.add: Could not add, since last is null although size is {0} (>0)
+fastQueue.first.null=FastQueue.add: first is null, size is {0} at end of add
+fastQueue.last.null.end=FastQueue.add: last is null, size is {0} at end of add
+fastQueue.remove.queue.disabled=FastQueue.remove: queue disabled, remove aborted
+fastQueue.remove.aborted=FastQueue.remove: Remove aborted although queue enabled
\ No newline at end of file

Propchange: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties?rev=1680802&view=auto
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties (added)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties Thu May 21 10:14:50 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/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java Thu May 21 10:14:50 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;
@@ -50,7 +49,7 @@ public class NioReceiver extends Receive
      * The string manager for this package.
      */
     protected static final StringManager sm =
-            StringManager.getManager(Constants.Package);
+            StringManager.getManager(NioReceiver.class.getPackage().getName());
 
     private volatile boolean running = false;
 
@@ -80,7 +79,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 +90,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());
         }
@@ -216,7 +215,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,
@@ -244,7 +243,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;
         }
 
@@ -314,10 +313,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);
             }
 
         }
@@ -354,11 +353,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);
             }
@@ -379,7 +378,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
@@ -419,7 +418,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/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java Thu May 21 10:14:50 2015
@@ -37,6 +37,9 @@ 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;
 
 /**
  * A worker thread class which can drain channels and echo-back the input. Each
@@ -50,7 +53,9 @@ import org.apache.catalina.tribes.util.L
  */
 public class NioReplicationTask extends AbstractRxTask {
 
-    private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog( NioReplicationTask.class );
+    private static final Log log = LogFactory.getLog( NioReplicationTask.class );
+    protected static final StringManager sm =
+            StringManager.getManager(NioReplicationTask.class.getPackage().getName());
 
     private ByteBuffer buffer = null;
     private SelectionKey key;
@@ -104,10 +109,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);
         }
@@ -211,10 +216,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() ) {
@@ -259,7 +264,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);
                 }
             }
         };
@@ -318,7 +323,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/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java Thu May 21 10:14:50 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,8 @@ 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.getPackage().getName());
 
 
     protected Selector selector;
@@ -83,8 +85,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 +126,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 +170,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 +180,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 +190,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 +221,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 +235,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 +244,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 +308,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/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java Thu May 21 10:14:50 2015
@@ -36,12 +36,15 @@ 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.getPackage().getName());
     protected final long selectTimeout = 5000; //default 5 seconds, same as send timeout
     protected final Selector selector;
     protected final HashMap<Member, NioSender> nioSenders = new HashMap<>();
@@ -82,7 +85,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());
@@ -99,10 +102,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);
@@ -164,20 +165,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;
                 }
@@ -194,7 +189,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;
@@ -250,7 +245,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);
             }
         }
@@ -334,7 +329,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/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java Thu May 21 10:14:50 2015
@@ -24,8 +24,12 @@ 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.getPackage().getName());
+
     protected boolean connected = true;
     public PooledParallelSender() {
         super();
@@ -33,11 +37,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 +65,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);
         }
     }
 

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/Arrays.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/Arrays.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/Arrays.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/Arrays.java Thu May 21 10:14:50 2015
@@ -31,11 +31,12 @@ import org.apache.catalina.tribes.member
  * @version 1.0
  */
 public class Arrays {
+    protected static final StringManager sm = StringManager.getManager(Arrays.class.getPackage().getName());
 
     public static boolean contains(byte[] source, int srcoffset, byte[] key, int keyoffset, int length) {
-        if ( srcoffset < 0 || srcoffset >= source.length) throw new ArrayIndexOutOfBoundsException("srcoffset is out of bounds.");
-        if ( keyoffset < 0 || keyoffset >= key.length) throw new ArrayIndexOutOfBoundsException("keyoffset is out of bounds.");
-        if ( length > (key.length-keyoffset) ) throw new ArrayIndexOutOfBoundsException("not enough data elements in the key, length is out of bounds.");
+        if ( srcoffset < 0 || srcoffset >= source.length) throw new ArrayIndexOutOfBoundsException(sm.getString("arrays.srcoffset.outOfBounds"));
+        if ( keyoffset < 0 || keyoffset >= key.length) throw new ArrayIndexOutOfBoundsException(sm.getString("arrays.keyoffset.outOfBounds"));
+        if ( length > (key.length-keyoffset) ) throw new ArrayIndexOutOfBoundsException(sm.getString("arrays.length.outOfBounds"));
         //we don't have enough data to validate it
         if ( length > (source.length-srcoffset) ) return false;
         boolean match = true;
@@ -203,7 +204,7 @@ public class Arrays {
 
     public static byte[] fromString(String value) {
         if ( value == null ) return null;
-        if ( !value.startsWith("{") ) throw new RuntimeException("byte arrays must be represented as {1,3,4,5,6}");
+        if ( !value.startsWith("{") ) throw new RuntimeException(sm.getString("arrays.malformed.arrays"));
         StringTokenizer t = new StringTokenizer(value,"{,}",false);
         byte[] result = new byte[t.countTokens()];
         for (int i=0; i<result.length; i++ ) result[i] = Byte.parseByte(t.nextToken());

Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/ExecutorFactory.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/ExecutorFactory.java?rev=1680802&r1=1680801&r2=1680802&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/ExecutorFactory.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/ExecutorFactory.java Thu May 21 10:14:50 2015
@@ -27,6 +27,7 @@ import java.util.concurrent.ThreadPoolEx
 import java.util.concurrent.TimeUnit;
 
 public class ExecutorFactory {
+    protected static final StringManager sm = StringManager.getManager(ExecutorFactory.class.getPackage().getName());
 
     public static ExecutorService newThreadPool(int minThreads, int maxThreads, long maxIdleTime, TimeUnit unit) {
         TaskQueue taskqueue = new TaskQueue();
@@ -69,7 +70,7 @@ public class ExecutorFactory {
                 if (super.getQueue() instanceof TaskQueue) {
                     TaskQueue queue = (TaskQueue)super.getQueue();
                     if (!queue.force(command)) {
-                        throw new RejectedExecutionException("Queue capacity is full.");
+                        throw new RejectedExecutionException(sm.getString("executorFactory.queue.full"));
                     }
                 }
             }
@@ -91,7 +92,7 @@ public class ExecutorFactory {
         }
 
         public boolean force(Runnable o) {
-            if ( parent.isShutdown() ) throw new RejectedExecutionException("Executor not running, can't force a command into the queue");
+            if ( parent.isShutdown() ) throw new RejectedExecutionException(sm.getString("executorFactory.not.running"));
             return super.offer(o); //forces the item onto the queue, to be used if the task is rejected
         }
 



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