Fix Unicode in Site names
Manually handle Unicode with services the same way we do in
HttpClientImpl.issueGetRequest().
diff --git a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
index 5d9b899..438281d 100644
--- a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
+++ b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
@@ -2152,24 +2152,30 @@
new QName(XMLNS, "People"));
}
+ private static String handleEncoding(String endpoint) {
+ // Handle Unicode. Java does not properly encode the POST path.
+ return URI.create(endpoint).toASCIIString();
+ }
+
@Override
public SiteDataSoap newSiteData(String endpoint) throws IOException {
EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
- .address(SharePointAdaptor.spUrlToUri(endpoint).toString()).build();
+ .address(handleEncoding(SharePointAdaptor.spUrlToUri(endpoint)
+ .toString())).build();
return siteDataService.getPort(endpointRef, SiteDataSoap.class);
}
@Override
public UserGroupSoap newUserGroup(String endpoint) {
EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
- .address(endpoint).build();
+ .address(handleEncoding(endpoint)).build();
return userGroupService.getPort(endpointRef, UserGroupSoap.class);
}
@Override
public AuthenticationSoap newAuthentication(String endpoint) {
EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
- .address(endpoint).build();
+ .address(handleEncoding(endpoint)).build();
return
authenticationService.getPort(endpointRef, AuthenticationSoap.class);
}
@@ -2177,7 +2183,7 @@
@Override
public PeopleSoap newPeople(String endpoint) {
EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
- .address(endpoint).build();
+ .address(handleEncoding(endpoint)).build();
return peopleService.getPort(endpointRef, PeopleSoap.class);
}
}