Improved toString().

This commit is contained in:
Simone Bordet 2012-01-10 17:41:32 +01:00
parent ba57d711c6
commit bb0a320102
4 changed files with 78 additions and 83 deletions

View File

@ -2,7 +2,6 @@ package org.eclipse.jetty.io;
import org.eclipse.jetty.io.nio.DirectNIOBuffer;
import org.eclipse.jetty.io.nio.IndirectNIOBuffer;
import org.omg.stub.java.rmi._Remote_Stub;
public abstract class AbstractBuffers implements Buffers
{
@ -59,7 +58,7 @@ public abstract class AbstractBuffers implements Buffers
}
throw new IllegalStateException();
}
/* ------------------------------------------------------------ */
/**
* Create a new content Buffer
@ -78,7 +77,7 @@ public abstract class AbstractBuffers implements Buffers
}
throw new IllegalStateException();
}
/* ------------------------------------------------------------ */
/**
* Create a new content Buffer
@ -142,10 +141,10 @@ public abstract class AbstractBuffers implements Buffers
}
return false;
}
/* ------------------------------------------------------------ */
public String toString()
{
return this.getClass().getSimpleName()+"["+_headerSize+","+_bufferSize+"]";
return String.format("%s [%d,%d]", getClass().getSimpleName(), _headerSize, _bufferSize);
}
}
}

View File

@ -25,7 +25,7 @@ public class PooledBuffers extends AbstractBuffers
_otherBuffers=bufferType==otherType;
_maxSize=maxSize;
}
/* ------------------------------------------------------------ */
public Buffer getHeader()
{
@ -55,17 +55,17 @@ public class PooledBuffers extends AbstractBuffers
return getHeader();
if (_otherBuffers && size==getBufferSize())
return getBuffer();
// Look for an other buffer
Buffer buffer = _others.poll();
// consume all other buffers until one of the right size is found
while (buffer!=null && buffer.capacity()!=size)
{
_size.decrementAndGet();
buffer = _others.poll();
}
if (buffer==null)
buffer=newBuffer(size);
else
@ -89,16 +89,16 @@ public class PooledBuffers extends AbstractBuffers
else if (isBuffer(buffer))
_buffers.add(buffer);
else
_others.add(buffer);
_others.add(buffer);
}
}
public String toString()
{
return this.getClass().getSimpleName()+
"["+
_headers.size()+"/"+_maxSize+"@"+_headerSize+","+
_buffers.size()+"/"+_maxSize+"@"+_bufferSize+","+
_others.size()+"/"+_maxSize+"@-]";
return String.format("%s [%d/%d@%d,%d/%d@%d,%d/%d@-]",
getClass().getSimpleName(),
_headers.size(),_maxSize,_headerSize,
_buffers.size(),_maxSize,_bufferSize,
_others.size(),_maxSize);
}
}

View File

