You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2010/04/23 01:17:36 UTC

svn commit: r937101 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java

Author: johnh
Date: Thu Apr 22 23:17:36 2010
New Revision: 937101

URL: http://svn.apache.org/viewvc?rev=937101&view=rev
Log:
NPE safety for DefaultProxyUriManager.

Patch supplied by Ziv Horesh.


Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java?rev=937101&r1=937100&r2=937101&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java Thu Apr 22 23:17:36 2010
@@ -95,7 +95,7 @@ public class DefaultProxyUriManager impl
     Map<Uri, String> versions = Maps.newHashMap();
     if (versioner != null) {
       List<String> versionList = versioner.version(resourceUris, resources.get(0).getContainer());
-      if (versionList.size() == resources.size()) {
+      if (versionList != null && versionList.size() == resources.size()) {
         // This should always be the case.
         // Should we error if not, or just WARNING?
         Iterator<String> versionIt = versionList.iterator();

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java?rev=937101&r1=937100&r2=937101&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java Thu Apr 22 23:17:36 2010
@@ -232,6 +232,18 @@ public class DefaultProxyUriManagerTest 
   }
 
   @Test
+  public void batchedProxyChainedStyleNoVerisons() throws Exception {
+    String host = "host.com";
+    String path = "/proxy/" + DefaultProxyUriManager.CHAINED_PARAMS_TOKEN + "/path";
+    List<Uri> resources = ImmutableList.<Uri>of(RESOURCE_1, RESOURCE_2, RESOURCE_3);
+    List<Uri> uris = makeAndGet(host, path, true, true, resources);
+    assertEquals(3, uris.size());
+    for (int i = 0; i < 3; ++i) {
+      verifyChainedUri(resources.get(i), uris.get(i), true, true, null, false, host, path);
+    }
+  }
+
+  @Test
   public void validateQueryStyleUnversioned() throws Exception {
     // Validate tests also serve as end-to-end tests: create, unpack.
     checkValidate("/proxy/path", UriStatus.VALID_UNVERSIONED, null);
@@ -453,8 +465,13 @@ public class DefaultProxyUriManagerTest 
   @SuppressWarnings("unchecked")
   private ProxyUriManager.Versioner makeVersioner(UriStatus status, String... versions) {
     ProxyUriManager.Versioner versioner = createMock(ProxyUriManager.Versioner.class);
-    expect(versioner.version(isA(List.class), eq(CONTAINER)))
-        .andReturn(Lists.newArrayList(versions)).anyTimes();
+    if (versions.length > 0) {
+      expect(versioner.version(isA(List.class), eq(CONTAINER)))
+          .andReturn(Lists.newArrayList(versions)).anyTimes();
+    } else {
+      expect(versioner.version(isA(List.class), eq(CONTAINER)))
+          .andReturn(null).anyTimes();
+    }
     expect(versioner.validate(isA(Uri.class), eq(CONTAINER), isA(String.class)))
         .andReturn(status).anyTimes();
     replay(versioner);