diff --git a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java index 468b5db3ba49340fd63e1787c07d0c671f8bff61..6dabcac0f10cdd1e2ba55c1d63c4d426740a1e3b 100755 --- a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java +++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java @@ -78,6 +78,7 @@ import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; +import java.nio.charset.Charset; import java.security.AccessControlContext; import java.security.AccessControlException; import java.security.AccessController; @@ -313,15 +314,13 @@ public class GMSClient URL getGroupNamesURL = new URL(this.baseURL + "/groups"); log.debug("getGroupNames request to " + getGroupNamesURL.toString()); - HttpURLConnection conn = - (HttpURLConnection) getGroupNamesURL.openConnection(); + HttpURLConnection conn = (HttpURLConnection) getGroupNamesURL.openConnection(); conn.setRequestMethod("GET"); SSLSocketFactory sf = getSSLSocketFactory(); if ((sf != null) && ((conn instanceof HttpsURLConnection))) { - ((HttpsURLConnection) conn) - .setSSLSocketFactory(sf); + ((HttpsURLConnection) conn).setSSLSocketFactory(sf); } int responseCode = -1; try @@ -332,11 +331,12 @@ public class GMSClient { throw new AccessControlException(e.getMessage()); } + log.debug("getGroupNames response " + responseCode); if (responseCode != 200) { String errMessage = NetUtil.getErrorBody(conn); - log.debug("deleteGroup response " + responseCode + ": " + + log.debug("getGroupNames response " + responseCode + ": " + errMessage); if ((responseCode == 401) || (responseCode == 403) || @@ -351,16 +351,19 @@ public class GMSClient throw new IOException("HttpResponse (" + responseCode + ") - " + errMessage); } + log.error("Content-Length: " + conn.getHeaderField("Content-Length")); + log.error("Content-Type: " + conn.getHeaderField("Content-Type")); + try { List<String> groupNames = new ArrayList<String>(); - Reader ioReader = new InputStreamReader(conn.getInputStream()); - BufferedReader br = new BufferedReader(ioReader); - CsvReader reader = new CsvReader(br); - - for (int i=0; i<reader.getColumnCount(); i++) + CsvReader reader = new CsvReader(conn.getInputStream(), ',', Charset.forName("UTF-8")); + if (reader.readRecord()) { - groupNames.add(reader.get(i)); + for (int i = 0; i < reader.getColumnCount(); i++) + { + groupNames.add(reader.get(i)); + } } return groupNames;