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);
}