You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ra...@apache.org on 2012/01/10 23:30:34 UTC

svn commit: r1229769 - /incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java

Author: raminder
Date: Tue Jan 10 22:30:34 2012
New Revision: 1229769

URL: http://svn.apache.org/viewvc?rev=1229769&view=rev
Log:
Added try catch checks for all the modulePrefs element as get metadata was failing if any of these elements are null. RAVE-379

Modified:
    incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java

Modified: incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java?rev=1229769&r1=1229768&r2=1229769&view=diff
==============================================================================
--- incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java (original)
+++ incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/service/impl/OpenSocialWidgetMetadataResolver.java Tue Jan 10 22:30:34 2012
@@ -26,11 +26,14 @@ import org.apache.rave.provider.opensoci
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.json.JSONTokener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
 public class OpenSocialWidgetMetadataResolver implements WidgetMetadataResolver {
+    private static Logger logger = LoggerFactory.getLogger(OpenSocialWidgetMetadataResolver.class);
     private GadgetMetadataRepository gadgetMetadataRepository;
 
     @Autowired
@@ -44,7 +47,8 @@ public class OpenSocialWidgetMetadataRes
 
     /**
      * Get the opensocial widget metadata
-     * @param url   url for the widget
+     *
+     * @param url url for the widget
      * @return
      */
     public Widget getMetadata(String url) {
@@ -52,42 +56,77 @@ public class OpenSocialWidgetMetadataRes
         JSONObject jsonGadget = null;
         try {
             jsonGadget = (JSONObject) new JSONTokener(gadgetMetadataRepository.getGadgetMetadata(url)).nextValue();
-            if ( jsonGadget != null ) {
+            if (jsonGadget != null) {
                 String query = jsonGadget.getString("modulePrefs");
-                JSONObject jsonModulePrefsObject = (JSONObject) new JSONTokener(query).nextValue();
-                if ( jsonModulePrefsObject != null ) {
-                    String title = jsonModulePrefsObject.getString("title");
-                    String titleUrl = jsonModulePrefsObject.getString("titleUrl");
-                    String description =  jsonModulePrefsObject.getString("description");
-                    String author = jsonModulePrefsObject.getString("author");
-                    String authorEmail = jsonModulePrefsObject.getString("authorEmail");
-                    String thumbnailUrl = jsonModulePrefsObject.getString("thumbnail");
-                    String screenShot = jsonModulePrefsObject.getString("screenshot");
-
-                    widget.setTitle(title);
-                    widget.setTitleUrl(titleUrl);
-                    widget.setDescription(description);
-                    widget.setAuthor(author);
-                    widget.setAuthorEmail(authorEmail);
-                    widget.setThumbnailUrl(thumbnailUrl);
-                    widget.setScreenshotUrl(screenShot);
-                    widget.setUrl(url);
-                    widget.setType(getSupportedContext());
+                if (query != null) {
+                    JSONObject jsonModulePrefsObject = (JSONObject) new JSONTokener(query).nextValue();
+                    if (jsonModulePrefsObject != null) {
+                        //Wrapped every element into individual try/catch as if any of the element is coming null getString throws JSONException.
+                        try {
+                            String title = jsonModulePrefsObject.getString("title");
+                            widget.setTitle(title);
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        try {
+                            String titleUrl = jsonModulePrefsObject.getString("titleUrl");
+                            widget.setTitleUrl(titleUrl);
+
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        try {
+                            String description = jsonModulePrefsObject.getString("description");
+                            widget.setDescription(description);
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        try {
+                            String author = jsonModulePrefsObject.getString("author");
+                            widget.setAuthor(author);
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        try {
+                            String authorEmail = jsonModulePrefsObject.getString("authorEmail");
+                            widget.setAuthorEmail(authorEmail);
+
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+
+                        try {
+                            String thumbnailUrl = jsonModulePrefsObject.getString("thumbnail");
+                            widget.setThumbnailUrl(thumbnailUrl);
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        try {
+                            String screenShot = jsonModulePrefsObject.getString("screenshot");
+                            widget.setScreenshotUrl(screenShot);
+                        } catch (JSONException e) {
+                            logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                        }
+                        widget.setUrl(url);
+                        widget.setType(getSupportedContext());
+                    }
                 }
             }
         } catch (JSONException e) {
             try {
                 String query = jsonGadget.getString("error");
-                if (query != null ) {
+                if (query != null) {
                     JSONObject jsonModuleErrorObject = (JSONObject) new JSONTokener(query).nextValue();
-                    if ( jsonModuleErrorObject != null ) {
+                    if (jsonModuleErrorObject != null) {
                         String errorMessage = jsonModuleErrorObject.getString("message");
                         String errorCode = jsonModuleErrorObject.getString("code");
                         throw new IllegalArgumentException("HTTP error: " + errorCode + ". Message: " + errorMessage);
                     }
                 }
-            } catch ( JSONException e1) {
-                throw new IllegalArgumentException("Error occurred while processing response for Widget metadata call", e1);
+            } catch (JSONException e1) {
+                logger.info("Error while reading: " + e.getLocalizedMessage(), e);
+                throw new IllegalArgumentException("Error occurred while processing response for Widget metadata call",
+                        e1);
             }
             throw new IllegalArgumentException("Error occurred while processing response for Widget metadata call", e);
         }