@ -18,7 +18,6 @@ import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.concurrent.atomic.AtomicLong;
import javax.servlet.ServletRequest;
import org.eclipse.jetty.http.HttpBuffers;
@ -34,7 +33,6 @@ import org.eclipse.jetty.io.EofException;
import org.eclipse.jetty.util.component.AbstractLifeCycle;
import org.eclipse.jetty.util.component.AggregateLifeCycle;
import org.eclipse.jetty.util.component.Dumpable;
import org.eclipse.jetty.util.component.LifeCycle;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.statistic.CounterStatistic;
@ -87,7 +85,7 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
protected int _lowResourceMaxIdleTime = -1;
protected int _soLingerTime = -1;
private transient Thread[] _acceptorThread;
private transient Thread[] _acceptorThreads;
private final AtomicLong _statsStartedAt = new AtomicLong(-1L);
@ -99,7 +97,7 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
private final SampleStatistic _connectionDurationStats = new SampleStatistic();
protected final HttpBuffersImpl _buffers = new HttpBuffersImpl();
/* ------------------------------------------------------------ */
/**
*/
@ -312,15 +310,15 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
_threadPool = _server.getThreadPool();
addBean(_threadPool,false);
}
super.doStart();
// Start selector thread
synchronized (this)
{
_acceptorThread = new Thread[getAcceptors()];
_acceptorThreads = new Thread[getAcceptors()];
for (int i = 0; i < _acceptorThread.length; i++)
for (int i = 0; i < _acceptorThreads.length; i++)
if (!_threadPool.dispatch(new Acceptor(i)))
throw new IllegalStateException("!accepting");
if (_threadPool.isLowOnThreads())
@ -345,17 +343,16 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
super.doStop();
Thread[] acceptors = null;
Thread[] acceptors;
synchronized (this)
{
acceptors = _acceptorThread;
_acceptorThread = null;
acceptors = _acceptorThreads;
_acceptorThreads = null;
}
if (acceptors != null)
{
for (int i = 0; i < acceptors.length; i++)
for (Thread thread : acceptors)
{
Thread thread = acceptors[i];
if (thread != null)
thread.interrupt();
}
@ -368,12 +365,12 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
Thread[] threads;
synchronized(this)
{
threads= _acceptorThread;
threads=_acceptorThreads;
}
if (threads != null)
for (int i = 0; i < threads.length; i++)
if (threads[i] != null)
threads[i].join();
for (Thread thread : threads)
if (thread != null)
thread.join();
}
/* ------------------------------------------------------------ */
@ -792,8 +789,6 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
{
_forwardedSslSessionIdHeader = forwardedSslSessionId;
}
public int getRequestBufferSize()
{
@ -889,13 +884,11 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
@Override
public String toString()
{
String name = this.getClass().getName();
int dot = name.lastIndexOf('.');
if (dot > 0)
name = name.substring(dot + 1);
return name + "@" + (getHost() == null?"0.0.0.0":getHost()) + ":" + (getLocalPort() <= 0?getPort():getLocalPort()) + " "
+ AbstractLifeCycle.getState(this);
return String.format("%s@%s:%d %s",
getClass().getSimpleName(),
getHost()==null?"0.0.0.0":getHost(),
getLocalPort()<=0?getPort():getLocalPort(),
AbstractLifeCycle.getState(this));
}
/* ------------------------------------------------------------ */
@ -917,11 +910,11 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
String name;
synchronized (AbstractConnector.this)
{
if (_acceptorThread == null)
if (_acceptorThreads == null)
return;
_acceptorThread[_acceptor] = current;
name = _acceptorThread[_acceptor].getName();
_acceptorThreads[_acceptor] = current;
name = _acceptorThreads[_acceptor].getName();
current.setName(name + " Acceptor" + _acceptor + " " + AbstractConnector.this);
}
int old_priority = current.getPriority();
@ -961,8 +954,8 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Ht
synchronized (AbstractConnector.this)
{
if (_acceptorThread != null)
_acceptorThread[_acceptor] = null;
if (_acceptorThreads != null)
_acceptorThreads[_acceptor] = null;
}
}
}

View File

