You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2010/08/15 21:01:17 UTC

svn commit: r985734 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java

Author: jdonnerstag
Date: Sun Aug 15 19:01:17 2010
New Revision: 985734

URL: http://svn.apache.org/viewvc?rev=985734&view=rev
Log:
fixed: MarkupCache's modification listener fails with 'no Application in this thread' error
Issue: WICKET-2992

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java?rev=985734&r1=985733&r2=985734&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java Sun Aug 15 19:01:17 2010
@@ -61,6 +61,12 @@ public class MarkupCache implements IMar
 	private IMarkupCacheKeyProvider markupCacheKeyProvider;
 
 	/**
+	 * Note that you can not use Application.get() since removeMarkup() will be call from a
+	 * ModificationWatcher thread which has no associated Application.
+	 */
+	private final Application application;
+
+	/**
 	 * @return The markup cache associated with the application
 	 */
 	public final static IMarkupCache get()
@@ -75,6 +81,8 @@ public class MarkupCache implements IMar
 	 */
 	protected MarkupCache()
 	{
+		application = Application.get();
+
 		markupCache = newCacheImplementation();
 		markupKeyCache = newCacheImplementation();
 		if (markupCache == null)
@@ -167,8 +175,7 @@ public class MarkupCache implements IMar
 			// resources no longer in the cache. Note that you can not use
 			// Application.get() since removeMarkup() will be call from a
 			// ModificationWatcher thread which has no associated Application.
-			final IModificationWatcher watcher = Application.get()
-				.getResourceSettings()
+			final IModificationWatcher watcher = application.getResourceSettings()
 				.getResourceWatcher(true);
 			if (watcher != null)
 			{
@@ -440,6 +447,7 @@ public class MarkupCache implements IMar
 				markupKeyCache.put(cacheKey, locationString);
 				return markup;
 			}
+
 			// Watch file in the future
 			final IModificationWatcher watcher = Application.get()
 				.getResourceSettings()