I am using the following URI's in my test: URI[] uris = new URI[3]; uris[0] = URI.create("a/b/c"); uris[1] = URI.create("http://abc"); uris[2] = URI.create("ftp://a/b");
The return value from the service method is inputUri.resolve("uri"). One service method takes an uri as input and returns the changed uri as given above. Another method takes an array of uri as input and returns an array of uri where each element in the returned array contains an uri which is changed as given above. The remotable service invoked over binding.sca is able to provide expected return value for uris[1] with the method that takes URI as argument. But, with the method that takes URI array as argument, the return value for uris[1] is not as expected. In the failing case the input uri has (authority = "abc", host = "abc", path = "") , expected uri has (authority = "abc", host = "abc", path = "uri") and the uri returned from the service method has (authority="abcuri", host = "abcuri", path = ""). I have verified through the debugger that the array being returned by the service method has the second element as expected. But, once the array is returned to the caller after data transformations, the element is changed. There definitely is a problem with the data transformation.