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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org