You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2008/02/29 13:15:07 UTC

svn commit: r632303 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java

Author: knopp
Date: Fri Feb 29 04:15:03 2008
New Revision: 632303

URL: http://svn.apache.org/viewvc?rev=632303&view=rev
Log:
WICKET-1365

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java?rev=632303&r1=632302&r2=632303&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/SerializedPagesCache.java Fri Feb 29 04:15:03 2008
@@ -17,6 +17,7 @@
 package org.apache.wicket.protocol.http.pagestore;
 
 import java.io.Serializable;
+import java.lang.ref.SoftReference;
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -59,7 +60,8 @@
 			{
 				for (Iterator i = cache.iterator(); i.hasNext();)
 				{
-					SerializedPageWithSession entry = (SerializedPageWithSession)i.next();
+					SoftReference ref = (SoftReference) i.next();					
+					SerializedPageWithSession entry = (SerializedPageWithSession)ref.get();
 					if (entry != null && entry.page.get() == page)
 					{
 						i.remove();
@@ -80,7 +82,8 @@
 			{
 				for (Iterator i = cache.iterator(); i.hasNext();)
 				{
-					SerializedPageWithSession entry = (SerializedPageWithSession)i.next();
+					SoftReference ref = (SoftReference)i.next();
+					SerializedPageWithSession entry = (SerializedPageWithSession)ref.get();
 					if (entry != null && entry.page.get() == page)
 					{
 						i.remove();
@@ -107,8 +110,9 @@
 			{
 				for (Iterator i = cache.iterator(); i.hasNext();)
 				{
-					SerializedPageWithSession entry = (SerializedPageWithSession)i.next();
-					if (entry.sessionId.equals(sessionId) && entry.pageId == pageId &&
+					SoftReference ref = (SoftReference)i.next();
+					SerializedPageWithSession entry = (SerializedPageWithSession)ref.get();
+					if (entry != null && entry.sessionId.equals(sessionId) && entry.pageId == pageId &&
 						entry.pageMapName.equals(pageMapName) && entry.versionNumber == version &&
 						entry.ajaxVersionNumber == ajaxVersion)
 					{
@@ -132,13 +136,14 @@
 		List /* <SerializedPage> */pagesList)
 	{
 		SerializedPageWithSession entry = new SerializedPageWithSession(sessionId, page, pagesList);
+		SoftReference ref = new SoftReference(entry);
 
 		if (size > 0)
 		{
 			synchronized (cache)
 			{
 				removePage(page);
-				cache.add(entry);
+				cache.add(ref);
 				if (cache.size() > size)
 				{
 					cache.remove(0);