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/05 14:08:22 UTC

svn commit: r544461 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java

Author: almaw
Date: Tue Jun  5 05:08:21 2007
New Revision: 544461

URL: http://svn.apache.org/viewvc?view=rev&rev=544461
Log:
Weak references for factory, so we can be garbage collected on redeploy.

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java?view=diff&rev=544461&r1=544460&r2=544461
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/crypt/ClassCryptFactory.java Tue Jun  5 05:08:21 2007
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.util.crypt;
 
+import java.lang.ref.WeakReference;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -29,7 +31,7 @@
 public class ClassCryptFactory implements ICryptFactory
 {
 	private static final Logger log = LoggerFactory.getLogger(ClassCryptFactory.class);
-	private Class cryptClass;
+	private WeakReference/*<Class>*/ cryptClass;
 	private String encryptionKey;
 
 	/**
@@ -52,7 +54,7 @@
 			throw new IllegalArgumentException("cryptClass must implement ICrypt interface");
 		}
 
-		this.cryptClass = cryptClass;
+		this.cryptClass = new WeakReference(cryptClass);
 		this.encryptionKey=encryptionKey;
 	}
 
@@ -63,7 +65,7 @@
 	{
 		try
 		{
-			ICrypt crypt = (ICrypt)cryptClass.newInstance();
+			ICrypt crypt = (ICrypt)((Class)cryptClass.get()).newInstance();
 			log.info("using encryption/decryption object " + crypt);
 			crypt.setKey(encryptionKey);
 			return crypt;