Issue 30612 — SOAP Call-In: Invalid date value not always correctly handled
Status: Solved in 10.2.01
Solution available in patch(es): MG01
Description:
Summary: When a SOAP Client is sending a request (SOAP Call-In) that contains an invalid date value, this is not handled correctly in all cases. Environment: +Uniface: Version 9.x +Operating System: OS independent +Database: DBMS independent +Additional: SOAP Call-In Symptoms: When a SOAP Client is sending a request (SOAP Call-In) that contains an invalid date value then this is not handled correctly in all cases. How to reproduce: 1. A service WEBSVC with an entity ENT1 is used. The service includes: * An entity ENT1 with one string (S1) and one date field (D1) * An operation testOper1 with an entity INOUT parameter (ENT1) 2. WEBSVC is compiled 3. The web service definitions (WSDLs) for WEBSCVC are exported: > idf.exe /sto /mwr=ws websvc 3. The generated WSDL and XSD files are deployed on the Web Server 4. The Uniface web service WEBSVC is called from a SOAP client The following four cases are examples of SOAP requests with their response. For cases A and B the wrong date format is handled correctly; for cases C and D the requests are handled incorrectly: A) Date D1 = "2014" > SOAP Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uniface:applic:wrapped:services:WEBSVC" xmlns:urn1="urn:uniface:applic:services:WEBSERVICESWEBSVC"> <soapenv:Header/> <soapenv:Body> <urn:ENT1> <urn:GENERATED_PARAMETER_NAME_1> <urn1:WEBSERVICESWEBSVCType> <urn1:S1>String</urn1:S1> <urn1:D1>2014</urn1:D1> </urn1:WEBSERVICESWEBSVCType> </urn:GENERATED_PARAMETER_NAME_1> </urn:ENT1> </soapenv:Body> </soapenv:Envelope> > Correct SOAP Response from Uniface: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server</faultcode> <faultstring>Activation error occurred</faultstring> <faultactor>urn:uniface:applic:userver:doSoapRequest:Soap2UField</faultactor> <detail> <status>-150</status> <description>Could not convert Date</description> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> B) Date D1 = "2014-01" > SOAP Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uniface:applic:wrapped:services:WEBSVC" xmlns:urn1="urn:uniface:applic:services:WEBSERVICESWEBSVC"> <soapenv:Header/> <soapenv:Body> <urn:ENT1> <urn:GENERATED_PARAMETER_NAME_1> <urn1:WEBSERVICESWEBSVCType> <urn1:S1>String</urn1:S1> <urn1:D1>2014-01</urn1:D1> </urn1:WEBSERVICESWEBSVCType> </urn:GENERATED_PARAMETER_NAME_1> </urn:ENT1> </soapenv:Body> </soapenv:Envelope> > Correct SOAP Response from Uniface: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server</faultcode> <faultstring>Activation error occurred</faultstring> <faultactor>urn:uniface:applic:userver:doSoapRequest:Soap2UField</faultactor> <detail> <status>-150</status> <description>Could not convert Date</description> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> C) Date D1 = "2014-02-32" > SOAP Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uniface:applic:wrapped:services:WEBSVC" xmlns:urn1="urn:uniface:applic:services:WEBSERVICESWEBSVC"> <soapenv:Header/> <soapenv:Body> <urn:ENT1> <urn:GENERATED_PARAMETER_NAME_1> <urn1:WEBSERVICESWEBSVCType> <urn1:S1>String</urn1:S1> <urn1:D1>2014-02-32</urn1:D1> </urn1:WEBSERVICESWEBSVCType> </urn:GENERATED_PARAMETER_NAME_1> </urn:ENT1> </soapenv:Body> </soapenv:Envelope> > Incorrect SOAP Response from Uniface (D1 = "2014-03-04"): <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="urn:uniface:applic:services:WEBSERVICESWEBSVC"> <soapenv:Body> <ENT1Response xmlns="urn:uniface:applic:wrapped:services:WEBSVC"> <return>0</return> <GENERATED_PARAMETER_NAME_1> <ns0:WEBSERVICESWEBSVCType> <ns0:S1>String</ns0:S1> <ns0:D1>2014-03-04</ns0:D1> </ns0:WEBSERVICESWEBSVCType> </GENERATED_PARAMETER_NAME_1> </ENT1Response> </soapenv:Body> </soapenv:Envelope> D) Date D1 = "20140101" > SOAP Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uniface:applic:wrapped:services:WEBSVC" xmlns:urn1="urn:uniface:applic:services:WEBSERVICESWEBSVC"> <soapenv:Header/> <soapenv:Body> <urn:ENT1> <urn:GENERATED_PARAMETER_NAME_1> <urn1:WEBSERVICESWEBSVCType> <urn1:S1>String</urn1:S1> <urn1:D1>20140101</urn1:D1> </urn1:WEBSERVICESWEBSVCType> </urn:GENERATED_PARAMETER_NAME_1> </urn:ENT1> </soapenv:Body> </soapenv:Envelope> > The UServer will crash and the client will get the following response from the SRD: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server</faultcode> <faultstring>-25 (see UNIFACE message guide)</faultstring> <faultactor>UNIFACE SRDServlet</faultactor> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
Workaround:
There is no known workaround for this problem.
Notes: