Author: kfujino Date: Thu May 21 09:58:49 2015 New Revision: 1680797 URL: http://svn.apache.org/r1680797 Log: Use StringManager to provide i18n support in the org.apache.catalina.tribes.transport.nio package.
Added: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties (with props) Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java Added: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties?rev=1680797&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties (added) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties Thu May 21 09:58:49 2015 @@ -0,0 +1,53 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +nioReceiver.alreadyStarted=ServerSocketChannel already started +nioReceiver.cleanup.fail=Unable to cleanup on selector close +nioReceiver.clientDisconnect=Replication client disconnected, error when polling key. Ignoring client. +nioReceiver.requestError=Unable to process request in NioReceiver +nioReceiver.run.fail=Unable to run replication listener +nioReceiver.start.fail=Unable to start cluster receiver +nioReceiver.stop.fail=Unable to close cluster receiver selector +nioReceiver.stop.threadRunning=The NioReceiver thread did not stop in a timely manner. Errors may be observed when the selector is closed. +nioReceiver.threadpool.fail=ThreadPool cannot be initialized. Listener not started. +nioReceiver.threadsExhausted=Channel key is registered, but has had no interest ops for the last [{0}] ms. (cancelled: [{1}]):[{2}] last access:[{3} Possible cause: all threads used, perform thread dump +nioReplicationTask.unable.drainChannel.ioe=IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed[{0}]. +nioReplicationTask.exception.drainChannel=Exception caught in TcpReplicationThread.drainChannel. +nioReplicationTask.process.clusterMsg.failed=Processing of cluster message failed. +nioReplicationTask.error.register.key=Error registering key for read:{0} +nioReplicationTask.unable.ack=Unable to send ACK back through channel, channel disconnected?: {0} +nioSender.sender.disconnected=Sender has been disconnected, can't selection key. +nioSender.key.inValid=Key is not valid, it must have been cancelled. +nioSender.unknown.state=Data is in unknown state. readyOps={0} +nioSender.unable.receive.ack=Unable to receive an ack message. EOF on socket channel has been reached. +nioSender.receive.failedAck=Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA +nioSender.not.connected=NioSender is not connected, this should not occur. +nioSender.already.connected=NioSender is already in connected state. +nioSender.datagram.already.established=Datagram channel has already been established. Connection might be in progress. +nioSender.socketChannel.already.established=Socket channel has already been established. Connection might be in progress. +nioSender.unable.disconnect=Unable to disconnect NioSender. msg={0} +parallelNioSender.send.failed=Parallel NIO send failed. +parallelNioSender.operation.timedout=Operation has timed out({0} ms.). +parallelNioSender.send.fail.retrying=Member send is failing for:{0} ; Setting to suspect and retrying. +parallelNioSender.send.fail=Member send is failing for:{0} ; Setting to suspect. +parallelNioSender.sender.disconnected.notRetry=Not retrying send for:{0}; Sender is disconnected. +parallelNioSender.sender.disconnected.sendFailed=Send failed, and sender is disconnected. Not retrying. +parallelNioSender.sendFailed.attempt=Send failed, attempt:{0} max:{1} +parallelNioSender.unable.setup.NioSender=Unable to setup NioSender. +parallelNioSender.error.keepalive=Error during keepalive test for sender:{0} +pooledParallelSender.sender.disconnected=Sender not connected. +pooledParallelSender.unable.retrieveSender.timeout=Unable to retrieve a data sender, time out({0} ms) error. +pooledParallelSender.unable.retrieveSender=Unable to retrieve a sender from the sender pool +pooledParallelSender.unable.open=Unable to open NIO selector. \ No newline at end of file Propchange: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java?rev=1680797&r1=1680796&r2=1680797&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java Thu May 21 09:58:49 2015 @@ -34,7 +34,6 @@ import java.util.concurrent.atomic.Atomi import org.apache.catalina.tribes.io.ObjectReader; import org.apache.catalina.tribes.transport.AbstractRxTask; -import org.apache.catalina.tribes.transport.Constants; import org.apache.catalina.tribes.transport.ReceiverBase; import org.apache.catalina.tribes.transport.RxTaskPool; import org.apache.catalina.tribes.util.ExceptionUtils; @@ -49,8 +48,7 @@ public class NioReceiver extends Receive /** * The string manager for this package. */ - protected static final StringManager sm = - StringManager.getManager(Constants.Package); + protected static final StringManager sm = StringManager.getManager(NioReceiver.class); private volatile boolean running = false; @@ -80,7 +78,7 @@ public class NioReceiver extends Receive try { setPool(new RxTaskPool(getMaxThreads(),getMinThreads(),this)); } catch (Exception x) { - log.fatal(sm.getString("NioReceiver.threadpool.fail"), x); + log.fatal(sm.getString("nioReceiver.threadpool.fail"), x); if ( x instanceof IOException ) throw (IOException)x; else throw new IOException(x.getMessage()); } @@ -91,7 +89,7 @@ public class NioReceiver extends Receive t.setDaemon(true); t.start(); } catch (Exception x) { - log.fatal(sm.getString("NioReceiver.start.fail"), x); + log.fatal(sm.getString("nioReceiver.start.fail"), x); if ( x instanceof IOException ) throw (IOException)x; else throw new IOException(x.getMessage()); } @@ -211,7 +209,7 @@ public class NioReceiver extends Receive if (delta > getTimeout() && (!ka.isAccessed())) { if (log.isWarnEnabled()) log.warn(sm.getString( - "NioReceiver.threadsExhausted", + "nioReceiver.threadsExhausted", Integer.valueOf(getTimeout()), Boolean.valueOf(ka.isCancelled()), key, @@ -239,7 +237,7 @@ public class NioReceiver extends Receive */ protected void listen() throws Exception { if (doListen()) { - log.warn(sm.getString("NioReceiver.alreadyStarted")); + log.warn(sm.getString("nioReceiver.alreadyStarted")); return; } @@ -309,10 +307,10 @@ public class NioReceiver extends Receive } catch (java.nio.channels.ClosedSelectorException cse) { // ignore is normal at shutdown or stop listen socket } catch (java.nio.channels.CancelledKeyException nx) { - log.warn(sm.getString("NioReceiver.clientDisconnect")); + log.warn(sm.getString("nioReceiver.clientDisconnect")); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); - log.error(sm.getString("NioReceiver.requestError"), t); + log.error(sm.getString("nioReceiver.requestError"), t); } } @@ -349,11 +347,11 @@ public class NioReceiver extends Receive count ++; } if (running) { - log.warn(sm.getString("NioReceiver.stop.threadRunning")); + log.warn(sm.getString("nioReceiver.stop.threadRunning")); } closeSelector(); } catch (Exception x) { - log.error(sm.getString("NioReceiver.stop.fail"), x); + log.error(sm.getString("nioReceiver.stop.fail"), x); } finally { this.selector.set(null); } @@ -374,7 +372,7 @@ public class NioReceiver extends Receive } } catch (IOException ignore){ if (log.isWarnEnabled()) { - log.warn(sm.getString("NioReceiver.cleanup.fail"), ignore); + log.warn(sm.getString("nioReceiver.cleanup.fail"), ignore); } } catch (ClosedSelectorException ignore){ // Ignore @@ -414,7 +412,7 @@ public class NioReceiver extends Receive try { listen(); } catch (Exception x) { - log.error(sm.getString("NioReceiver.run.fail"), x); + log.error(sm.getString("nioReceiver.run.fail"), x); } finally { running = false; } Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java?rev=1680797&r1=1680796&r2=1680797&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java Thu May 21 09:58:49 2015 @@ -37,6 +37,7 @@ import org.apache.catalina.tribes.io.Obj import org.apache.catalina.tribes.transport.AbstractRxTask; import org.apache.catalina.tribes.transport.Constants; import org.apache.catalina.tribes.util.Logs; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -53,6 +54,7 @@ import org.apache.juli.logging.LogFactor public class NioReplicationTask extends AbstractRxTask { private static final Log log = LogFactory.getLog(NioReplicationTask.class); + protected static final StringManager sm = StringManager.getManager(NioReplicationTask.class); private ByteBuffer buffer = null; private SelectionKey key; @@ -106,10 +108,10 @@ public class NioReplicationTask extends } else if ( e instanceof IOException ) { //dont spew out stack traces for IO exceptions unless debug is enabled. if (log.isDebugEnabled()) log.debug ("IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed["+e.getMessage()+"].", e); - else log.warn ("IOException in replication worker, unable to drain channel. Probable cause: Keep alive socket closed["+e.getMessage()+"]."); + else log.warn (sm.getString("nioReplicationTask.unable.drainChannel.ioe", e.getMessage())); } else if ( log.isErrorEnabled() ) { //this is a real error, log it. - log.error("Exception caught in TcpReplicationThread.drainChannel.",e); + log.error(sm.getString("nioReplicationTask.exception.drainChannel"),e); } cancelKey(key); } @@ -213,10 +215,10 @@ public class NioReplicationTask extends */ if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.ACK_COMMAND,saddr); }catch ( RemoteProcessException e ) { - if ( log.isDebugEnabled() ) log.error("Processing of cluster message failed.",e); + if ( log.isDebugEnabled() ) log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e); if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr); }catch ( Exception e ) { - log.error("Processing of cluster message failed.",e); + log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e); if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr); } if ( getUseBufferPool() ) { @@ -261,7 +263,7 @@ public class NioReplicationTask extends log.trace("CKX Cancelling key:"+key); } catch (Exception x) { - log.error("Error registering key for read:"+key,x); + log.error(sm.getString("nioReplicationTask.error.register.key", key),x); } } }; @@ -320,7 +322,7 @@ public class NioReplicationTask extends ((DatagramChannel)channel).socket().getInetAddress())); } } catch ( java.io.IOException x ) { - log.warn("Unable to send ACK back through channel, channel disconnected?: "+x.getMessage()); + log.warn(sm.getString("nioReplicationTask.unable.ack", x.getMessage())); } } Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java Thu May 21 09:58:49 2015 @@ -30,6 +30,7 @@ import java.util.Arrays; import org.apache.catalina.tribes.RemoteProcessException; import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.transport.AbstractSender; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -49,7 +50,7 @@ import org.apache.juli.logging.LogFactor public class NioSender extends AbstractSender { private static final Log log = LogFactory.getLog(NioSender.class); - + protected static final StringManager sm = StringManager.getManager(NioSender.class); protected Selector selector; @@ -83,8 +84,8 @@ public class NioSender extends AbstractS int ops = key.readyOps(); key.interestOps(key.interestOps() & ~ops); //in case disconnect has been called - if ((!isConnected()) && (!connecting)) throw new IOException("Sender has been disconnected, can't selection key."); - if ( !key.isValid() ) throw new IOException("Key is not valid, it must have been cancelled."); + if ((!isConnected()) && (!connecting)) throw new IOException(sm.getString("nioSender.sender.disconnected")); + if ( !key.isValid() ) throw new IOException(sm.getString("nioSender.key.inValid")); if ( key.isConnectable() ) { if ( socketChannel.finishConnect() ) { completeConnect(); @@ -124,8 +125,8 @@ public class NioSender extends AbstractS }//end if } else { //unknown state, should never happen - log.warn("Data is in unknown state. readyOps="+ops); - throw new IOException("Data is in unknown state. readyOps="+ops); + log.warn(sm.getString("nioSender.unknown.state", ops)); + throw new IOException(sm.getString("nioSender.unknown.state", ops)); }//end if return false; } @@ -168,7 +169,7 @@ public class NioSender extends AbstractS if ( current == null ) return true; int read = isUdpBased()?dataChannel.read(readbuf) : socketChannel.read(readbuf); //end of stream - if ( read == -1 ) throw new IOException("Unable to receive an ack message. EOF on socket channel has been reached."); + if ( read == -1 ) throw new IOException(sm.getString("nioSender.unable.receive.ack")); //no data read else if ( read == 0 ) return false; readbuf.flip(); @@ -178,7 +179,7 @@ public class NioSender extends AbstractS byte[] ackcmd = ackbuf.extractDataPackage(true).getBytes(); boolean ack = Arrays.equals(ackcmd,org.apache.catalina.tribes.transport.Constants.ACK_DATA); boolean fack = Arrays.equals(ackcmd,org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA); - if ( fack && getThrowOnFailedAck() ) throw new RemoteProcessException("Received a failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA"); + if ( fack && getThrowOnFailedAck() ) throw new RemoteProcessException(sm.getString("nioSender.receive.failedAck")); return ack || fack; } else { return false; @@ -188,7 +189,7 @@ public class NioSender extends AbstractS protected boolean write() throws IOException { if ( (!isConnected()) || (this.socketChannel==null && this.dataChannel==null)) { - throw new IOException("NioSender is not connected, this should not occur."); + throw new IOException(sm.getString("nioSender.not.connected")); } if ( current != null ) { if ( remaining > 0 ) { @@ -219,7 +220,7 @@ public class NioSender extends AbstractS public synchronized void connect() throws IOException { if ( connecting || isConnected()) return; connecting = true; - if ( isConnected() ) throw new IOException("NioSender is already in connected state."); + if ( isConnected() ) throw new IOException(sm.getString("nioSender.already.connected")); if ( readbuf == null ) { readbuf = getReadBuffer(); } else { @@ -233,7 +234,7 @@ public class NioSender extends AbstractS if (isUdpBased()) { InetSocketAddress daddr = new InetSocketAddress(getAddress(),getUdpPort()); - if ( dataChannel != null ) throw new IOException("Datagram channel has already been established. Connection might be in progress."); + if ( dataChannel != null ) throw new IOException(sm.getString("nioSender.datagram.already.established")); dataChannel = DatagramChannel.open(); configureSocket(); dataChannel.connect(daddr); @@ -242,7 +243,7 @@ public class NioSender extends AbstractS } else { InetSocketAddress addr = new InetSocketAddress(getAddress(),getPort()); - if ( socketChannel != null ) throw new IOException("Socket channel has already been established. Connection might be in progress."); + if ( socketChannel != null ) throw new IOException(sm.getString("nioSender.socketChannel.already.established")); socketChannel = SocketChannel.open(); configureSocket(); if ( socketChannel.connect(addr) ) { @@ -306,8 +307,8 @@ public class NioSender extends AbstractS } } } catch ( Exception x ) { - log.error("Unable to disconnect NioSender. msg="+x.getMessage()); - if ( log.isDebugEnabled() ) log.debug("Unable to disconnect NioSender. msg="+x.getMessage(),x); + log.error(sm.getString("nioSender.unable.disconnect", x.getMessage())); + if ( log.isDebugEnabled() ) log.debug(sm.getString("nioSender.unable.disconnect", x.getMessage()),x); } } Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java Thu May 21 09:58:49 2015 @@ -36,12 +36,14 @@ import org.apache.catalina.tribes.transp import org.apache.catalina.tribes.transport.MultiPointSender; import org.apache.catalina.tribes.transport.SenderState; import org.apache.catalina.tribes.util.Logs; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; public class ParallelNioSender extends AbstractSender implements MultiPointSender { private static final Log log = LogFactory.getLog(ParallelNioSender.class); + protected static final StringManager sm = StringManager.getManager(ParallelNioSender.class); protected final long selectTimeout = 5000; //default 5 seconds, same as send timeout protected final Selector selector; protected final HashMap<Member, NioSender> nioSenders = new HashMap<>(); @@ -77,7 +79,7 @@ public class ParallelNioSender extends A int faulty = (cx == null)?0:cx.getFaultyMembers().length; if ( cx == null ) { if ( x instanceof ChannelException ) cx = (ChannelException)x; - else cx = new ChannelException("Parallel NIO send failed.", x); + else cx = new ChannelException(sm.getString("parallelNioSender.send.failed"), x); } else { if (x instanceof ChannelException) { cx.addFaultyMember(((ChannelException) x).getFaultyMembers()); @@ -94,10 +96,8 @@ public class ParallelNioSender extends A } if ( remaining > 0 ) { //timeout has occurred - ChannelException cxtimeout = new ChannelException( - "Operation has timed out(" + getTimeout() + " ms.)."); - if ( cx==null ) cx = new ChannelException( - "Operation has timed out(" + getTimeout() + " ms.)."); + ChannelException cxtimeout = new ChannelException(sm.getString("parallelNioSender.operation.timedout", getTimeout())); + if ( cx==null ) cx = new ChannelException(sm.getString("parallelNioSender.operation.timedout", getTimeout())); for (int i=0; i<senders.length; i++ ) { if (!senders[i].isComplete()) { cx.addFaultyMember(senders[i].getDestination(),cxtimeout); @@ -159,20 +159,14 @@ public class ParallelNioSender extends A if (state.isReady()) { state.setSuspect(); if ( retry ) - log.warn("Member send is failing for:" + - sender.getDestination().getName() + - " ; Setting to suspect and retrying."); + log.warn(sm.getString("parallelNioSender.send.fail.retrying", sender.getDestination().getName())); else - log.warn("Member send is failing for:" + - sender.getDestination().getName() + - " ; Setting to suspect.", x); + log.warn(sm.getString("parallelNioSender.send.fail", sender.getDestination().getName()), x); } } if ( !isConnected() ) { - log.warn("Not retrying send for:" + sender.getDestination().getName() + - "; Sender is disconnected."); - ChannelException cx = new ChannelException( - "Send failed, and sender is disconnected. Not retrying.", x); + log.warn(sm.getString("parallelNioSender.sender.disconnected.notRetry", sender.getDestination().getName())); + ChannelException cx = new ChannelException(sm.getString("parallelNioSender.sender.disconnected.sendFailed"), x); cx.addFaultyMember(sender.getDestination(),x); throw cx; } @@ -189,7 +183,7 @@ public class ParallelNioSender extends A } } else { ChannelException cx = new ChannelException( - "Send failed, attempt:" + sender.getAttempt() + " max:" + maxAttempts, + sm.getString("parallelNioSender.sendFailed.attempt", sender.getAttempt(), maxAttempts), x); cx.addFaultyMember(sender.getDestination(),x); throw cx; @@ -245,7 +239,7 @@ public class ParallelNioSender extends A sender.setUdpBased(isUdpBased()); result[i] = sender; }catch ( UnknownHostException x ) { - if (cx == null) cx = new ChannelException("Unable to setup NioSender.", x); + if (cx == null) cx = new ChannelException(sm.getString("parallelNioSender.unable.setup.NioSender"), x); cx.addFaultyMember(destination[i], x); } } @@ -329,7 +323,7 @@ public class ParallelNioSender extends A i.remove(); result = true; }catch ( Exception x ) { - log.warn("Error during keepalive test for sender:"+sender,x); + log.warn(sm.getString("parallelNioSender.error.keepalive", sender),x); } } } Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java?rev=1680797&r1=1680796&r2=1680797&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java Thu May 21 09:58:49 2015 @@ -24,8 +24,11 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.transport.AbstractSender; import org.apache.catalina.tribes.transport.DataSender; import org.apache.catalina.tribes.transport.PooledSender; +import org.apache.catalina.tribes.util.StringManager; public class PooledParallelSender extends PooledSender { + protected static final StringManager sm = StringManager.getManager(PooledParallelSender.class); + protected boolean connected = true; public PooledParallelSender() { super(); @@ -33,11 +36,12 @@ public class PooledParallelSender extend @Override public void sendMessage(Member[] destination, ChannelMessage message) throws ChannelException { - if ( !connected ) throw new ChannelException("Sender not connected."); + if ( !connected ) throw new ChannelException(sm.getString("pooledParallelSender.sender.disconnected")); ParallelNioSender sender = (ParallelNioSender)getSender(); if (sender == null) { - ChannelException cx = new ChannelException("Unable to retrieve a data sender, time out("+getMaxWait()+" ms) error."); - for (int i = 0; i < destination.length; i++) cx.addFaultyMember(destination[i], new NullPointerException("Unable to retrieve a sender from the sender pool")); + ChannelException cx = new ChannelException(sm.getString("pooledParallelSender.unable.retrieveSender.timeout", getMaxWait())); + for (int i = 0; i < destination.length; i++) + cx.addFaultyMember(destination[i], new NullPointerException(sm.getString("pooledParallelSender.unable.retrieveSender"))); throw cx; } else { try { @@ -60,7 +64,7 @@ public class PooledParallelSender extend AbstractSender.transferProperties(this,sender); return sender; } catch ( IOException x ) { - throw new RuntimeException("Unable to open NIO selector.",x); + throw new RuntimeException(sm.getString("pooledParallelSender.unable.open"),x); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org