Author: kwright
Date: Thu Aug  1 10:28:05 2019
New Revision: 1864137

URL: http://svn.apache.org/viewvc?rev=1864137&view=rev
Log:
CONNECTORS-1616: Improve error reporting for confluence authority

Modified:
    
manifoldcf/trunk/connectors/confluence/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/confluence/client/ConfluenceClient.java

Modified: 
manifoldcf/trunk/connectors/confluence/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/confluence/client/ConfluenceClient.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/confluence/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/confluence/client/ConfluenceClient.java?rev=1864137&r1=1864136&r2=1864137&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/confluence/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/confluence/client/ConfluenceClient.java
 (original)
+++ 
manifoldcf/trunk/connectors/confluence/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/confluence/client/ConfluenceClient.java
 Thu Aug  1 10:28:05 2019
@@ -699,10 +699,22 @@ public class ConfluenceClient {
   private List<String> permissionsFromHttpEntity(HttpEntity entity) throws 
Exception {
     String stringEntity = EntityUtils.toString(entity, "UTF-8");
     final JSONParser parser = new JSONParser();
-    final JSONArray responseObject = (JSONArray)parser.parse(new 
StringReader(stringEntity));
+    final Object parsedReponse = parser.parse(new StringReader(stringEntity));
     final List<String> permissions = Lists.newArrayList();
-    for(int i=0,len=responseObject.size();i<len;i++) {
-      permissions.add(responseObject.get(i).toString());
+    if(parsedReponse instanceof JSONArray) {
+      final JSONArray responseObject = (JSONArray)parsedReponse;
+      for(int i=0,len=responseObject.size();i<len;i++) {
+        permissions.add(responseObject.get(i).toString());
+      }
+    } else {
+      final JSONObject responseObject = (JSONObject)parsedReponse;
+      if(responseObject.containsKey("error")) {
+        final JSONObject error = (JSONObject) responseObject.get("error");
+        final String message = error.get("message").toString();
+        throw new ConfluenceException(message);
+      } else {
+        throw new Exception("Unexpected JSON format: " + responseObject);
+      }
     }
 
     return permissions;


Reply via email to