Author: rbaxter85
Date: Mon Aug 19 23:51:44 2013
New Revision: 1515674

URL: http://svn.apache.org/r1515674
Log:
ClassCastException: org.apache.shindig.common.uri.Uri cannot be cast to 
java.lang.String
SHINDIG-1923

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1515674&r1=1515673&r2=1515674&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
 Mon Aug 19 23:51:44 2013
@@ -86,9 +86,11 @@ import com.google.caja.reporting.Message
 import com.google.caja.reporting.RenderContext;
 import com.google.caja.util.Sets;
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
@@ -214,8 +216,8 @@ public class GadgetsHandlerService {
               HttpResponse.SC_BAD_REQUEST);
       }
     }
-    Map<String, Uri> uris = needIfrUrls ?
-            iframeUriManager.makeAllRenderingUris(gadget) : null;
+    Map<String, String> uris = needIfrUrls ?
+            translateUris(iframeUriManager.makeAllRenderingUris(gadget)) : 
null;
     Boolean needsTokenRefresh =
         isFieldIncluded(fields, "needstokenrefresh") ?
             gadget.getAllFeatures().contains("auth-refresh") : null;
@@ -234,6 +236,16 @@ public class GadgetsHandlerService {
         rpcServiceIds);
   }
 
+  private Map<String, String> translateUris(Map<String, Uri> iframeUris) {
+    Function<Uri, String> toString = new Function<Uri, String>() {
+      @Override
+      public String apply(Uri input) {
+        return input.toString();
+      }
+    };
+    return Maps.transformValues(iframeUris, toString);
+  }
+
   /**
    * Gets the set of allowed RPC service ids.
    *
@@ -573,7 +585,7 @@ public class GadgetsHandlerService {
 
   @VisibleForTesting
   GadgetsHandlerApi.MetadataResponse createMetadataResponse(Uri url, 
GadgetSpec spec, Map<String,
-        Uri> iframeUris, Boolean needsTokenRefresh, Set<String> fields, Long 
expireTime,
+        String> iframeUris, Boolean needsTokenRefresh, Set<String> fields, 
Long expireTime,
         Integer tokenTTL, Set<String> rpcServiceIds) {
     return (GadgetsHandlerApi.MetadataResponse) beanFilter.createFilteredBean(
         beanDelegator.createDelegator(spec, 
GadgetsHandlerApi.MetadataResponse.class,

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java?rev=1515674&r1=1515673&r2=1515674&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
 Mon Aug 19 23:51:44 2013
@@ -29,11 +29,14 @@ import com.google.caja.util.Maps;
 
 public class FakeIframeUriManager implements IframeUriManager {
   protected boolean throwRandomFault = false;
-  public static final Uri DEFAULT_IFRAME_URI = 
Uri.parse("http://example.org/gadgets/foo-does-not-matter";);
+  private static final String URI = 
"http://example.org/gadgets/foo-does-not-matter";;
+  public static final Uri DEFAULT_IFRAME_URI = Uri.parse(URI);
   protected Uri iframeUrl = DEFAULT_IFRAME_URI;
   public static Map<String, Uri> IFRAME_URIS = Maps.newHashMap();
+  public static Map<String, String> IFRAME_URIS_STRINGS = Maps.newHashMap();
   static {
     IFRAME_URIS.put("default", DEFAULT_IFRAME_URI);
+    IFRAME_URIS_STRINGS.put("default", URI);
   }
 
   FakeIframeUriManager() { }

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java?rev=1515674&r1=1515673&r2=1515674&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
 Mon Aug 19 23:51:44 2013
@@ -184,7 +184,7 @@ public class GadgetsHandlerServiceTest e
     setupMockGadgetAdminStore(true);
     setupMockRegistry(ImmutableList.<String> of("auth-refresh"));
     GadgetsHandlerApi.MetadataResponse response = 
gadgetHandler.getMetadata(request);
-    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS_STRINGS, 
response.getIframeUrls());
     assertTrue(response.getNeedsTokenRefresh());
     assertEquals(1, response.getViews().size());
     assertEquals(FakeProcessor.SPEC_TITLE, 
response.getModulePrefs().getTitle());
@@ -223,7 +223,7 @@ public class GadgetsHandlerServiceTest e
     setupMockRegistry(Lists.newArrayList("example-feature", 
"example-feature2"));
 
     GadgetsHandlerApi.MetadataResponse response = 
gadgetHandlerWithAdmin.getMetadata(request);
-    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS_STRINGS, 
response.getIframeUrls());
     assertEquals(1, response.getViews().size());
     assertEquals(FakeProcessor.SPEC_TITLE, 
response.getModulePrefs().getTitle());
     assertEquals(FakeProcessor.LINK_HREF,
@@ -310,7 +310,7 @@ public class GadgetsHandlerServiceTest e
     setupMockGadgetAdminStore(true);
     setupMockRegistry(Lists.newArrayList("auth-refresh"));
     GadgetsHandlerApi.MetadataResponse response = 
gadgetHandler.getMetadata(request);
-    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS_STRINGS, 
response.getIframeUrls());
     verify();
   }
 


Reply via email to