fixed some more tests after EWYK refactor

This commit is contained in:
Greg Wilkins 2014-12-23 22:20:49 +01:00
parent 3f59bc4c14
commit fecc03a2f5
9 changed files with 95 additions and 33 deletions

View File

@ -271,8 +271,8 @@ public class MetaData implements Iterable<HttpField>
@Override @Override
public String toString() public String toString()
{ {
return String.format("%s %s %s%s%s", return String.format("%s{u=%s,%s,h=%d}",
getMethod(), getURI(), getVersion(), System.lineSeparator(), super.toString()); getMethod(), getURI(), getVersion(), getFields().size());
} }
} }
@ -364,7 +364,7 @@ public class MetaData implements Iterable<HttpField>
@Override @Override
public String toString() public String toString()
{ {
return String.format("%s %d%s%s", getVersion(), getStatus(), System.lineSeparator(), super.toString()); return String.format("%s{s=%d,h=%d}", getVersion(), getStatus(), getFields().size());
} }
} }
} }

View File

@ -656,6 +656,13 @@ public class SslConnection extends AbstractConnection
} }
} }
} }
catch (IllegalStateException e)
{
// Some internal error in SSLEngine
LOG.debug(e);
getEndPoint().close();
throw new EofException(e);
}
catch (Exception e) catch (Exception e)
{ {
getEndPoint().close(); getEndPoint().close();

View File

@ -514,12 +514,12 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
private class Acceptor implements Runnable private class Acceptor implements Runnable
{ {
private final int _acceptor; private final int _id;
private String _name; private String _name;
private Acceptor(int id) private Acceptor(int id)
{ {
_acceptor = id; _id = id;
} }
@Override @Override
@ -527,7 +527,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
{ {
final Thread thread = Thread.currentThread(); final Thread thread = Thread.currentThread();
String name=thread.getName(); String name=thread.getName();
_name=String.format("%s-acceptor-%d@%x-%s",name,_acceptor,hashCode(),AbstractConnector.this.toString()); _name=String.format("%s-acceptor-%d@%x-%s",name,_id,hashCode(),AbstractConnector.this.toString());
thread.setName(_name); thread.setName(_name);
int priority=thread.getPriority(); int priority=thread.getPriority();
@ -536,7 +536,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
synchronized (AbstractConnector.this) synchronized (AbstractConnector.this)
{ {
_acceptors[_acceptor] = thread; _acceptors[_id] = thread;
} }
try try
@ -545,7 +545,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
{ {
try try
{ {
accept(_acceptor); accept(_id);
} }
catch (Throwable e) catch (Throwable e)
{ {
@ -564,7 +564,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
synchronized (AbstractConnector.this) synchronized (AbstractConnector.this)
{ {
_acceptors[_acceptor] = null; _acceptors[_id] = null;
} }
CountDownLatch stopping=_stopping; CountDownLatch stopping=_stopping;
if (stopping!=null) if (stopping!=null)
@ -577,7 +577,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co
{ {
String name=_name; String name=_name;
if (name==null) if (name==null)
return String.format("acceptor-%d@%x", _acceptor, hashCode()); return String.format("acceptor-%d@%x", _id, hashCode());
return name; return name;
} }

View File

@ -563,6 +563,14 @@ public class HttpChannelState
event.cancelTimeoutTask(); event.cancelTimeoutTask();
} }
public boolean isIdle()
{
synchronized (this)
{
return _state==State.IDLE;
}
}
public boolean isExpired() public boolean isExpired()
{ {
synchronized (this) synchronized (this)
@ -613,6 +621,7 @@ public class HttpChannelState
} }
} }
public boolean isAsync() public boolean isAsync()
{ {
synchronized (this) synchronized (this)

View File

@ -32,6 +32,7 @@ import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.Connection;
import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.EofException; import org.eclipse.jetty.io.EofException;
import org.eclipse.jetty.server.HttpChannelState.State;
import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.BufferUtil;
import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Callback;
import org.eclipse.jetty.util.IteratingCallback; import org.eclipse.jetty.util.IteratingCallback;
@ -197,6 +198,12 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
LOG.debug("{} onFillable enter {}", this, _channel.getState()); LOG.debug("{} onFillable enter {}", this, _channel.getState());
final HttpConnection last=setCurrentConnection(this); final HttpConnection last=setCurrentConnection(this);
// If the channel state is not idle, then a request is in progress and
// has previously been dispatched. Thus if this call to onFillable produces
// a parsed event, it will be handled by the channel mechanism and this call
// does not need to call fillInterested
final boolean handling = !_channel.getState().isIdle();
try try
{ {
@ -220,8 +227,8 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
{ {
boolean suspended = !_channel.handle(); boolean suspended = !_channel.handle();
// We should break iteration if we have suspended or changed connection // We should break iteration if we have suspended or changed connection or this is not the handling thread.
if (suspended || getEndPoint().getConnection() != this ) if (suspended || getEndPoint().getConnection() != this || handling )
break; break;
} }

View File

@ -356,6 +356,10 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture
InputStream is=client.getInputStream(); InputStream is=client.getInputStream();
Assert.assertFalse(client.isClosed()); Assert.assertFalse(client.isClosed());
OutputStream os=client.getOutputStream();
os.write("GET ".getBytes("utf-8"));
os.flush();
Thread.sleep(sleepTime); Thread.sleep(sleepTime);
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
try try
@ -365,7 +369,35 @@ public abstract class ConnectorTimeoutTest extends HttpServerTestFixture
} }
catch(SSLException e) catch(SSLException e)
{ {
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
Assert.assertTrue(System.currentTimeMillis() - start < maximumTestRuntime);
}
@Test(timeout=60000)
public void testMaxIdleNothingSent() throws Exception
{
configureServer(new EchoHandler());
Socket client=newSocket(_serverURI.getHost(),_serverURI.getPort());
client.setSoTimeout(10000);
InputStream is=client.getInputStream();
Assert.assertFalse(client.isClosed());
Thread.sleep(sleepTime);
long start = System.currentTimeMillis();
try
{
IO.toString(is);
Assert.assertEquals(-1, is.read());
}
catch(SSLException e)
{
// e.printStackTrace();
} }
catch(Exception e) catch(Exception e)
{ {

View File

@ -1,3 +1,3 @@
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
org.eclipse.jetty.LEVEL=DEBUG #org.eclipse.jetty.LEVEL=DEBUG
#org.eclipse.jetty.server.LEVEL=DEBUG #org.eclipse.jetty.server.LEVEL=DEBUG

View File

@ -93,6 +93,7 @@ import org.eclipse.jetty.util.annotation.ManagedObject;
public class StdErrLog extends AbstractLogger public class StdErrLog extends AbstractLogger
{ {
private static final String EOL = System.getProperty("line.separator"); private static final String EOL = System.getProperty("line.separator");
private static int __tagpad = Integer.getInteger("org.eclipse.jetty.util.log.StdErrLog.TAG_PAD",50);
private static DateCache _dateCache; private static DateCache _dateCache;
private static final Properties __props = new Properties(); private static final Properties __props = new Properties();
@ -100,7 +101,9 @@ public class StdErrLog extends AbstractLogger
Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.SOURCE","false"))); Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.SOURCE","false")));
private final static boolean __long = Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.LONG","false")); private final static boolean __long = Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.LONG","false"));
private final static boolean __escape = Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.ESCAPE","true")); private final static boolean __escape = Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.stderr.ESCAPE","true"));
static static
{ {
__props.putAll(Log.__props); __props.putAll(Log.__props);
@ -127,6 +130,11 @@ public class StdErrLog extends AbstractLogger
} }
} }
public static void setTagPad(int pad)
{
__tagpad=pad;
}
public static final int LEVEL_ALL = 0; public static final int LEVEL_ALL = 0;
public static final int LEVEL_DEBUG = 1; public static final int LEVEL_DEBUG = 1;
public static final int LEVEL_INFO = 2; public static final int LEVEL_INFO = 2;
@ -590,29 +598,23 @@ public class StdErrLog extends AbstractLogger
} }
buffer.append(ms).append(tag); buffer.append(ms).append(tag);
int p=buffer.length(); String name=_printLongNames?_name:_abbrevname;
if (_printLongNames) String tname=Thread.currentThread().getName();
int p=__tagpad>0?(name.length()+tname.length()-__tagpad):0;
if (p<0)
{ {
buffer.append(_name); buffer
.append(name)
.append(':')
.append(" ",0,-p)
.append(tname);
} }
else else if (p==0)
{ {
buffer.append(_abbrevname); buffer.append(name).append(':').append(tname);
} }
p=buffer.length()-p-25;
if (p>0)
buffer.setLength(buffer.length()-p);
else
buffer.append(" ",0,-p);
buffer.append(':');
p=buffer.length();
buffer.append(Thread.currentThread().getName());
p=buffer.length()-p-20;
if (p>0)
buffer.setLength(buffer.length()-p);
else
buffer.append(" ",0,-p);
buffer.append(':'); buffer.append(':');
if (_source) if (_source)

View File

@ -38,6 +38,11 @@ import org.junit.Test;
*/ */
public class StdErrLogTest public class StdErrLogTest
{ {
static
{
StdErrLog.setTagPad(0);
}
@Before @Before
public void before() public void before()
{ {