You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mo...@apache.org on 2015/11/29 17:05:30 UTC
[04/33] wicket git commit: WICKET-6031 NPE in
PackageResourceReference#getResource() when there is no request
WICKET-6031 NPE in PackageResourceReference#getResource() when there is no request
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e4399d74
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e4399d74
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e4399d74
Branch: refs/heads/lambdas
Commit: e4399d74234b657435f44eb137969db1a22896d5
Parents: 490fdf6
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sat Nov 14 10:58:55 2015 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sat Nov 14 10:59:19 2015 +0100
----------------------------------------------------------------------
.../resource/PackageResourceReference.java | 34 +++++++++++++++-----
.../resource/PackageResourceReferenceTest.java | 19 +++++++++++
2 files changed, 45 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4399d74/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
index 40d7d0c..f10a01c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
@@ -111,10 +111,16 @@ public class PackageResourceReference extends ResourceReference
final String extension = getExtension();
final PackageResource resource;
-
- final Url url = RequestCycle.get().getRequest().getUrl();
- //resource attributes (locale, style, variation) might be encoded in the URL
- final UrlAttributes urlAttributes = ResourceUtil.decodeResourceReferenceAttributes(url);
+
+ RequestCycle requestCycle = RequestCycle.get();
+ UrlAttributes urlAttributes = null;
+ if (requestCycle != null)
+ {
+ //resource attributes (locale, style, variation) might be encoded in the URL
+ final Url url = requestCycle.getRequest().getUrl();
+ urlAttributes = ResourceUtil.decodeResourceReferenceAttributes(url);
+ }
+
final String currentVariation = getCurrentVariation(urlAttributes);
final String currentStyle = getCurrentStyle(urlAttributes);
final Locale currentLocale = getCurrentLocale(urlAttributes);
@@ -185,7 +191,11 @@ public class PackageResourceReference extends ResourceReference
{
Locale currentLocale = getCurrentLocale();
- return currentLocale != null ? currentLocale : attributes.getLocale();
+ return currentLocale != null
+ ? currentLocale
+ : attributes != null
+ ? attributes.getLocale()
+ : null;
}
private Locale getCurrentLocale()
@@ -208,8 +218,12 @@ public class PackageResourceReference extends ResourceReference
private String getCurrentStyle(UrlAttributes attributes)
{
String currentStyle = getCurrentStyle();
-
- return currentStyle != null ? currentStyle : attributes.getStyle();
+
+ return currentStyle != null
+ ? currentStyle
+ : attributes != null
+ ? attributes.getStyle()
+ : null;
}
private String getCurrentStyle()
@@ -233,7 +247,11 @@ public class PackageResourceReference extends ResourceReference
{
final String variation = getVariation();
- return variation != null ? variation : attributes.getVariation();
+ return variation != null
+ ? variation
+ : attributes != null
+ ? attributes.getVariation()
+ : null;
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/e4399d74/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
index df70f16..de7a0a5 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
@@ -21,6 +21,7 @@ import java.io.InputStream;
import java.util.Locale;
import org.apache.wicket.Application;
+import org.apache.wicket.ThreadContext;
import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
import org.apache.wicket.protocol.http.mock.MockHttpServletResponse;
import org.apache.wicket.request.Request;
@@ -355,5 +356,23 @@ public class PackageResourceReferenceTest extends WicketTestCase
new String(mockHttpServletResponse.getBinaryContent()));
}
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-6031
+ */
+ @Test
+ public void noRequestCycle()
+ {
+ ThreadContext.setRequestCycle(null);
+
+ PackageResourceReference reference = new PackageResourceReference(scope, "resource.txt",
+ locales[1], styles[1], variations[1]);
+
+ PackageResource resource = reference.getResource();
+ assertNotNull(resource);
+
+ assertEquals(locales[1], resource.getResourceStream().getLocale());
+ assertEquals(styles[1], resource.getResourceStream().getStyle());
+ assertEquals(variations[1], resource.getResourceStream().getVariation());
+ }
}