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);


Reply via email to