PDA

View Full Version : IS 6.5 SP2 - Clast Cast Exception from xmlNodeToDocument


mcarlson
03-22-2007, 17:21
After applying IS 6.5 SP2, we noticed that we were receiving ClassCastExceptions from the pub.xml:xmlNodeToDocument service when a value for its nsDecls parameter was mapped implicitly. Note that this implicit mapping was done intentionally to use a consistent set of namespace declarations throughout a service.

The steps to reproduce this issue are relatively simple:
Create node using pub.xml:xmlStringToXmlNode. The xml string used in my example was a soap request from which I wanted to extract a wsse:UsernameToken.
Use pub.xml:queryXmlNode to extract a portion of a document in a separate node (specify nsDecls parameter with several prefix and ns declarations)
Use pub.xml:xmlNodeToDocument to attempt to create document from node. Use implicitly assigned value for nsDecls populated in step 2 above
Step 3 will throw ClassCastException (see stacktrace below).A workaround is to drop nsDecls after step 2.

My assertion is that this should not fail or if it does fail, it should throw an exception more meaningful than a CCE.

Any ideas on why xmlNodeToDocument would throw a class cast exception when nsDecls was populated?

Mark


com.wm.app.b2b.server.ServiceException: java.lang.ClassCastException
at pub.xml.xmlNodeToDocument(xml.java:594)
at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:322)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:612)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:226)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:198)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:411)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:521)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:369)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:168)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:324)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:581)
at com.wm.lang.flow.FlowState.step(FlowState.java:438)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:403)
at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:982)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:612)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:226)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.ACLManager.process(ACLMan

mcarlson
03-28-2007, 00:23
A fix for this was released last month as part of IS_6-5_SP2_WebSvcsXML_Fix1. A subsequent fix (IS_6-5_SP2_WebSvcsXML_Fix1) was released last Friday (March 23, 2007) but can not yet be downloaded from Advantage.

http://advantage.webmethods.com/article/?id=1614014793


1-1GN899 (IS_6-5_SP2_WebSvcsXML_Fix1)
The public service pub.xml:xmlNodeToDocument throws a
ClassCastException when the nsDecls input parameter is set to a
value.

When the service pub.xml:xmlNodeToDocument is invoked with the
input parameter nsDecls set to any value, a ClassCastException
is thrown.

With this update, the pub.xml:xmlNodeToDocument allows a value
to be set for the nsDecls input parameter.

Mark