You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2007/09/15 23:02:03 UTC

svn commit: r575979 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java

Author: ivaynberg
Date: Sat Sep 15 14:02:02 2007
New Revision: 575979

URL: http://svn.apache.org/viewvc?rev=575979&view=rev
Log:
WICKET-946: WebRequestCodingStrategy is not synchronized http://issues.apache.org/jira/browse/WICKET-946

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

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=575979&r1=575978&r2=575979&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java Sat Sep 15 14:02:02 2007
@@ -288,8 +288,11 @@
 	 */
 	public IRequestTargetUrlCodingStrategy[] listMounts()
 	{
-		return (IRequestTargetUrlCodingStrategy[])mountsOnPath.strategies().toArray(
-				new IRequestTargetUrlCodingStrategy[mountsOnPath.size()]);
+		synchronized(mountsOnPath)
+		{
+			return (IRequestTargetUrlCodingStrategy[])mountsOnPath.strategies().toArray(
+					new IRequestTargetUrlCodingStrategy[mountsOnPath.size()]);
+		}
 	}
 
 	/**
@@ -297,16 +300,19 @@
 	 */
 	public final IRequestTargetUrlCodingStrategy urlCodingStrategyForPath(String path)
 	{
-		if (path == null)
+		synchronized(mountsOnPath)
 		{
-			return mountsOnPath.strategyForMount(null);
-		}
-		else
-		{
-			IRequestTargetUrlCodingStrategy strategy = mountsOnPath.strategyForPath(path);
-			if (strategy != null)
+			if (path == null)
+			{
+				return mountsOnPath.strategyForMount(null);
+			}
+			else
 			{
-				return strategy;
+				IRequestTargetUrlCodingStrategy strategy = mountsOnPath.strategyForPath(path);
+				if (strategy != null)
+				{
+					return strategy;
+				}
 			}
 		}
 		return null;
@@ -342,12 +348,15 @@
 			path = path.substring(1);
 		}
 
-		if (mountsOnPath.strategyForMount(path) != null)
+		synchronized(mountsOnPath)
 		{
-			throw new WicketRuntimeException(path + " is already mounted for " +
-					mountsOnPath.strategyForMount(path));
+			if (mountsOnPath.strategyForMount(path) != null)
+			{
+				throw new WicketRuntimeException(path + " is already mounted for " +
+						mountsOnPath.strategyForMount(path));
+			}
+			mountsOnPath.mount(path, encoder);
 		}
-		mountsOnPath.mount(path, encoder);
 	}
 
 	/**
@@ -394,7 +403,10 @@
 			path = path.substring(1);
 		}
 
-		mountsOnPath.unmount(path);
+		synchronized(mountsOnPath)
+		{
+			mountsOnPath.unmount(path);
+		}
 	}
 
 	/**
@@ -848,17 +860,19 @@
 	 */
 	protected IRequestTargetUrlCodingStrategy getMountEncoder(IRequestTarget requestTarget)
 	{
-		// TODO Post 1.2: Performance: Optimize algorithm if possible and/ or
-		// cache lookup results
-		for (Iterator i = mountsOnPath.strategies().iterator(); i.hasNext();)
+		synchronized(mountsOnPath)
 		{
-			IRequestTargetUrlCodingStrategy encoder = (IRequestTargetUrlCodingStrategy)i.next();
-			if (encoder.matches(requestTarget))
+			// TODO Post 1.2: Performance: Optimize algorithm if possible and/ or
+			// cache lookup results
+			for (Iterator i = mountsOnPath.strategies().iterator(); i.hasNext();)
 			{
-				return encoder;
+				IRequestTargetUrlCodingStrategy encoder = (IRequestTargetUrlCodingStrategy)i.next();
+				if (encoder.matches(requestTarget))
+				{
+					return encoder;
+				}
 			}
 		}
-
 		return null;
 	}