Author: jdonnerstag
Date: Wed Mar 3 19:54:48 2010
New Revision: 918668
URL: http://svn.apache.org/viewvc?rev=918668&view=rev
Log:
fixed: MarkupCache messed up when using MergedMarkup (e.g. for Page markup
inheritance) together with IResourceStreams that do NOT also implement
IFixedLocationResourceStream
Issue: WICKET-2764
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/Markup.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MergedMarkup.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/IFixedLocationResourceStream.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/Markup.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/Markup.java?rev=918668&r1=918667&r2=918668&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/Markup.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/Markup.java Wed
Mar 3 19:54:48 2010
@@ -96,7 +96,8 @@
* @see MarkupResourceStream#locationAsString()
* @see IFixedLocationResourceStream#locationAsString()
*
- * @return The fixed location as a string, e.g. the file name or the URL
+ * @return The fixed location as a string, e.g. the file name or the
URL. Return null to avoid
+ * caching the markup.
*/
public String locationAsString()
{
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=918668&r1=918667&r2=918668&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
Wed Mar 3 19:54:48 2010
@@ -384,9 +384,10 @@
{
if (cacheKey != null)
{
- if (markup.locationAsString() != null)
+ String temp = markup.locationAsString();
+ if (temp != null)
{
- locationString =
markup.locationAsString();
+ locationString = temp;
}
// add the markup to the cache.
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MergedMarkup.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MergedMarkup.java?rev=918668&r1=918667&r2=918668&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MergedMarkup.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/MergedMarkup.java
Wed Mar 3 19:54:48 2010
@@ -90,6 +90,9 @@
}
}
+ /**
+ * @see org.apache.wicket.markup.Markup#locationAsString()
+ */
@Override
public String locationAsString()
{
@@ -98,8 +101,15 @@
* does, the location is unique to this combination (or vice
versa) SEE WICKET-1507 (Jeremy
* Thomerson)
*/
- return
getMarkupResourceStream().getBaseMarkup().locationAsString() + ":" +
- getMarkupResourceStream().locationAsString();
+ String l1 =
getMarkupResourceStream().getBaseMarkup().locationAsString();
+ String l2 = getMarkupResourceStream().locationAsString();
+
+ if ((l1 == null) && (l2 == null))
+ {
+ return null;
+ }
+
+ return l1 + ":" + l2;
}
/**
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/IFixedLocationResourceStream.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/IFixedLocationResourceStream.java?rev=918668&r1=918667&r2=918668&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/IFixedLocationResourceStream.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/IFixedLocationResourceStream.java
Wed Mar 3 19:54:48 2010
@@ -26,7 +26,8 @@
public interface IFixedLocationResourceStream
{
/**
- * @return The fixed location as a string, e.g. the file name or the URL
+ * @return The fixed location as a string, e.g. the file name or the
URL. Return null to avoid
+ * caching the markup.
*/
String locationAsString();
}