Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Mazursky2013-08-28 03:58:56 +0000
committerGerrit Code Review @ Eclipse.org2013-09-09 04:24:31 +0000
commit767faece5c4692748d1ac8e130b2e4c5faa1ff20 (patch)
tree787e93c5bf452b69d28d737a04d57cddae0b7ede /jetty-server
parentcdd95bb5515f35af090bcbcf6f9af03d5c6762c9 (diff)
downloadorg.eclipse.jetty.project-767faece5c4692748d1ac8e130b2e4c5faa1ff20.tar.gz
org.eclipse.jetty.project-767faece5c4692748d1ac8e130b2e4c5faa1ff20.tar.xz
org.eclipse.jetty.project-767faece5c4692748d1ac8e130b2e4c5faa1ff20.zip
[Bug 415999] Fix some of FindBugs warnings
Mostly not closed streams/DB resources are fixed. But also less important things. Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
Diffstat (limited to 'jetty-server')
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/NCSARequestLog.java2
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/Response.java7
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/handler/DefaultHandler.java7
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java8
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java319
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java107
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/DumpHandler.java2
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java10
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/ResourceCacheTest.java28
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/handler/ResourceHandlerTest.java15
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLSelectChannelConnectorLoadTest.java5
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java6
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSelectChannelTimeoutTest.java6
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslUploadTest.java5
14 files changed, 245 insertions, 282 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/NCSARequestLog.java b/jetty-server/src/main/java/org/eclipse/jetty/server/NCSARequestLog.java
index ef11b3e0c7..33e6b6f7eb 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/NCSARequestLog.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/NCSARequestLog.java
@@ -208,7 +208,7 @@ public class NCSARequestLog extends AbstractNCSARequestLog implements RequestLog
{
if (_writer==null)
return;
- _writer.write(requestEntry.toString());
+ _writer.write(requestEntry);
_writer.write(StringUtil.__LINE_SEPARATOR);
_writer.flush();
}
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
index b1fa612447..16c331cb94 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
@@ -423,8 +423,11 @@ public class Response implements HttpServletResponse
writer.flush();
setContentLength(writer.size());
- writer.writeTo(getOutputStream());
- writer.destroy();
+ try (ServletOutputStream outputStream = getOutputStream())
+ {
+ writer.writeTo(outputStream);
+ writer.destroy();
+ }
}
}
else if (code!=SC_PARTIAL_CONTENT)
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/DefaultHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/DefaultHandler.java
index 3cccf31976..2d8d6ea9a1 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/DefaultHandler.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/DefaultHandler.java
@@ -169,9 +169,10 @@ public class DefaultHandler extends AbstractHandler
writer.write("\n</BODY>\n</HTML>\n");
writer.flush();
response.setContentLength(writer.size());
- OutputStream out=response.getOutputStream();
- writer.writeTo(out);
- out.close();
+ try (OutputStream out=response.getOutputStream())
+ {
+ writer.writeTo(out);
+ }
}
/* ------------------------------------------------------------ */
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java
index d1e13ce35b..07b289d8d6 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java
@@ -281,7 +281,7 @@ public class ResourceHandler extends HandlerWrapper
{
LOG.warn(e.toString());
LOG.debug(e);
- throw new IllegalArgumentException(stylesheet.toString());
+ throw new IllegalArgumentException(stylesheet);
}
}
@@ -291,7 +291,7 @@ public class ResourceHandler extends HandlerWrapper
*/
public String getCacheControl()
{
- return _cacheControl.toString();
+ return _cacheControl;
}
/* ------------------------------------------------------------ */
@@ -484,7 +484,7 @@ public class ResourceHandler extends HandlerWrapper
String mime=_mimeTypes.getMimeByExtension(resource.toString());
if (mime==null)
mime=_mimeTypes.getMimeByExtension(request.getPathInfo());
- doResponseHeaders(response,resource,mime!=null?mime.toString():null);
+ doResponseHeaders(response,resource,mime);
if (_etags)
baseRequest.getResponse().getHttpFields().put(HttpHeader.ETAG,etag);
@@ -615,7 +615,7 @@ public class ResourceHandler extends HandlerWrapper
response.setContentLength((int)length);
if (_cacheControl!=null)
- response.setHeader(HttpHeader.CACHE_CONTROL.asString(),_cacheControl.toString());
+ response.setHeader(HttpHeader.CACHE_CONTROL.asString(),_cacheControl);
}
}
}
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java
index 6590e2420e..c57188d5d6 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java
@@ -623,11 +623,10 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
_deleteId = "delete from "+_sessionIdTable+" where id = ?";
_queryId = "select * from "+_sessionIdTable+" where id = ?";
- Connection connection = null;
- try
+ try (Connection connection = getConnection();
+ Statement statement = connection.createStatement())
{
//make the id table
- connection = getConnection();
connection.setAutoCommit(true);
DatabaseMetaData metaData = connection.getMetaData();
_dbAdaptor = new DatabaseAdaptor(metaData);
@@ -635,80 +634,86 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
//checking for table existence is case-sensitive, but table creation is not
String tableName = _dbAdaptor.convertIdentifier(_sessionIdTable);
- ResultSet result = metaData.getTables(null, null, tableName, null);
- if (!result.next())
+ try (ResultSet result = metaData.getTables(null, null, tableName, null))
{
- //table does not exist, so create it
- connection.createStatement().executeUpdate(_createSessionIdTable);
+ if (!result.next())
+ {
+ //table does not exist, so create it
+ statement.executeUpdate(_createSessionIdTable);
+ }
}
-
//make the session table if necessary
tableName = _dbAdaptor.convertIdentifier(_sessionTable);
- result = metaData.getTables(null, null, tableName, null);
- if (!result.next())
+ try (ResultSet result = metaData.getTables(null, null, tableName, null))
{
- //table does not exist, so create it
- String blobType = _dbAdaptor.getBlobType();
- String longType = _dbAdaptor.getLongType();
- _createSessionTable = "create table "+_sessionTable+" ("+_sessionTableRowId+" varchar(120), sessionId varchar(120), "+
- " contextPath varchar(60), virtualHost varchar(60), lastNode varchar(60), accessTime "+longType+", "+
- " lastAccessTime "+longType+", createTime "+longType+", cookieTime "+longType+", "+
- " lastSavedTime "+longType+", expiryTime "+longType+", maxInterval "+longType+", map "+blobType+", primary key("+_sessionTableRowId+"))";
- connection.createStatement().executeUpdate(_createSessionTable);
- }
- else
- {
- //session table exists, check it has maxinterval column
- ResultSet colResult = null;
- try
- {
- colResult = metaData.getColumns(null, null,_dbAdaptor.convertIdentifier(_sessionTable), _dbAdaptor.convertIdentifier("maxInterval"));
- }
- catch (SQLException s)
+ if (!result.next())
{
- LOG.warn("Problem checking if "+_sessionTable+" table contains maxInterval column. Ensure table contains column definition: \"maxInterval long not null default -999\"");
- throw s;
+ //table does not exist, so create it
+ String blobType = _dbAdaptor.getBlobType();
+ String longType = _dbAdaptor.getLongType();
+ _createSessionTable = "create table "+_sessionTable+" ("+_sessionTableRowId+" varchar(120), sessionId varchar(120), "+
+ " contextPath varchar(60), virtualHost varchar(60), lastNode varchar(60), accessTime "+longType+", "+
+ " lastAccessTime "+longType+", createTime "+longType+", cookieTime "+longType+", "+
+ " lastSavedTime "+longType+", expiryTime "+longType+", maxInterval "+longType+", map "+blobType+", primary key("+_sessionTableRowId+"))";
+ statement.executeUpdate(_createSessionTable);
}
-
- if (!colResult.next())
+ else
{
+ //session table exists, check it has maxinterval column
+ ResultSet colResult = null;
try
{
- //add the maxinterval column
- String longType = _dbAdaptor.getLongType();
- connection.createStatement().executeUpdate("alter table "+_sessionTable+" add maxInterval "+longType+" not null default "+MAX_INTERVAL_NOT_SET);
+ colResult = metaData.getColumns(null, null,_dbAdaptor.convertIdentifier(_sessionTable), _dbAdaptor.convertIdentifier("maxInterval"));
}
catch (SQLException s)
{
- LOG.warn("Problem adding maxInterval column. Ensure table contains column definition: \"maxInterval long not null default -999\"");
+ LOG.warn("Problem checking if "+_sessionTable+" table contains maxInterval column. Ensure table contains column definition: \"maxInterval long not null default -999\"");
throw s;
}
- }
+ try
+ {
+ if (!colResult.next())
+ {
+ try
+ {
+ //add the maxinterval column
+ String longType = _dbAdaptor.getLongType();
+ statement.executeUpdate("alter table "+_sessionTable+" add maxInterval "+longType+" not null default "+MAX_INTERVAL_NOT_SET);
+ }
+ catch (SQLException s)
+ {
+ LOG.warn("Problem adding maxInterval column. Ensure table contains column definition: \"maxInterval long not null default -999\"");
+ throw s;
+ }
+ }
+ }
+ finally
+ {
+ colResult.close();
+ }
+ }
}
-
//make some indexes on the JettySessions table
String index1 = "idx_"+_sessionTable+"_expiry";
String index2 = "idx_"+_sessionTable+"_session";
- result = metaData.getIndexInfo(null, null, tableName, false, false);
boolean index1Exists = false;
boolean index2Exists = false;
- while (result.next())
+ try (ResultSet result = metaData.getIndexInfo(null, null, tableName, false, false))
{
- String idxName = result.getString("INDEX_NAME");
- if (index1.equalsIgnoreCase(idxName))
- index1Exists = true;
- else if (index2.equalsIgnoreCase(idxName))
- index2Exists = true;
- }
- if (!(index1Exists && index2Exists))
- {
- Statement statement = connection.createStatement();
- if (!index1Exists)
- statement.executeUpdate("create index "+index1+" on "+_sessionTable+" (expiryTime)");
- if (!index2Exists)
- statement.executeUpdate("create index "+index2+" on "+_sessionTable+" (sessionId, contextPath)");
+ while (result.next())
+ {
+ String idxName = result.getString("INDEX_NAME");
+ if (index1.equalsIgnoreCase(idxName))
+ index1Exists = true;
+ else if (index2.equalsIgnoreCase(idxName))
+ index2Exists = true;
+ }
}
+ if (!index1Exists)
+ statement.executeUpdate("create index "+index1+" on "+_sessionTable+" (expiryTime)");
+ if (!index2Exists)
+ statement.executeUpdate("create index "+index2+" on "+_sessionTable+" (sessionId, contextPath)");
//set up some strings representing the statements for session manipulation
_insertSession = "insert into "+_sessionTable+
@@ -729,11 +734,6 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
}
- finally
- {
- if (connection != null)
- connection.close();
- }
}
/**
@@ -745,27 +745,24 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
private void insert (String id)
throws SQLException
{
- Connection connection = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement query = connection.prepareStatement(_queryId))
{
- connection = getConnection();
connection.setAutoCommit(true);
- PreparedStatement query = connection.prepareStatement(_queryId);
query.setString(1, id);
- ResultSet result = query.executeQuery();
- //only insert the id if it isn't in the db already
- if (!result.next())
+ try (ResultSet result = query.executeQuery())
{
- PreparedStatement statement = connection.prepareStatement(_insertId);
- statement.setString(1, id);
- statement.executeUpdate();
+ //only insert the id if it isn't in the db already
+ if (!result.next())
+ {
+ try (PreparedStatement statement = connection.prepareStatement(_insertId))
+ {
+ statement.setString(1, id);
+ statement.executeUpdate();
+ }
+ }
}
}
- finally
- {
- if (connection != null)
- connection.close();
- }
}
/**
@@ -777,20 +774,13 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
private void delete (String id)
throws SQLException
{
- Connection connection = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_deleteId))
{
- connection = getConnection();
connection.setAutoCommit(true);
- PreparedStatement statement = connection.prepareStatement(_deleteId);
statement.setString(1, id);
statement.executeUpdate();
}
- finally
- {
- if (connection != null)
- connection.close();
- }
}
@@ -804,20 +794,15 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
private boolean exists (String id)
throws SQLException
{
- Connection connection = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_queryId))
{
- connection = getConnection();
connection.setAutoCommit(true);
- PreparedStatement statement = connection.prepareStatement(_queryId);
statement.setString(1, id);
- ResultSet result = statement.executeQuery();
- return result.next();
- }
- finally
- {
- if (connection != null)
- connection.close();
+ try (ResultSet result = statement.executeQuery())
+ {
+ return result.next();
+ }
}
}
@@ -835,7 +820,6 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
private void scavenge ()
{
Connection connection = null;
- Set<String> expiredSessionIds = new HashSet<String>();
try
{
if (LOG.isDebugEnabled())
@@ -844,70 +828,78 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
{
connection = getConnection();
connection.setAutoCommit(true);
+ Set<String> expiredSessionIds = new HashSet<String>();
//Pass 1: find sessions for which we were last managing node that have just expired since last pass
- PreparedStatement statement = connection.prepareStatement(_selectBoundedExpiredSessions);
long lowerBound = (_lastScavengeTime - _scavengeIntervalMs);
long upperBound = _lastScavengeTime;
if (LOG.isDebugEnabled())
LOG.debug (getWorkerName()+"- Pass 1: Searching for sessions expired between "+lowerBound + " and "+upperBound);
- statement.setString(1, getWorkerName());
- statement.setLong(2, lowerBound);
- statement.setLong(3, upperBound);
- ResultSet result = statement.executeQuery();
- while (result.next())
+ try (PreparedStatement statement = connection.prepareStatement(_selectBoundedExpiredSessions))
{
- String sessionId = result.getString("sessionId");
- expiredSessionIds.add(sessionId);
- if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId);
+ statement.setString(1, getWorkerName());
+ statement.setLong(2, lowerBound);
+ statement.setLong(3, upperBound);
+ try (ResultSet result = statement.executeQuery())
+ {
+ while (result.next())
+ {
+ String sessionId = result.getString("sessionId");
+ expiredSessionIds.add(sessionId);
+ if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId);
+ }
+ }
}
- result.close();
scavengeSessions(expiredSessionIds, false);
-
+
//Pass 2: find sessions that have expired a while ago for which this node was their last manager
- PreparedStatement selectExpiredSessions = connection.prepareStatement(_selectExpiredSessions);
- expiredSessionIds.clear();
- upperBound = _lastScavengeTime - (2 * _scavengeIntervalMs);
- if (upperBound > 0)
- {
- if (LOG.isDebugEnabled()) LOG.debug(getWorkerName()+"- Pass 2: Searching for sessions expired before "+upperBound);
- selectExpiredSessions.setLong(1, upperBound);
- result = selectExpiredSessions.executeQuery();
- while (result.next())
+ try (PreparedStatement selectExpiredSessions = connection.prepareStatement(_selectExpiredSessions))
+ {
+ expiredSessionIds.clear();
+ upperBound = _lastScavengeTime - (2 * _scavengeIntervalMs);
+ if (upperBound > 0)
{
- String sessionId = result.getString("sessionId");
- String lastNode = result.getString("lastNode");
- if ((getWorkerName() == null && lastNode == null) || (getWorkerName() != null && getWorkerName().equals(lastNode)))
- expiredSessionIds.add(sessionId);
- if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId+" last managed by "+getWorkerName());
+ if (LOG.isDebugEnabled()) LOG.debug(getWorkerName()+"- Pass 2: Searching for sessions expired before "+upperBound);
+ selectExpiredSessions.setLong(1, upperBound);
+ try (ResultSet result = selectExpiredSessions.executeQuery())
+ {
+ while (result.next())
+ {
+ String sessionId = result.getString("sessionId");
+ String lastNode = result.getString("lastNode");
+ if ((getWorkerName() == null && lastNode == null) || (getWorkerName() != null && getWorkerName().equals(lastNode)))
+ expiredSessionIds.add(sessionId);
+ if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId+" last managed by "+getWorkerName());
+ }
+ }
+ scavengeSessions(expiredSessionIds, false);
}
- result.close();
- scavengeSessions(expiredSessionIds, false);
- }
- //Pass 3:
- //find all sessions that have expired at least a couple of scanIntervals ago
- //if we did not succeed in loading them (eg their related context no longer exists, can't be loaded etc) then
- //they are simply deleted
- upperBound = _lastScavengeTime - (3 * _scavengeIntervalMs);
- expiredSessionIds.clear();
- if (upperBound > 0)
- {
- if (LOG.isDebugEnabled()) LOG.debug(getWorkerName()+"- Pass 3: searching for sessions expired before "+upperBound);
- selectExpiredSessions.setLong(1, upperBound);
- result = selectExpiredSessions.executeQuery();
- while (result.next())
+ //Pass 3:
+ //find all sessions that have expired at least a couple of scanIntervals ago
+ //if we did not succeed in loading them (eg their related context no longer exists, can't be loaded etc) then
+ //they are simply deleted
+ upperBound = _lastScavengeTime - (3 * _scavengeIntervalMs);
+ expiredSessionIds.clear();
+ if (upperBound > 0)
{
- String sessionId = result.getString("sessionId");
- expiredSessionIds.add(sessionId);
- if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId);
- }
- result.close();
- scavengeSessions(expiredSessionIds, true);
+ if (LOG.isDebugEnabled()) LOG.debug(getWorkerName()+"- Pass 3: searching for sessions expired before "+upperBound);
+ selectExpiredSessions.setLong(1, upperBound);
+ try (ResultSet result = selectExpiredSessions.executeQuery())
+ {
+ while (result.next())
+ {
+ String sessionId = result.getString("sessionId");
+ expiredSessionIds.add(sessionId);
+ if (LOG.isDebugEnabled()) LOG.debug ("Found expired sessionId="+sessionId);
+ }
+ }
+ scavengeSessions(expiredSessionIds, true);
+ }
}
}
}
@@ -990,10 +982,8 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
return;
String[] ids = expiredIds.toArray(new String[expiredIds.size()]);
- Connection con = null;
- try
+ try (Connection con = getConnection())
{
- con = getConnection();
con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
con.setAutoCommit(false);
@@ -1002,38 +992,29 @@ public class JDBCSessionIdManager extends AbstractSessionIdManager
int blocksize = _deleteBlockSize;
int block = 0;
- while (end < ids.length)
+ try (Statement statement = con.createStatement())
{
- start = block*blocksize;
- if ((ids.length - start) >= blocksize)
- end = start + blocksize;
- else
- end = ids.length;
-
- Statement statement = con.createStatement();
- //take them out of the sessionIds table
- statement.executeUpdate(fillInClause("delete from "+_sessionIdTable+" where id in ", ids, start, end));
- //take them out of the sessions table
- statement.executeUpdate(fillInClause("delete from "+_sessionTable+" where sessionId in ", ids, start, end));
- block++;
+ while (end < ids.length)
+ {
+ start = block*blocksize;
+ if ((ids.length - start) >= blocksize)
+ end = start + blocksize;
+ else
+ end = ids.length;
+
+ //take them out of the sessionIds table
+ statement.executeUpdate(fillInClause("delete from "+_sessionIdTable+" where id in ", ids, start, end));
+ //take them out of the sessions table
+ statement.executeUpdate(fillInClause("delete from "+_sessionTable+" where sessionId in ", ids, start, end));
+ block++;
+ }
}
- con.commit();
-
- }
- catch (Exception e)
- {
- if (con != null)
+ catch (Exception e)
{
con.rollback();
throw e;
}
- }
- finally
- {
- if (con != null)
- {
- con.close();
- }
+ con.commit();
}
}
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java
index bf595d15bb..99314557ee 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java
@@ -874,14 +874,11 @@ public class JDBCSessionManager extends AbstractSessionManager
@SuppressWarnings("unchecked")
public void run()
{
- Session session = null;
- Connection connection=null;
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = _jdbcSessionIdMgr._dbAdaptor.getLoadStatement(connection, id, canonicalContextPath, vhost);
+ ResultSet result = statement.executeQuery())
{
- connection = getConnection();
- statement = _jdbcSessionIdMgr._dbAdaptor.getLoadStatement(connection, id, canonicalContextPath, vhost);
- ResultSet result = statement.executeQuery();
+ Session session = null;
if (result.next())
{
long maxInterval = result.getLong("maxInterval");
@@ -901,11 +898,12 @@ public class JDBCSessionManager extends AbstractSessionManager
session.setCanonicalContext(result.getString("contextPath"));
session.setVirtualHost(result.getString("virtualHost"));
- InputStream is = ((JDBCSessionIdManager)getSessionIdManager())._dbAdaptor.getBlobInputStream(result, "map");
- ClassLoadingObjectInputStream ois = new ClassLoadingObjectInputStream (is);
- Object o = ois.readObject();
- session.addAttributes((Map<String,Object>)o);
- ois.close();
+ try (InputStream is = ((JDBCSessionIdManager)getSessionIdManager())._dbAdaptor.getBlobInputStream(result, "map");
+ ClassLoadingObjectInputStream ois = new ClassLoadingObjectInputStream(is))
+ {
+ Object o = ois.readObject();
+ session.addAttributes((Map<String,Object>)o);
+ }
if (LOG.isDebugEnabled())
LOG.debug("LOADED session "+session);
@@ -919,14 +917,6 @@ public class JDBCSessionManager extends AbstractSessionManager
{
_exception.set(e);
}
- finally
- {
- if (connection!=null)
- {
- try { connection.close();}
- catch(Exception e) { LOG.warn(e); }
- }
- }
}
};
@@ -959,15 +949,13 @@ public class JDBCSessionManager extends AbstractSessionManager
return;
//put into the database
- Connection connection = getConnection();
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_jdbcSessionIdMgr._insertSession))
{
String rowId = calculateRowId(session);
long now = System.currentTimeMillis();
connection.setAutoCommit(true);
- statement = connection.prepareStatement(_jdbcSessionIdMgr._insertSession);
statement.setString(1, rowId); //rowId
statement.setString(2, session.getId()); //session id
statement.setString(3, session.getCanonicalContext()); //context path
@@ -984,6 +972,7 @@ public class JDBCSessionManager extends AbstractSessionManager
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(session.getAttributeMap());
+ oos.flush();
byte[] bytes = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
@@ -993,16 +982,9 @@ public class JDBCSessionManager extends AbstractSessionManager
statement.executeUpdate();
session.setRowId(rowId); //set it on the in-memory data as well as in db
session.setLastSaved(now);
-
-
- if (LOG.isDebugEnabled())
- LOG.debug("Stored session "+session);
- }
- finally
- {
- if (connection!=null)
- connection.close();
}
+ if (LOG.isDebugEnabled())
+ LOG.debug("Stored session "+session);
}
@@ -1018,13 +1000,11 @@ public class JDBCSessionManager extends AbstractSessionManager
if (data==null)
return;
- Connection connection = getConnection();
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSession))
{
long now = System.currentTimeMillis();
connection.setAutoCommit(true);
- statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSession);
statement.setString(1, data.getId());
statement.setString(2, getSessionIdManager().getWorkerName());//my node id
statement.setLong(3, data.getAccessed());//accessTime
@@ -1036,6 +1016,7 @@ public class JDBCSessionManager extends AbstractSessionManager
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(data.getAttributeMap());
+ oos.flush();
byte[] bytes = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
@@ -1044,14 +1025,9 @@ public class JDBCSessionManager extends AbstractSessionManager
statement.executeUpdate();
data.setLastSaved(now);
- if (LOG.isDebugEnabled())
- LOG.debug("Updated session "+data);
- }
- finally
- {
- if (connection!=null)
- connection.close();
}
+ if (LOG.isDebugEnabled())
+ LOG.debug("Updated session "+data);
}
@@ -1065,24 +1041,16 @@ public class JDBCSessionManager extends AbstractSessionManager
throws Exception
{
String nodeId = getSessionIdManager().getWorkerName();
- Connection connection = getConnection();
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSessionNode))
{
connection.setAutoCommit(true);
- statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSessionNode);
statement.setString(1, nodeId);
statement.setString(2, data.getRowId());
statement.executeUpdate();
- statement.close();
- if (LOG.isDebugEnabled())
- LOG.debug("Updated last node for session id="+data.getId()+", lastNode = "+nodeId);
- }
- finally
- {
- if (connection!=null)
- connection.close();
}
+ if (LOG.isDebugEnabled())
+ LOG.debug("Updated last node for session id="+data.getId()+", lastNode = "+nodeId);
}
/**
@@ -1094,13 +1062,11 @@ public class JDBCSessionManager extends AbstractSessionManager
private void updateSessionAccessTime (Session data)
throws Exception
{
- Connection connection = getConnection();
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSessionAccessTime))
{
long now = System.currentTimeMillis();
connection.setAutoCommit(true);
- statement = connection.prepareStatement(_jdbcSessionIdMgr._updateSessionAccessTime);
statement.setString(1, getSessionIdManager().getWorkerName());
statement.setLong(2, data.getAccessed());
statement.setLong(3, data.getLastAccessedTime());
@@ -1111,15 +1077,9 @@ public class JDBCSessionManager extends AbstractSessionManager
statement.executeUpdate();
data.setLastSaved(now);
- statement.close();
- if (LOG.isDebugEnabled())
- LOG.debug("Updated access time session id="+data.getId());
- }
- finally
- {
- if (connection!=null)
- connection.close();
}
+ if (LOG.isDebugEnabled())
+ LOG.debug("Updated access time session id="+data.getId());
}
@@ -1135,22 +1095,15 @@ public class JDBCSessionManager extends AbstractSessionManager
protected void deleteSession (Session data)
throws Exception
{
- Connection connection = getConnection();
- PreparedStatement statement = null;
- try
+ try (Connection connection = getConnection();
+ PreparedStatement statement = connection.prepareStatement(_jdbcSessionIdMgr._deleteSession))
{
connection.setAutoCommit(true);
- statement = connection.prepareStatement(_jdbcSessionIdMgr._deleteSession);
statement.setString(1, data.getRowId());
statement.executeUpdate();
if (LOG.isDebugEnabled())
LOG.debug("Deleted Session "+data);
}
- finally
- {
- if (connection!=null)
- connection.close();
- }
}
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/DumpHandler.java b/jetty-server/src/test/java/org/eclipse/jetty/server/DumpHandler.java
index 27440fa815..0f86e01f5e 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/DumpHandler.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/DumpHandler.java
@@ -117,7 +117,7 @@ public class DumpHandler extends AbstractHandler
Enumeration<String> names=request.getParameterNames();
while(names.hasMoreElements())
{
- String name=names.nextElement().toString();
+ String name=names.nextElement();
String[] values=request.getParameterValues(name);
if (values==null || values.length==0)
{
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java
index e2d94bfbbf..a731c42114 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java
@@ -988,10 +988,12 @@ public class RequestTest
if (evil_keys.exists())
{
LOG.info("Using real evil keys!");
- BufferedReader in = new BufferedReader(new FileReader(evil_keys));
- String key=null;
- while((key=in.readLine())!=null)
- buf.append("&").append(key).append("=").append("x");
+ try (BufferedReader in = new BufferedReader(new FileReader(evil_keys)))
+ {
+ String key=null;
+ while((key=in.readLine())!=null)
+ buf.append("&").append(key).append("=").append("x");
+ }
}
else
{
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ResourceCacheTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ResourceCacheTest.java
index 09ebcf4aca..3383b596b5 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/ResourceCacheTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ResourceCacheTest.java
@@ -25,6 +25,7 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import org.eclipse.jetty.http.HttpContent;
import org.eclipse.jetty.http.MimeTypes;
@@ -117,11 +118,12 @@ public class ResourceCacheTest
files[i]=File.createTempFile("R-"+i+"-",".txt");
files[i].deleteOnExit();
names[i]=files[i].getName();
- FileOutputStream out = new FileOutputStream(files[i]);
- for (int j=0;j<(i*10-1);j++)
- out.write(' ');
- out.write('\n');
- out.close();
+ try (OutputStream out = new FileOutputStream(files[i]))
+ {
+ for (int j=0;j<(i*10-1);j++)
+ out.write(' ');
+ out.write('\n');
+ }
}
directory=Resource.newResource(files[0].getParentFile().getAbsolutePath());
@@ -182,9 +184,10 @@ public class ResourceCacheTest
Thread.sleep(200);
- FileOutputStream out = new FileOutputStream(files[6]);
- out.write(' ');
- out.close();
+ try (OutputStream out = new FileOutputStream(files[6]))
+ {
+ out.write(' ');
+ }
content=cache.lookup(names[7]);
assertEquals(70,cache.getCachedSize());
assertEquals(1,cache.getCachedFiles());
@@ -250,10 +253,11 @@ public class ResourceCacheTest
{
StringBuilder buffer = new StringBuilder();
String line = null;
- BufferedReader br = new BufferedReader(new InputStreamReader(r.addPath(path).getURL().openStream()));
- while((line=br.readLine())!=null)
- buffer.append(line);
- br.close();
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(r.addPath(path).getURL().openStream())))
+ {
+ while((line=br.readLine())!=null)
+ buffer.append(line);
+ }
return buffer.toString();
}
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ResourceHandlerTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ResourceHandlerTest.java
index 1a63f0a6c5..8e65b66141 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ResourceHandlerTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ResourceHandlerTest.java
@@ -21,6 +21,8 @@ package org.eclipse.jetty.server.handler;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.Socket;
import java.net.URI;
@@ -58,11 +60,14 @@ public class ResourceHandlerTest
File dir = MavenTestingUtils.getTargetFile("test-classes/simple");
File huge = new File(dir,"huge.txt");
File big=new File(dir,"big.txt");
- FileOutputStream out = new FileOutputStream(huge);
- for (int i=0;i<100;i++)
- {
- FileInputStream in=new FileInputStream(big);
- IO.copy(in,out);
+ try (OutputStream out = new FileOutputStream(huge)) {
+ for (int i=0;i<100;i++)
+ {
+ try (InputStream in=new FileInputStream(big))
+ {
+ IO.copy(in,out);
+ }
+ }
}
huge.deleteOnExit();
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLSelectChannelConnectorLoadTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLSelectChannelConnectorLoadTest.java
index e160c45cbd..322f274e00 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLSelectChannelConnectorLoadTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLSelectChannelConnectorLoadTest.java
@@ -75,7 +75,10 @@ public class SSLSelectChannelConnectorLoadTest
server.start();
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
- keystore.load(new FileInputStream(keystorePath), "storepwd".toCharArray());
+ try (InputStream stream = new FileInputStream(keystorePath))
+ {
+ keystore.load(stream, "storepwd".toCharArray());
+ }
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keystore);
sslContext = SSLContext.getInstance("SSL");
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java
index 94b8bcfb4f..6c37535b86 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java
@@ -21,6 +21,7 @@ package org.eclipse.jetty.server.ssl;
import static org.junit.Assert.assertEquals;
import java.io.FileInputStream;
+import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;
@@ -111,7 +112,10 @@ public class SelectChannelServerSslTest extends HttpServerTestBase
startServer(connector);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
- keystore.load(new FileInputStream(sslContextFactory.getKeyStorePath()), "storepwd".toCharArray());
+ try (InputStream stream = new FileInputStream(sslContextFactory.getKeyStorePath()))
+ {
+ keystore.load(stream, "storepwd".toCharArray());
+ }
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keystore);
__sslContext = SSLContext.getInstance("TLS");
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSelectChannelTimeoutTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSelectChannelTimeoutTest.java
index 6d1551b6ed..7e40aecee0 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSelectChannelTimeoutTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSelectChannelTimeoutTest.java
@@ -19,6 +19,7 @@
package org.eclipse.jetty.server.ssl;
import java.io.FileInputStream;
+import java.io.InputStream;
import java.net.Socket;
import java.security.KeyStore;
@@ -55,7 +56,10 @@ public class SslSelectChannelTimeoutTest extends ConnectorTimeoutTest
startServer(connector);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
- keystore.load(new FileInputStream(keystorePath), "storepwd".toCharArray());
+ try (InputStream stream = new FileInputStream(keystorePath))
+ {
+ keystore.load(stream, "storepwd".toCharArray());
+ }
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keystore);
__sslContext = SSLContext.getInstance("SSL");
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslUploadTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslUploadTest.java
index fbda4c5905..d4ef124138 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslUploadTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslUploadTest.java
@@ -88,7 +88,10 @@ public class SslUploadTest
{
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
SslContextFactory ctx=connector.getConnectionFactory(SslConnectionFactory.class).getSslContextFactory();
- keystore.load(new FileInputStream(ctx.getKeyStorePath()), "storepwd".toCharArray());
+ try (InputStream stream = new FileInputStream(ctx.getKeyStorePath()))
+ {
+ keystore.load(stream, "storepwd".toCharArray());
+ }
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keystore);
SSLContext sslContext = SSLContext.getInstance("SSL");

Back to the top