399566 Running org.eclipse.jetty.server.session.MaxInactiveMigrationTest produces stack trace

This commit is contained in:
Jan Bartel 2013-01-31 15:41:48 +11:00
parent ac7fbaf62b
commit 9194fe1b7b
34 changed files with 313 additions and 57 deletions

View File

@ -596,6 +596,7 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
{ {
if (_task!=null) if (_task!=null)
_task.cancel(); _task.cancel();
_task=null;
if (_timer!=null) if (_timer!=null)
_timer.cancel(); _timer.cancel();
_timer=null; _timer=null;

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -38,4 +42,16 @@ public class ClientCrossContextSessionTest extends AbstractClientCrossContextSes
{ {
super.testCrossContextDispatch(); super.testCrossContextDispatch();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -38,4 +42,16 @@ public class ImmortalSessionTest extends AbstractImmortalSessionTest
{ {
super.testImmortalSession(); super.testImmortalSession();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -51,4 +55,17 @@ public class InvalidationSessionTest extends AbstractInvalidationSessionTest
{ {
super.testInvalidation(); super.testInvalidation();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -81,6 +81,7 @@ public class JdbcTestServer extends AbstractTestServer
idManager.setScavengeInterval(_scavengePeriod); idManager.setScavengeInterval(_scavengePeriod);
idManager.setWorkerName("w"+(__workers++)); idManager.setWorkerName("w"+(__workers++));
idManager.setDriverInfo(DRIVER_CLASS, (config==null?DEFAULT_CONNECTION_URL:config)); idManager.setDriverInfo(DRIVER_CLASS, (config==null?DEFAULT_CONNECTION_URL:config));
//System.err.println("new jdbcidmgr inst="+idManager);
return idManager; return idManager;
} }
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -36,4 +40,17 @@ public class LastAccessTimeTest extends AbstractLastAccessTimeTest
// Log.getLog().setDebugEnabled(true); // Log.getLog().setDebugEnabled(true);
super.testLastAccessTime(); super.testLastAccessTime();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -52,4 +56,16 @@ public class LocalSessionScavengingTest extends AbstractLocalSessionScavengingTe
{ {
super.testLocalSessionsScavenging(); super.testLocalSessionsScavenging();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -38,4 +42,16 @@ public class NewSessionTest extends AbstractNewSessionTest
{ {
super.testNewSession(); super.testNewSession();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -35,4 +39,16 @@ public class OrphanedSessionTest extends AbstractOrphanedSessionTest
{ {
super.testOrphanedSession(); super.testOrphanedSession();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
@ -37,4 +41,16 @@ public class ReentrantRequestSessionTest extends AbstractReentrantRequestSession
{ {
super.testReentrantRequestSession(); super.testReentrantRequestSession();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -36,4 +40,16 @@ public class ServerCrossContextSessionTest extends AbstractServerCrossContextSes
{ {
super.testCrossContextDispatch(); super.testCrossContextDispatch();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -50,5 +54,15 @@ public class SessionExpiryTest extends AbstractSessionExpiryTest
super.testSessionNotExpired(); super.testSessionNotExpired();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -36,4 +40,16 @@ public class SessionMigrationTest extends AbstractSessionMigrationTest
{ {
super.testSessionMigration(); super.testSessionMigration();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
public class SessionRenewTest extends AbstractSessionRenewTest public class SessionRenewTest extends AbstractSessionRenewTest
@ -35,6 +39,16 @@ public class SessionRenewTest extends AbstractSessionRenewTest
super.testSessionRenewal(); super.testSessionRenewal();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -35,4 +39,16 @@ public class SessionValueSavingTest extends AbstractSessionValueSavingTest
{ {
super.testSessionValueSaving(); super.testSessionValueSaving();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -18,6 +18,10 @@
package org.eclipse.jetty.server.session; package org.eclipse.jetty.server.session;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
/** /**
@ -38,4 +42,18 @@ public class WebAppObjectInSessionTest extends AbstractWebAppObjectInSessionTest
{ {
super.testWebappObjectInSession(); super.testWebappObjectInSession();
} }
@After
public void tearDown() throws Exception
{
try
{
DriverManager.getConnection( "jdbc:derby:sessions;shutdown=true" );
}
catch( SQLException expected )
{
}
}
} }

View File

@ -60,11 +60,12 @@ public abstract class AbstractClientCrossContextSessionTest
TestServletB servletB = new TestServletB(); TestServletB servletB = new TestServletB();
ServletHolder holderB = new ServletHolder(servletB); ServletHolder holderB = new ServletHolder(servletB);
ctxB.addServlet(holderB, servletMapping); ctxB.addServlet(holderB, servletMapping);
server.start();
int port = server.getPort();
try try
{ {
server.start();
int port = server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -52,11 +52,11 @@ public abstract class AbstractImmortalSessionTest
//turn off session expiry by setting maxInactiveInterval to -1 //turn off session expiry by setting maxInactiveInterval to -1
AbstractTestServer server = createServer(0, -1, scavengePeriod); AbstractTestServer server = createServer(0, -1, scavengePeriod);
server.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server.start();
int port=server.getPort();
try try
{ {
server.start();
int port=server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -52,18 +52,19 @@ public abstract class AbstractInvalidationSessionTest
String servletMapping = "/server"; String servletMapping = "/server";
AbstractTestServer server1 = createServer(0); AbstractTestServer server1 = createServer(0);
server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server1.start();
int port1 = server1.getPort();
System.err.println("Port1="+port1);
try try
{ {
server1.start();
int port1 = server1.getPort();
AbstractTestServer server2 = createServer(0); AbstractTestServer server2 = createServer(0);
server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server2.start();
int port2=server2.getPort();
System.err.println("port2="+port2);
try try
{ {
server2.start();
int port2=server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
QueuedThreadPool executor = new QueuedThreadPool(); QueuedThreadPool executor = new QueuedThreadPool();
client.setExecutor(executor); client.setExecutor(executor);

View File

@ -67,16 +67,18 @@ public abstract class AbstractLastAccessTimeTest
TestSessionListener listener1 = new TestSessionListener(); TestSessionListener listener1 = new TestSessionListener();
context.addEventListener(listener1); context.addEventListener(listener1);
context.addServlet(holder1, servletMapping); context.addServlet(holder1, servletMapping);
server1.start();
int port1=server1.getPort();
try try
{ {
server1.start();
int port1=server1.getPort();
AbstractTestServer server2 = createServer(0, maxInactivePeriod, scavengePeriod); AbstractTestServer server2 = createServer(0, maxInactivePeriod, scavengePeriod);
server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server2.start();
int port2=server2.getPort();
try try
{ {
server2.start();
int port2=server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -60,16 +60,18 @@ public abstract class AbstractLightLoadTest
String servletMapping = "/server"; String servletMapping = "/server";
AbstractTestServer server1 = createServer( 0 ); AbstractTestServer server1 = createServer( 0 );
server1.addContext( contextPath ).addServlet( TestServlet.class, servletMapping ); server1.addContext( contextPath ).addServlet( TestServlet.class, servletMapping );
server1.start();
int port1 = server1.getPort();
try try
{ {
server1.start();
int port1 = server1.getPort();
AbstractTestServer server2 = createServer( 0 ); AbstractTestServer server2 = createServer( 0 );
server2.addContext( contextPath ).addServlet( TestServlet.class, servletMapping ); server2.addContext( contextPath ).addServlet( TestServlet.class, servletMapping );
server2.start();
int port2=server2.getPort();
try try
{ {
server2.start();
int port2=server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -63,16 +63,18 @@ public abstract class AbstractLocalSessionScavengingTest
int scavengePeriod = 2; int scavengePeriod = 2;
AbstractTestServer server1 = createServer(0, inactivePeriod, scavengePeriod); AbstractTestServer server1 = createServer(0, inactivePeriod, scavengePeriod);
server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server1.start();
int port1 = server1.getPort();
try try
{ {
server1.start();
int port1 = server1.getPort();
AbstractTestServer server2 = createServer(0, inactivePeriod, scavengePeriod * 3); AbstractTestServer server2 = createServer(0, inactivePeriod, scavengePeriod * 3);
server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server2.start();
int port2 = server2.getPort();
try try
{ {
server2.start();
int port2 = server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -63,10 +63,11 @@ public abstract class AbstractNewSessionTest
AbstractTestServer server = createServer(0, 1, scavengePeriod); AbstractTestServer server = createServer(0, 1, scavengePeriod);
ServletContextHandler context = server.addContext(contextPath); ServletContextHandler context = server.addContext(contextPath);
context.addServlet(TestServlet.class, servletMapping); context.addServlet(TestServlet.class, servletMapping);
server.start();
int port=server.getPort();
try try
{ {
server.start();
int port=server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -56,17 +56,17 @@ public abstract class AbstractOrphanedSessionTest
int inactivePeriod = 5; int inactivePeriod = 5;
AbstractTestServer server1 = createServer(0, inactivePeriod, -1); AbstractTestServer server1 = createServer(0, inactivePeriod, -1);
server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server1.start();
int port1 = server1.getPort();
try try
{ {
server1.start();
int port1 = server1.getPort();
int scavengePeriod = 2; int scavengePeriod = 2;
AbstractTestServer server2 = createServer(0, inactivePeriod, scavengePeriod); AbstractTestServer server2 = createServer(0, inactivePeriod, scavengePeriod);
server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server2.start();
int port2 = server2.getPort();
try try
{ {
server2.start();
int port2 = server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -48,10 +48,11 @@ public abstract class AbstractReentrantRequestSessionTest
String servletMapping = "/server"; String servletMapping = "/server";
AbstractTestServer server = createServer(0); AbstractTestServer server = createServer(0);
server.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server.start();
int port = server.getPort();
try try
{ {
server.start();
int port = server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -55,10 +55,11 @@ public abstract class AbstractRemoveSessionTest
context.addServlet(TestServlet.class, servletMapping); context.addServlet(TestServlet.class, servletMapping);
TestEventListener testListener = new TestEventListener(); TestEventListener testListener = new TestEventListener();
context.getSessionHandler().addEventListener(testListener); context.getSessionHandler().addEventListener(testListener);
server.start();
int port = server.getPort();
try try
{ {
server.start();
int port = server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -56,10 +56,11 @@ public abstract class AbstractServerCrossContextSessionTest
ctxA.addServlet(TestServletA.class, servletMapping); ctxA.addServlet(TestServletA.class, servletMapping);
ServletContextHandler ctxB = server.addContext(contextB); ServletContextHandler ctxB = server.addContext(contextB);
ctxB.addServlet(TestServletB.class, servletMapping); ctxB.addServlet(TestServletB.class, servletMapping);
server.start();
int port=server.getPort();
try try
{ {
server.start();
int port=server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -67,10 +67,12 @@ public abstract class AbstractSessionCookieTest
AbstractTestServer server = createServer(0, 1, scavengePeriod); AbstractTestServer server = createServer(0, 1, scavengePeriod);
ServletContextHandler context = server.addContext(contextPath); ServletContextHandler context = server.addContext(contextPath);
context.addServlet(TestServlet.class, servletMapping); context.addServlet(TestServlet.class, servletMapping);
server.start();
int port=server.getPort();
try try
{ {
server.start();
int port=server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -62,12 +62,13 @@ public abstract class AbstractSessionExpiryTest
TestServlet servlet = new TestServlet(); TestServlet servlet = new TestServlet();
ServletHolder holder = new ServletHolder(servlet); ServletHolder holder = new ServletHolder(servlet);
server1.addContext(contextPath).addServlet(holder, servletMapping); server1.addContext(contextPath).addServlet(holder, servletMapping);
server1.start();
int port1 = server1.getPort();
HttpClient client = new HttpClient();
try try
{ {
HttpClient client = new HttpClient(); server1.start();
int port1 = server1.getPort();
client.start(); client.start();
String url = "http://localhost:" + port1 + contextPath + servletMapping; String url = "http://localhost:" + port1 + contextPath + servletMapping;
@ -96,6 +97,7 @@ public abstract class AbstractSessionExpiryTest
} }
finally finally
{ {
client.stop();
server1.stop(); server1.stop();
} }
} }

View File

@ -100,10 +100,12 @@ public abstract class AbstractSessionInvalidateAndCreateTest
context.addServlet(holder, servletMapping); context.addServlet(holder, servletMapping);
MySessionListener listener = new MySessionListener(); MySessionListener listener = new MySessionListener();
context.getSessionHandler().addEventListener(listener); context.getSessionHandler().addEventListener(listener);
server.start();
int port1 = server.getPort();
try try
{ {
server.start();
int port1 = server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -49,16 +49,20 @@ public abstract class AbstractSessionMigrationTest
String servletMapping = "/server"; String servletMapping = "/server";
AbstractTestServer server1 = createServer(0); AbstractTestServer server1 = createServer(0);
server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server1.start();
int port1=server1.getPort();
try try
{ {
server1.start();
int port1=server1.getPort();
AbstractTestServer server2 = createServer(0); AbstractTestServer server2 = createServer(0);
server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server2.start();
int port2=server2.getPort();
try try
{ {
server2.start();
int port2=server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try

View File

@ -51,12 +51,14 @@ public abstract class AbstractSessionRenewTest
AbstractTestServer server = createServer(0, 1, scavengePeriod); AbstractTestServer server = createServer(0, 1, scavengePeriod);
ServletContextHandler context = server.addContext(contextPath); ServletContextHandler context = server.addContext(contextPath);
context.addServlet(TestServlet.class, servletMapping); context.addServlet(TestServlet.class, servletMapping);
server.start();
int port=server.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
try try
{ {
server.start();
int port=server.getPort();
client.start(); client.start();
//make a request to create a session //make a request to create a session
@ -78,6 +80,7 @@ public abstract class AbstractSessionRenewTest
finally finally
{ {
client.stop(); client.stop();
server.stop();
} }
} }

View File

@ -52,10 +52,11 @@ public abstract class AbstractSessionValueSavingTest
int scavengePeriod = 20000; int scavengePeriod = 20000;
AbstractTestServer server1 = createServer(0, maxInactivePeriod, scavengePeriod); AbstractTestServer server1 = createServer(0, maxInactivePeriod, scavengePeriod);
server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping);
server1.start();
int port1=server1.getPort();
try try
{ {
server1.start();
int port1=server1.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();

View File

@ -96,16 +96,20 @@ public abstract class AbstractWebAppObjectInSessionTest
AbstractTestServer server1 = createServer(0); AbstractTestServer server1 = createServer(0);
server1.addWebAppContext(warDir.getCanonicalPath(), contextPath).addServlet(WebAppObjectInSessionServlet.class.getName(), servletMapping); server1.addWebAppContext(warDir.getCanonicalPath(), contextPath).addServlet(WebAppObjectInSessionServlet.class.getName(), servletMapping);
server1.start();
int port1 = server1.getPort();
try try
{ {
server1.start();
int port1 = server1.getPort();
AbstractTestServer server2 = createServer(0); AbstractTestServer server2 = createServer(0);
server2.addWebAppContext(warDir.getCanonicalPath(), contextPath).addServlet(WebAppObjectInSessionServlet.class.getName(), servletMapping); server2.addWebAppContext(warDir.getCanonicalPath(), contextPath).addServlet(WebAppObjectInSessionServlet.class.getName(), servletMapping);
server2.start();
int port2 = server2.getPort();
try try
{ {
server2.start();
int port2 = server2.getPort();
HttpClient client = new HttpClient(); HttpClient client = new HttpClient();
client.start(); client.start();
try try