From 5f67544b24a95eea6d93e03b22e1050a4d7bbfaa Mon Sep 17 00:00:00 2001 From: "rogan.dawes" Date: Tue, 10 Jul 2007 11:46:17 +0000 Subject: [PATCH] Add mechanism to close DB connections Oracle ends up refusing connections if we don't close them git-svn-id: http://webgoat.googlecode.com/svn/trunk@128 4033779f-a91e-0410-96ef-6bf7bf53c507 --- .../project/JavaSource/org/owasp/webgoat/HammerHead.java | 7 +++++++ .../JavaSource/org/owasp/webgoat/session/WebSession.java | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ webgoat/main/project/JavaSource/org/owasp/webgoat/HammerHead.java b/ webgoat/main/project/JavaSource/org/owasp/webgoat/HammerHead.java index 2f24d0223..76fb4bef4 100644 --- a/ webgoat/main/project/JavaSource/org/owasp/webgoat/HammerHead.java +++ b/ webgoat/main/project/JavaSource/org/owasp/webgoat/HammerHead.java @@ -2,6 +2,7 @@ package org.owasp.webgoat; import java.io.IOException; import java.io.PrintWriter; +import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Enumeration; @@ -205,6 +206,12 @@ public class HammerHead extends HttpServlet log(request, "Could not write error screen: " + thr.getMessage()); } + try + { + WebSession.closeConnection(); + } catch (SQLException sqle) { + sqle.printStackTrace(); + } // System.out.println( "HH Leaving doPost: " ); } } diff --git a/ webgoat/main/project/JavaSource/org/owasp/webgoat/session/WebSession.java b/ webgoat/main/project/JavaSource/org/owasp/webgoat/session/WebSession.java index 01233bc1a..c9fe0319b 100644 --- a/ webgoat/main/project/JavaSource/org/owasp/webgoat/session/WebSession.java +++ b/ webgoat/main/project/JavaSource/org/owasp/webgoat/session/WebSession.java @@ -308,7 +308,7 @@ public class WebSession public static synchronized Connection getConnection(WebSession s) throws SQLException, ClassNotFoundException { - if ( connection == null ) + if ( connection == null || connection.isClosed() ) { connection = DatabaseUtilities.makeConnection( s ); } @@ -316,6 +316,13 @@ public class WebSession return connection; } + public static synchronized void closeConnection() throws SQLException + { + if (connection != null && !connection.isClosed()) { + connection.close(); + connection = null; + } + } /** * Description of the Method