Interview Question
Qus: The attribute xsi:nil="true" appears in SOAP envelope after upgrading to IS 8
During testing of our upgrade we noticed our java clients getting a new exception when getting an empty response back.
java.lang.NullPointerException
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:36)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:18)
at java.lang.reflect.Field.get(Field.java:358)
at........
This was due to the returned message being different under 7.x and 8.x:
------ 7.x ---------
------ 8.x ---------
There was a fix for this in 7.1.3 (when the problem seems to have first appeared) but it has not yet been applied to 8.x. You have to apply the core patch (I'm assuming Core Patch 13 will have it as Patch 12 does not).
Then you also need to go to your IS web admin page -> Settings -> Extended and "Edit Extended Settings"
Add the following line:
watt.server.SOAP.generateNilTags=false
I haven't yet verified this as we don't have the patch yet.
-------
Update:
Turns out this is the new behavior in wm8 and will not be fixed. To get this error we were
returning a bare list of document references. So we switched to returning a document with a
list of document references inside and now as long as the list is initialized, it returns fine.
The xsi:nil tag is inside the list, not at the top-level root element which is what caused the
problem with java clients.
java.lang.NullPointerException
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:36)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:18)
at java.lang.reflect.Field.get(Field.java:358)
at........
This was due to the returned message being different under 7.x and 8.x:
------ 7.x ---------
------ 8.x ---------
There was a fix for this in 7.1.3 (when the problem seems to have first appeared) but it has not yet been applied to 8.x. You have to apply the core patch (I'm assuming Core Patch 13 will have it as Patch 12 does not).
Then you also need to go to your IS web admin page -> Settings -> Extended and "Edit Extended Settings"
Add the following line:
watt.server.SOAP.generateNilTags=false
I haven't yet verified this as we don't have the patch yet.
-------
Update:
Turns out this is the new behavior in wm8 and will not be fixed. To get this error we were
returning a bare list of document references. So we switched to returning a document with a
list of document references inside and now as long as the list is initialized, it returns fine.
The xsi:nil tag is inside the list, not at the top-level root element which is what caused the
problem with java clients.
Answers (0)