You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/05/07 14:46:00 UTC

svn commit: r654083 - in /incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social: opensocial/model/IdSpec.java opensocial/util/BeanXmlConverter.java samplecontainer/BasicPeopleService.java

Author: doll
Date: Wed May  7 05:45:58 2008
New Revision: 654083

URL: http://svn.apache.org/viewvc?rev=654083&view=rev
Log:
SHINDIG-223 - slightly modified patch from Vincent Siveton. Changes BeanXmlConverter to use logging instead of System.err
SHINDIG-192 - modified patch from Ross Gardler. Avoids npe in BasicPeopleService when fetching friends for an unknown id. 

Also added code to allow fetchPeople requests for a particular id to succeed. (Before, only an array of ids would work)


Modified:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/IdSpec.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanXmlConverter.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/IdSpec.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/IdSpec.java?rev=654083&r1=654082&r2=654083&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/IdSpec.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/model/IdSpec.java Wed May  7 05:45:58 2008
@@ -55,7 +55,16 @@
    * @throws JSONException If the id spec isn't a valid json String array
    */
   public List<String> fetchUserIds() throws JSONException {
-    JSONArray userIdArray = new JSONArray(jsonSpec);
+    JSONArray userIdArray;
+    try {
+      userIdArray = new JSONArray(jsonSpec);
+    } catch (JSONException e) {
+      // If it isn't an array, treat it as a simple string
+      // TODO: This will go away with rest so we can remove this hack
+      List<String> list = new ArrayList<String>();
+      list.add(jsonSpec);
+      return list;
+    }
     List<String> userIds = new ArrayList<String>(userIdArray.length());
 
     for (int i = 0; i < userIdArray.length(); i++) {

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanXmlConverter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanXmlConverter.java?rev=654083&r1=654082&r2=654083&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanXmlConverter.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanXmlConverter.java Wed May  7 05:45:58 2008
@@ -17,12 +17,14 @@
  */
 package org.apache.shindig.social.opensocial.util;
 
+import org.apache.commons.betwixt.io.BeanWriter;
+import org.xml.sax.SAXException;
+
 import java.beans.IntrospectionException;
 import java.io.IOException;
 import java.io.StringWriter;
+import java.util.logging.Level;
 import java.util.logging.Logger;
-import org.apache.commons.betwixt.io.BeanWriter;
-import org.xml.sax.SAXException;
 
 public class BeanXmlConverter {
   private static Logger logger =
@@ -49,21 +51,21 @@
       writer.write(className, obj);
       toReturn = outputWriter.toString();
       logger.finest("XML is: " + toReturn + "\n **** \n\n");
-    } catch(SAXException e) {
-      System.err.println(e);
-    } catch(IOException e) {
-      System.err.println(e);
-    } catch(IntrospectionException e) {
-      System.err.println(e);
-    }
 
-    try {
-      if (writer != null) {
+    } catch (SAXException e) {
+      logger.log(Level.SEVERE, e.getMessage(), e);
+    } catch (IOException e) {
+      logger.log(Level.SEVERE, e.getMessage(), e);
+    } catch (IntrospectionException e) {
+      logger.log(Level.SEVERE, e.getMessage(), e);
+    } finally {
+      try {
         writer.close();
+      } catch(IOException e) {
+        // ignore this exception. it won't matter
       }
-    } catch(IOException e) {
-      // ignore this exception. it won't matter
     }
+
     return toReturn;
   }
 }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java?rev=654083&r1=654082&r2=654083&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java Wed May  7 05:45:58 2008
@@ -111,10 +111,16 @@
         ids.add(token.getViewerId());
         break;
       case OWNER_FRIENDS:
-        ids.addAll(friendIds.get(token.getOwnerId()));
+        List<String> ownerFriends = friendIds.get(token.getOwnerId());
+        if (ownerFriends != null) {
+          ids.addAll(ownerFriends);
+        }
         break;
       case VIEWER_FRIENDS:
-        ids.addAll(friendIds.get(token.getViewerId()));
+        List<String> viewerFriends = friendIds.get(token.getViewerId());
+        if (viewerFriends != null) {
+          ids.addAll(viewerFriends);
+        }
         break;
       case USER_IDS:
         ids.addAll(idSpec.fetchUserIds());