This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Hi, I am trying to use a Fault Handler to log errors from a web service call to a database table in BPEL. I am calling a webservice to update something and using a Fault Handler-Catch to trap an exception and write the contents to the soap message to a database table. The returned SOAP message from the failed webservice update is attached, as is the XSD for this message Part. I am finding that the Catch does not trap the soap error event thought the Fault Variable Type as been define as the same as the returned soap error. The only way to trap the fault is to use the CatchAll, which does not allow me to trap the contents and process the error so that I can write it to a database table. Is there any way to trap such messages using the catch, or even the catch-all so that I can process the contents of the error appropriately. Thanks Kam
Created attachment 54201 [details] NB Project
Created attachment 54202 [details] Sample SOAP message returned from WS
Created attachment 54203 [details] Sample SOAP message XSD returned from WS
Created attachment 54206 [details] NB Project CORRECT Zip !
Please use the Integrationv2.zip. The previous zip was taken whilst I was trying to problem solve the Fault handler issue. Sorry for the confusion and many thanks in advance. Kam
Some additional comments for when you look at the project: The web service I am calling is CreateImpactPatient. This returns a createPatientReponse or one or more faults (as defined in the patients.wsdl). I have defined my Catch-FH as ImpactMessengerException, and the same type is defined for the variable. (Uploaded as Integration.bpel attachment) This in theory should catch the returned fault (the returned soap message is soap error.xml), so that I can process the contents of the message. As I understand it should just be a simple case of doing this. This did not work, so I reversed engineered the soap error message being return from the web service (soap-error.xsd) and created a message type to use in the Catch-FH. This did not work either, and hence the reason for raising this issue.
Created attachment 54207 [details] ImpactMessengerException BPEL
Kirill, please look at this. Probably the issue is on the runtime side but we need to investigate.
Hi, I am changing the priority of this issue if I may as it a blocking issue for the project I am working on. Thanks in advance. Kam
kfarmah, When I try to deploy this project (Integrationv2.zip) I get an exception. Can you please correct this problem and attach the project again? Thanks. * Component: sun-bpel-engine ERROR: (BPELSE) Service unit IntegrationApplication-Integration failed to load deployment C:\open- esb\glassfish\domains\domain1\jbi\service-assemblies\IntegrationApplication\IntegrationApplication-Integration\sun- bpel-engine :Error while loading BPEL file C:\open-esb\glassfish\domains\domain1\jbi\service- assemblies\IntegrationApplication\IntegrationApplication-Integration\sun-bpel-engine\Integration.bpel, Exception details are Cannot parse BPEL (see below): ==> Cannot load imported document (see below): ==> Unable to import wsdl document for import (see below): ==> Failed to resolve publicId http://enterprise.netbeans.org/bpel/patientsWrapper and systemId localhost_8080/integration/patientsWrapper.wsdl to a WSDLDocument. (see below): ==> Failed to parser xsd document file:/C:/open-esb/glassfish/domains/domain1/jbi/service- assemblies/IntegrationApplication/IntegrationApplication-Integration/sun-bpel- engine/localhost_8080/integration/patientsWrapper.wsdl (see below): ==> WSDLException (at /definitions/import/definitions/types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'http://localhost:8080/integration/patients?xsd=1', relative to 'file:/C:/open- esb/glassfish/domains/domain1/jbi/service-assemblies/IntegrationApplication/IntegrationApplication-Integration/sun- bpel-engine/localhost_8080/integration/patients.wsdl'.: java.io.FileNotFoundException: This file was not found: http://localhost:8080/integration/patients?xsd=1 BUILD FAILED (total time: 2 seconds)
Hi Prashant, It appears from the stacktrace that NB is trying to resolve a XSD from http://localhost:8080/integration/patients?xsd=1 ie localhost which will not be accessible from your machine. The XSD for this can be also found in src\localhost_8080\integration\patients.xsd_1.xsd in the Integrationv2.zip. The patients.wsdl contains the schema location that the error refers to: <types> <xsd:schema> <xsd:import namespace="http://patients.services.ctms.perceptive.com/" schemaLocation="http://localhost:8080/integration/patients?xsd=1"/> </xsd:schema> </types> Should I make this change and re-attach or are you OK to make the simple change? Also You will probably not be able to run the Test case since the web services I am consuming are not externally accessible from outside the corporate firewall I am working behing. Please let me know and I will do as you request. Thanks K
kfarmah, The fault handler is set to process faults of type ns13:getSoapException (which is {http://j2ee.netbeans.org/wsdl/Integration}getSoapException). It is defined *as a message* in integrationWSDL.wsdl and references ns1:Envelope ({http://schemas.xmlsoap.org/soap/envelope/}Envelope) element as its only part. The soap-error.xml file that you've attached contains a complete SOAP envelope with a fault. My understanding is that you cannot reference the SOAP envelope completely as it's parsed long before it gets to the BPEL process. Could you please try to set the fault type to {http://schemas.xmlsoap.org/soap/envelope/}Fault element? Even then, I guess the fault itself is parsed before and you need to go deeper to get its data. Moreover, I was not able to run the attached example, as the services it references, are not (as far as I understand) publicly available on the network. Is there, by any chance, a possibility for you to attach a simple isolated (i.e. without no external dependencies) example, which illustrates the same erroneous behavior?
Hi ksorokin I think you are using the wrong project zip. ns13:getSoapException was from the first zip and I was trying to problem solve the issue I was having by reverse engineering the soap response envelope. The correct behaviour can be found in the integration2.zip. A call to a webservice is made : CreateImpactPatient (PartnerLink - ImpactPatients). This call either returns createPatientResponse or one or more faults including ImpactMessengerException (which is the fault being sent by the web service (soap_error.xml is the example of the ImpactMessengerException fault). It is this fault I can trying to catch which does not seem to work. I have reattached the project again as Integration3.zip - please use this. Thanks Kam
Created attachment 54510 [details] Integration3 zip
Sorry I forgot to add I am not sure that I can create an isolated test case since I have no way of generating the fault other than calling the dependant web service.
Hi, Have you had chance to take at look at the issue following my recent comments? Thanks Kam
Created attachment 55376 [details] Isolated test-case
Sorry for the lengthy silence.. I have attached a more clean and isolated test-case for the problem. It consists consists of a web-service which is called twice from a BPEL process. In the first case it throws a "declared and expected" fault, which can be successfully catched in a <catch> unit. In the second case the service throws an undeclared runtime exception, which cannot be handled by BPEL in any way except <catchAll>, which, obviously loses all semantics of the fault. The fault output can be seen in the output of the Service_UglyFault test-case of the composite app. As far as I understand, this is essentially the same issue, as in the original attachments. Kfarmah, could you please confirm this? (In the future, please do attach samples that can be actually run. It is rather difficult to investigate without having a runnable test-case for the issue). Kiran, Prashant, I've debugged the inner workings of BPEL SE wrt this issue and found that tracks lead deep into JBI itself. In other words, the fault message which is passed to Engine.process(InComingEventKeyImpl, MessageContainer) is already empty and does not have any information about the fault data. This is due to EngineHelper.createWSMessage(NormalizedMessage, RBPELProcess, boolean) returning null, as the normalized messaged is not properly WSDL1.1-wrapped. The latter is called from BPELSEInOutThread.processResponse(InOut). From this point I'm not sure where to proceed. Could you please send some light on this behavior? Is it by design or it is an issue in BPEL SE/ OpenESB? Thanks.
Sorry for the multiple attachments and yes I believe it is the same issue.
Looks like the user wants to catch a defined fault and it seems to be working. So there is no bug from that perspective! To catch the faults/errors not defined on the WSDLs users need to catch systemFaults. refer http://wiki.open-esb.java.net/Wiki.jsp?page=UsingSystemFault. If you do that does it work? Kiran B
Err....have I missed something here? The fault I am trying to catch is on the WSDL, but is not being handled by the Catch fault handler: Here is an extract of the WSDL: <message name="ImpactMessengerException"> <part name="fault" element="tns:ImpactMessengerException"/> </message> Kam
From the file IZ123890Service.wsdl it seems that you have defined only one fault - "NormalFault" for the operation named "operation". Did you miss adding the "UglyFault" as a valid fault? <portType name="IZ123890"> <operation name="operation"> <input message="tns:operation"></input> <output message="tns:operationResponse"></output> <fault message="tns:NormalFault" name="NormalFault"></fault> </operation> </portType>
No, Prashant, that was intentional. The very point of the issue (as I see it) is to be able to catch a fault which was not declared in a <catch> block, without losing the semantics of the fault. This does not seem to be possible.
I think there seems to be some misunderstanding. let me see if I got it correct. Kam seems to say that a WSDL operation has a fault defined. The invoke operation (invoked service) threw the fault defined. There is a catch defined for this fault, around the invoke's scope. Still the runtime didn't reach the catch block. is that correct Kam?
Yes that is correct.
Ok thats good. This is a very basic scenario and should be working. We have quite a few test cases for that as well. I am suspecting this could be a user error. How does your catch block look like? How is your WSDL? Could you please paste them here, if they are simple.
Yeah, there is definitely some misunderstanding. :) As far as I understood, the fault thrown was not originally defined in the PL's WSDL. The fault's contents are attached as soap_error.xml. Note that the fault contains only the JAX-WS standard fields and absolutely no user-defined data. In the test-case I had attached such fault can be achieved when the PL service throws an undeclared exception. The user, seeing this fault happening, tried to reverse-engineer the fault and add its declaration to PLs WSDL, to be able to handle it properly in a <catch> block. It did not work however. I tried to do the same with my test-case (catching UglyFault in a <catch> block) -- did not work for me either. I tried debugging the runtime to find out what's happening and noted that the fault message that BPEL SE receives is already empty -- all data is filtered out by BPEL JBI adapter. It is filtered because the message it received is not properly wrapped by the underlying OpenESB. I provided more detailed in one of the comments above. And, as I do not know how to proceed with debugging this further I cried for help from the runtime side. ;)
Hi the WSDL is quite large: <?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-181-RC1. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-181-RC1. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://patients.services.ctms.perceptive.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://patients.services.ctms.perceptive.com/" name="PatientServiceImplService"> <types> <xsd:schema> <xsd:import namespace="http://patients.services.ctms.perceptive.com/" schemaLocation="http://localhost:8080/integration/patients?xsd=1"></xsd:import> </xsd:schema> </types> <message name="createPatient"> <part name="parameters" element="tns:createPatient"></part> </message> <message name="createPatientResponse"> <part name="parameters" element="tns:createPatientResponse"></part> </message> <message name="ImpactMessengerException"> <part name="fault" element="tns:ImpactMessengerException"></part> </message> <message name="InfrastructureException"> <part name="fault" element="tns:InfrastructureException"></part> </message> <message name="StaleRecordException"> <part name="fault" element="tns:StaleRecordException"></part> </message> <message name="IllegalAccessException"> <part name="fault" element="tns:IllegalAccessException"></part> </message> <message name="NoSuchMethodException"> <part name="fault" element="tns:NoSuchMethodException"></part> </message> <message name="Exception"> <part name="fault" element="tns:Exception"></part> </message> <message name="createListOfPatients"> <part name="parameters" element="tns:createListOfPatients"></part> </message> <message name="createListOfPatientsResponse"> <part name="parameters" element="tns:createListOfPatientsResponse"></part> </message> <message name="getPatientsByTrialUnit"> <part name="parameters" element="tns:getPatientsByTrialUnit"></part> </message> <message name="getPatientsByTrialUnitResponse"> <part name="parameters" element="tns:getPatientsByTrialUnitResponse"></part> </message> <message name="deletePatient"> <part name="parameters" element="tns:deletePatient"></part> </message> <message name="deletePatientResponse"> <part name="parameters" element="tns:deletePatientResponse"></part> </message> <message name="updatePatient"> <part name="parameters" element="tns:updatePatient"></part> </message> <message name="updatePatientResponse"> <part name="parameters" element="tns:updatePatientResponse"></part> </message> <message name="getPatientsByUniqueNumber"> <part name="parameters" element="tns:getPatientsByUniqueNumber"></part> </message> <message name="getPatientsByUniqueNumberResponse"> <part name="parameters" element="tns:getPatientsByUniqueNumberResponse"></part> </message> <message name="checkPatientExistsByUniqueNo"> <part name="parameters" element="tns:checkPatientExistsByUniqueNo"></part> </message> <message name="checkPatientExistsByUniqueNoResponse"> <part name="parameters" element="tns:checkPatientExistsByUniqueNoResponse"></part> </message> <message name="checkPatientExistsByPatientDetails"> <part name="parameters" element="tns:checkPatientExistsByPatientDetails"></part> </message> <message name="checkPatientExistsByPatientDetailsResponse"> <part name="parameters" element="tns:checkPatientExistsByPatientDetailsResponse"></part> </message> <portType name="PatientServiceImpl"> <operation name="createPatient"> <input message="tns:createPatient"></input> <output message="tns:createPatientResponse"></output> <fault message="tns:ImpactMessengerException" name="ImpactMessengerException"></fault> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:StaleRecordException" name="StaleRecordException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="createListOfPatients"> <input message="tns:createListOfPatients"></input> <output message="tns:createListOfPatientsResponse"></output> <fault message="tns:ImpactMessengerException" name="ImpactMessengerException"></fault> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:StaleRecordException" name="StaleRecordException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="getPatientsByTrialUnit"> <input message="tns:getPatientsByTrialUnit"></input> <output message="tns:getPatientsByTrialUnitResponse"></output> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="deletePatient"> <input message="tns:deletePatient"></input> <output message="tns:deletePatientResponse"></output> <fault message="tns:ImpactMessengerException" name="ImpactMessengerException"></fault> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:StaleRecordException" name="StaleRecordException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="updatePatient"> <input message="tns:updatePatient"></input> <output message="tns:updatePatientResponse"></output> <fault message="tns:ImpactMessengerException" name="ImpactMessengerException"></fault> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:StaleRecordException" name="StaleRecordException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="getPatientsByUniqueNumber"> <input message="tns:getPatientsByUniqueNumber"></input> <output message="tns:getPatientsByUniqueNumberResponse"></output> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> <fault message="tns:IllegalAccessException" name="IllegalAccessException"></fault> <fault message="tns:NoSuchMethodException" name="NoSuchMethodException"></fault> <fault message="tns:Exception" name="Exception"></fault> </operation> <operation name="checkPatientExistsByUniqueNo"> <input message="tns:checkPatientExistsByUniqueNo"></input> <output message="tns:checkPatientExistsByUniqueNoResponse"></output> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> </operation> <operation name="checkPatientExistsByPatientDetails"> <input message="tns:checkPatientExistsByPatientDetails"></input> <output message="tns:checkPatientExistsByPatientDetailsResponse"></output> <fault message="tns:InfrastructureException" name="InfrastructureException"></fault> </operation> </portType> <binding name="PatientServiceImplPortBinding" type="tns:PatientServiceImpl"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding> <operation name="createPatient"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="ImpactMessengerException"> <soap:fault name="ImpactMessengerException" use="literal"></soap:fault> </fault> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="StaleRecordException"> <soap:fault name="StaleRecordException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="createListOfPatients"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="ImpactMessengerException"> <soap:fault name="ImpactMessengerException" use="literal"></soap:fault> </fault> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="StaleRecordException"> <soap:fault name="StaleRecordException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="getPatientsByTrialUnit"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="deletePatient"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="ImpactMessengerException"> <soap:fault name="ImpactMessengerException" use="literal"></soap:fault> </fault> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="StaleRecordException"> <soap:fault name="StaleRecordException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="updatePatient"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="ImpactMessengerException"> <soap:fault name="ImpactMessengerException" use="literal"></soap:fault> </fault> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="StaleRecordException"> <soap:fault name="StaleRecordException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="getPatientsByUniqueNumber"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> <fault name="IllegalAccessException"> <soap:fault name="IllegalAccessException" use="literal"></soap:fault> </fault> <fault name="NoSuchMethodException"> <soap:fault name="NoSuchMethodException" use="literal"></soap:fault> </fault> <fault name="Exception"> <soap:fault name="Exception" use="literal"></soap:fault> </fault> </operation> <operation name="checkPatientExistsByUniqueNo"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> </operation> <operation name="checkPatientExistsByPatientDetails"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> <fault name="InfrastructureException"> <soap:fault name="InfrastructureException" use="literal"></soap:fault> </fault> </operation> </binding> <service name="PatientServiceImplService"> <port name="PatientServiceImplPort" binding="tns:PatientServiceImplPortBinding"> <soap:address location="http://localhost:8080/integration/patients"></soap:address> </port> </service> </definitions> HERE IS THE FAULT HANDLER: <faultHandlers> <catch faultVariable="SoapException" faultMessageType="ns2:ImpactMessengerException" faultName="ns2:ImpactMessengerException"> <assign name="Assign1"> <copy> <from>$SoapException.fault/errors</from> <to>$G_Error.fault/errors</to> </copy> <copy> <from>$SoapException.fault/message</from> <to>$G_Error.fault/message</to> </copy> </assign> </catch> <catchAll> <sequence name="Sequence1"> <reply name="Reply1" partnerLink="IntegrationService" operation="getPatientsOperation" portType="ns13:IntegrationPortType" faultName="ns13:SoapException" variable="outputResponse"/> <exit name="Exit1"/> </sequence> </catchAll> </faultHandlers> Kam
Kam, I don't see a user error. And from the files, I feel that you have carefully done it, so I don't suspect the user error here. Again this is no longer a NB bug, you should file a bug at https://open-jbi-components.dev.java.net/servlets/ProjectIssues. I think the issue here is the incoming Fault message didn't conform well to what it should have been or httpBC has a bug. I think it could be like the external service didn't provide the fault name or something like that. Kiril, Now that you understood the issue correctly, do you think the project you put together can be used to replicate that? Which of the three test cases should I be running? If Kiril's project can't reproduce it, Kam, please provide a project with simpler BPEL. That way your bug will get fixed quicker. (For example imagine if the versions of the tools we use are not compatible with all the artifacts you use, it will only waste more time). thanks, Kiran.
Hi, I will raise the issue as you suggest and reference this issue. I think I am going to struggle to get a simpler project together as I don't know how else to model the problem, and I am not as familiar with BPEL as you guys are. The service that generates the fault uses the Metro web services stack if that helps. Kam
Issue raised as: https://open-jbi-components.dev.java.net/issues/show_bug.cgi?id=359
Created attachment 55777 [details] Corrected isolated test-case
Kiran, yes, I believe the test case I attached can be used to reproduce the error. I have removed the unnecessary data from the project and reattached it. Please use the "Wed Jan 30 17:51:00 +0000 2008: IZ123890_Sample2.zip" file. The compl application contains only one test-case -- Test_BPEL. Meanwhile, since it has been identified that the issue belongs more to the runtime (and it has been filed there), I'm resolving this one as INVALID.