Details
Description
Procedure:
1) Create service function (e.g. POJO) which has an array parameter, e.g.:
public static boolean testFunc(Integer[] integers) {
System.out.println((integers != null) ? integers.length : "null");
}
2) Send request with null as first element, e.g.:
<ns1:testFunc><ns1:integers/><ns1:integers>1</ns1:integers><ns1:integers>2</ns1:integers></ns1:testFunc>
3) Send request with null as non-first element, e.g.:
<ns1:testFunc><ns1:integers>1</ns1:integers><ns1:integers/><ns1:integers>2</ns1:integers></ns1:testFunc>
Result:
2) Array of length 0 (i.e. null) received - WRONG
3) Array of length 3 received (1, null, 2, as expected)
Reason:
BeanUtil.java ignores non-null elements of an array in ProcessElement() if the first element is null even if there is more than one element.