@ -38,7 +38,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.net.ssl.CertPathTrustManagerParameters;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
@ -73,7 +72,7 @@ import org.eclipse.jetty.util.security.Password;
public class SslContextFactory extends AbstractLifeCycle
{
private static final Logger LOG = Log.getLogger(SslContextFactory.class);
public static final String DEFAULT_KEYMANAGERFACTORY_ALGORITHM =
(Security.getProperty("ssl.KeyManagerFactory.algorithm") == null ?
"SunX509" : Security.getProperty("ssl.KeyManagerFactory.algorithm"));
@ -96,7 +95,7 @@ public class SslContextFactory extends AbstractLifeCycle
// private final Set<String> _excludeProtocols = new HashSet<String>(Collections.singleton("SSLv2Hello"));
/** Included protocols. */
private Set<String> _includeProtocols = null;
/** Excluded cipher suites. */
private final Set<String> _excludeCipherSuites = new HashSet<String>();
/** Included cipher suites. */
@ -178,7 +177,7 @@ public class SslContextFactory extends AbstractLifeCycle
/** SSL context */
private SSLContext _context;
private boolean _trustAll;
/* ------------------------------------------------------------ */
@ -225,7 +224,7 @@ public class SslContextFactory extends AbstractLifeCycle
_trustStore==null && _trustStoreInputStream == null && _trustStorePath == null )
{
TrustManager[] trust_managers=null;
if (_trustAll)
{
LOG.debug("No keystore or trust store configured. ACCEPTING UNTRUSTED CERTIFICATES!!!!!");
@ -247,7 +246,7 @@ public class SslContextFactory extends AbstractLifeCycle
};
trust_managers = new TrustManager[] { trustAllCerts };
}
SecureRandom secureRandom = (_secureRandomAlgorithm == null)?null:SecureRandom.getInstance(_secureRandomAlgorithm);
_context = SSLContext.getInstance(_sslProtocol);
_context.init(null, trust_managers, secureRandom);
@ -255,7 +254,7 @@ public class SslContextFactory extends AbstractLifeCycle
else
{
// verify that keystore and truststore
// parameters are set up correctly
// parameters are set up correctly
checkKeyStore();
KeyStore keyStore = loadKeyStore();
@ -293,7 +292,7 @@ public class SslContextFactory extends AbstractLifeCycle
_context.init(keyManagers,trustManagers,secureRandom);
SSLEngine engine=newSslEngine();
LOG.info("Enabled Protocols {} of {}",Arrays.asList(engine.getEnabledProtocols()),Arrays.asList(engine.getSupportedProtocols()));
if (LOG.isDebugEnabled())
LOG.debug("Enabled Ciphers {} of {}",Arrays.asList(engine.getEnabledCipherSuites()),Arrays.asList(engine.getSupportedCipherSuites()));
@ -334,7 +333,7 @@ public class SslContextFactory extends AbstractLifeCycle
checkNotStarted();
_excludeProtocols.addAll(Arrays.asList(protocol));
}
/* ------------------------------------------------------------ */
/**
* @return The array of protocol names to include in
@ -380,7 +379,7 @@ public class SslContextFactory extends AbstractLifeCycle
_excludeCipherSuites.clear();
_excludeCipherSuites.addAll(Arrays.asList(cipherSuites));
}
/* ------------------------------------------------------------ */
/**
* @param cipher Cipher names to add to {@link SSLEngine#setEnabledCipherSuites(String[])}
@ -429,7 +428,7 @@ public class SslContextFactory extends AbstractLifeCycle
{
return _keyStorePath;
}
/* ------------------------------------------------------------ */
/**
* @param keyStorePath
@ -878,7 +877,7 @@ public class SslContextFactory extends AbstractLifeCycle
{
return (_keyManagerFactoryAlgorithm);
}
/* ------------------------------------------------------------ */
/**
* @param algorithm
@ -1094,7 +1093,7 @@ public class SslContextFactory extends AbstractLifeCycle
/* ------------------------------------------------------------ */
protected TrustManager[] getTrustManagers(KeyStore trustStore, Collection<? extends CRL> crls) throws Exception
{
{
TrustManager[] managers = null;
if (trustStore != null)
{
@ -1156,15 +1155,15 @@ public class SslContextFactory extends AbstractLifeCycle
* used as truststore.
* @throws IllegalStateException if SslContextFactory configuration can't be used.
*/
public void checkKeyStore()
public void checkKeyStore()
{
if (_context != null)
return; //nothing to check if using preconfigured context
if (_keyStore == null && _keyStoreInputStream == null && _keyStorePath == null)
throw new IllegalStateException("SSL doesn't have a valid keystore");
// if the keystore has been configured but there is no
// truststore configured, use the keystore as the truststore
if (_trustStore == null && _trustStoreInputStream == null && _trustStorePath == null)
@ -1209,7 +1208,7 @@ public class SslContextFactory extends AbstractLifeCycle
public String[] selectProtocols(String[] enabledProtocols, String[] supportedProtocols)
{
Set<String> selected_protocols = new HashSet<String>();
// Set the starting protocols - either from the included or enabled list
if (_includeProtocols!=null)
{
@ -1220,15 +1219,15 @@ public class SslContextFactory extends AbstractLifeCycle
}
else
selected_protocols.addAll(Arrays.asList(enabledProtocols));
// Remove any excluded protocols
if (_excludeProtocols != null)
selected_protocols.removeAll(_excludeProtocols);
return selected_protocols.toArray(new String[selected_protocols.size()]);
}
/* ------------------------------------------------------------ */
/**
* Select cipher suites to be used by the connector
@ -1241,7 +1240,7 @@ public class SslContextFactory extends AbstractLifeCycle
public String[] selectCipherSuites(String[] enabledCipherSuites, String[] supportedCipherSuites)
{
Set<String> selected_ciphers = new HashSet<String>();
// Set the starting ciphers - either from the included or enabled list
if (_includeCipherSuites!=null)
{
@ -1252,8 +1251,8 @@ public class SslContextFactory extends AbstractLifeCycle
}
else
selected_ciphers.addAll(Arrays.asList(enabledCipherSuites));
// Remove any excluded ciphers
if (_excludeCipherSuites != null)
selected_ciphers.removeAll(_excludeCipherSuites);
@ -1450,7 +1449,7 @@ public class SslContextFactory extends AbstractLifeCycle
{
SSLServerSocketFactory factory = _context.getServerSocketFactory();
SSLServerSocket socket =
SSLServerSocket socket =
(SSLServerSocket) (host==null ?
factory.createServerSocket(port,backlog):
factory.createServerSocket(port,backlog,InetAddress.getByName(host)));
@ -1467,14 +1466,14 @@ public class SslContextFactory extends AbstractLifeCycle
return socket;
}
/* ------------------------------------------------------------ */
public SSLSocket newSslSocket() throws IOException
{
SSLSocketFactory factory = _context.getSocketFactory();
SSLSocket socket = (SSLSocket)factory.createSocket();
if (getWantClientAuth())
socket.setWantClientAuth(getWantClientAuth());
if (getNeedClientAuth())
@ -1482,23 +1481,23 @@ public class SslContextFactory extends AbstractLifeCycle
socket.setEnabledCipherSuites(selectCipherSuites(
socket.getEnabledCipherSuites(),
socket.getSupportedCipherSuites()));
socket.getSupportedCipherSuites()));
socket.setEnabledProtocols(selectProtocols(socket.getEnabledProtocols(),socket.getSupportedProtocols()));
return socket;
}
/* ------------------------------------------------------------ */
public SSLEngine newSslEngine(String host,int port)
{
SSLEngine sslEngine=isSessionCachingEnabled()
?_context.createSSLEngine(host, port)
:_context.createSSLEngine();
customize(sslEngine);
return sslEngine;
}
/* ------------------------------------------------------------ */
public SSLEngine newSslEngine()
{
@ -1518,14 +1517,18 @@ public class SslContextFactory extends AbstractLifeCycle
sslEngine.setEnabledCipherSuites(selectCipherSuites(
sslEngine.getEnabledCipherSuites(),
sslEngine.getSupportedCipherSuites()));
sslEngine.setEnabledProtocols(selectProtocols(sslEngine.getEnabledProtocols(),sslEngine.getSupportedProtocols()));
}
/* ------------------------------------------------------------ */
public String toString()
{
return this.getClass().getSimpleName()+"@"+Integer.toHexString(hashCode())+
"("+_keyStorePath+","+_trustStorePath+")#"+getState();
return String.format("%s@%x(%s,%s)#%s",
getClass().getSimpleName(),
hashCode(),
_keyStorePath,
_trustStorePath,
getState());
}
}