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