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;