You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/06/18 12:46:07 UTC

svn commit: r548298 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java

Author: almaw
Date: Mon Jun 18 03:46:02 2007
New Revision: 548298

URL: http://svn.apache.org/viewvc?view=rev&rev=548298
Log:
WICKET-625 - Wicket doesn't clean up properly when hot-deploying; hangs onto Class references. (partial fix, work in progress)

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java?view=diff&rev=548298&r1=548297&r2=548298
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java Mon Jun 18 03:46:02 2007
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.settings;
 
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -90,7 +91,7 @@
 			IRequestLoggerSettings
 {
 	/** Class of access denied page. */
-	private Class accessDeniedPage;
+	private WeakReference/*<Class<? extends Page>*/ accessDeniedPage;
 
 	/** ajax debug mode status */
 	private boolean ajaxDebugModeEnabled = false;
@@ -163,7 +164,7 @@
 	private boolean gatherExtendedBrowserInfo = false;
 
 	/** Class of internal error page. */
-	private Class internalErrorPage;
+	private WeakReference/*<Class<? extends Page>*/ internalErrorPage;
 
 	/** I18N support */
 	private Localizer localizer;
@@ -187,7 +188,7 @@
 	private IPackageResourceGuard packageResourceGuard = new PackageResourceGuard();
 
 	/** The error page displayed when an expired page is accessed. */
-	private Class pageExpiredErrorPage;
+	private WeakReference/*<Class<? extends Page>*/ pageExpiredErrorPage;
 
 	/** factory to create new Page objects */
 	private IPageFactory pageFactory = new DefaultPageFactory();
@@ -378,7 +379,7 @@
 	 */
 	public Class getAccessDeniedPage()
 	{
-		return accessDeniedPage;
+		return (Class)accessDeniedPage.get();
 	}
 
 	/**
@@ -521,7 +522,7 @@
 	 */
 	public Class getInternalErrorPage()
 	{
-		return internalErrorPage;
+		return (Class)internalErrorPage.get();
 	}
 
 	/**
@@ -569,7 +570,7 @@
 	 */
 	public Class getPageExpiredErrorPage()
 	{
-		return pageExpiredErrorPage;
+		return (Class)pageExpiredErrorPage.get();
 	}
 
 	/**
@@ -799,7 +800,7 @@
 		}
 		checkPageClass(accessDeniedPage);
 
-		this.accessDeniedPage = accessDeniedPage;
+		this.accessDeniedPage = new WeakReference(accessDeniedPage);
 	}
 
 	/**
@@ -950,7 +951,7 @@
 		}
 		checkPageClass(internalErrorPage);
 
-		this.internalErrorPage = internalErrorPage;
+		this.internalErrorPage = new WeakReference(internalErrorPage);
 	}
 
 	/**
@@ -997,7 +998,7 @@
 		}
 		checkPageClass(pageExpiredErrorPage);
 
-		this.pageExpiredErrorPage = pageExpiredErrorPage;
+		this.pageExpiredErrorPage = new WeakReference(pageExpiredErrorPage);
 	}
 
 	/**