Fixes are available
APAR status
Closed as program error.
Error description
After applying WebSphere 8.5.5.16, the handling of BO attributes (@attrname) is not working correctly. After constructing the DataObject, child elements may be missing. The problem only occurs in BO Mode EMF (eager).
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server V8.5.5.16 who also use IBM Business * * Process Management * **************************************************************** * PROBLEM DESCRIPTION: After applying WebSphere Application * * Server V8.5.5.16, the handling of BO * * attributes (@attrname) is not * * working correctly. * **************************************************************** * RECOMMENDATION: * **************************************************************** The handling of BO attributes (@attrname) does not work when WebSphere Application Server V8.5.5.16 is in use. For example "bo.@name" might refer to the same data item as "bo.name". This is at least the case if there exists a BO element and a BO attribute with the same name. In our testcase, the invoked JSP (index.jsp) sets the element "name" of the BO "CompanyInfo" to "test1", and expects the Busines rules executed as "operation1" to return a value of --> "test2" for the BO element "name" and a value of --> "test1" for the BO attribute "name" (@name): Here is an excerpt of index.jsp: DataObject input = DataFactory.INSTANCE.create(type); bo = boFactory.create("http://www.example.org/CompanyInfo","CompanyIn fo"); bo.setString("name","test1"); input.setDataObject(0,bo); System.out.println("enter operation1 of BRXSD01!!!!!"); DataObject result = (DataObject) service.invoke("operation1",input); String name_e= result.getDataObject("output1").getString("name"); String name_a= result.getDataObject("output1").getString("@name"); System.out.println("name_e of BRXSD01 is "+name_e); System.out.println("name_a of BRXSD01 is "+name_a); ... if(name_e.equals("test2")&&name_a.equals("test1")){ target_res="BRXSD01PASSED";... This is the ruleset beeing executed: <rl:RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:BRXSD01_I="http://TestBRXSD/BRXSD01_I" xmlns:CompanyInfo="http://www.example.org/CompanyInfo" xmlns:data="http://TestBRXSD/ibm/br/data" xmlns:rl="http://www.ibm.com/xmlns/prod/websphere/wbi/br/6.0.0" xmlns:xml.type="commonj.sdo" displayName="XSD01RS" name="XSD01RS" syncDisplayName="true" targetNamespace="http://TestBRXSD/ibm/br/data"> <rl:interface operation="operation1"> <rl:porttype>BRXSD01_I:BRXSD01_I</rl:porttype> </rl:interface> <rl:rulegroup>data:BRXSD01_G</rl:rulegroup> <rl:local dataType="CompanyInfo:CompanyInfo" varName="var1"/> <rl:local dataType="xml.type:string" varName="var2"/> <rl:property name="IBMSystemVersion" type="SystemDefined" value="6.1.0"/> <rl:RuleBlock> <rl:rule xsi:type="rl:AssertionRule" displayName="Rule1" label="Rule1" syncDisplayName="true"> <rl:assert> <rl:Action value="var1.name = input1.name"/> <rl:Action value="var1.@name ="test2""/> <rl:Action value="var2 = var1.name"/> <rl:Action value="output1.name = var1.@name"/> <rl:Action value="output1.@name = var2"/> </rl:assert> </rl:rule> </rl:RuleBlock> </rl:RuleSet> CompanyInfo is defined like this, it has an element named "name" as well as an attribute named "name": <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/CompanyInfo" xmlns:tns="http://www.example.org/CompanyInfo"> <element name="company" type="tns:CompanyInfo"></element> <complexType name="CompanyInfo"> <sequence> <element name="name" type="string"></element> </sequence> <attribute name="name" type="string"></attribute> </complexType> </schema> This is an excerpt of the trace showing that name_e as well as name_a finally have a value of "test2": 89373 38:[10/22/19 20:15:14:352 CST] 00000669 SystemOut O [BPCGATT] Execute GET request: https://TAPALLINONE:9087/TestBRXSDWeb/index.jsp 93771 38:[10/22/19 20:15:15:321 CST] 000001f2 SystemOut O enter operation1 of BRXSD01!!!!! 94105 55: [0] = BusinessObject: CompanyInfo@e15972f4 (name=test1) 95343 55: [0] = BusinessObject: CompanyInfo@e15972f4 (name=test1) 96667 55: [0] = BusinessObject: CompanyInfo@e15972f4 (name=test1) 97424 2:<rl:RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:BRXSD01_I="http://TestBRXSD/BRXSD01_I" xmlns:CompanyInfo="http://www.example.org/CompanyInfo" xmlns:data="http://TestBRXSD/ibm/br/data" xmlns:rl="http://www.ibm.com/xmlns/prod/websphere/wbi/br/6.0.0" xmlns:xml.type="commonj.sdo" displayName="XSD01RS" name="XSD01RS" syncDisplayName="true" targetNamespace="http://TestBRXSD/ibm/br/data"> 97425 4: <rl:interface operation="operation1"> 97426 6: <rl:porttype>BRXSD01_I:BRXSD01_I</rl:porttype> 97426 39: <rl:porttype>BRXSD01_I:BRXSD01_I</rl:porttype> 97427 5: </rl:interface> 97428 4: <rl:rulegroup>data:BRXSD01_G</rl:rulegroup> 97428 33: <rl:rulegroup>data:BRXSD01_G</rl:rulegroup> 97429 4: <rl:local dataType="CompanyInfo:CompanyInfo" varName="var1"/> 97430 4: <rl:local dataType="xml.type:string" varName="var2"/> 97431 4: <rl:property name="IBMSystemVersion" type="SystemDefined" value="6.1.0"/> 97432 4: <rl:RuleBlock> 97433 6: <rl:rule xsi:type="rl:AssertionRule" displayName="Rule1" label="Rule1" syncDisplayName="true"> 97433 24: <rl:rule xsi:type="rl:AssertionRule" displayName="Rule1" label="Rule1" syncDisplayName="true"> 97434 8: <rl:assert> 97435 10: <rl:Action value="var1.name = input1.name"/> 97436 10: <rl:Action value="var1.@name ="test2""/> 97436 44: <rl:Action value="var1.@name ="test2""/> 97437 10: <rl:Action value="var2 = var1.name"/> 97438 10: <rl:Action value="output1.name = var1.@name"/> 97439 10: <rl:Action value="output1.@name = var2"/> 97440 9: </rl:assert> 97441 7: </rl:rule> 97442 5: </rl:RuleBlock> 97443 3:</rl:RuleSet> 97830 152:[10/22/19 20:15:15:555 CST] 000001f2 BOCopy > com.ibm.ws.bo.service.BOCopyImpl copy(DataObject) ENTRY BusinessObject: CompanyInfo@4edc225a (name=test2) 97831 153:[10/22/19 20:15:15:555 CST] 000001f2 BOCopy < com.ibm.ws.bo.service.BOCopyImpl copy(DataObject) RETURN BusinessObject: CompanyInfo@cc83dbaa (name=test2) 98538 55: [0] = BusinessObject: CompanyInfo@cc83dbaa (name=test2) 99738 55: [0] = BusinessObject: CompanyInfo@cc83dbaa (name=test2) 100208 55: [0] = BusinessObject: CompanyInfo@cc83dbaa (name=test2) 100234 76:[10/22/19 20:15:15:602 CST] 000001f2 SystemOut O name_e of BRXSD01 is test2 100235 76:[10/22/19 20:15:15:602 CST] 000001f2 SystemOut O name_a of BRXSD01 is test2 100236 38:[10/22/19 20:15:15:602 CST] 000001f2 SystemOut O result (DataObject): com.ibm.ws.sca.internal.multipart.impl.ManagedMultipartImpl@e0ff 4e48 (eClass: BusinessObjectType: operation1Response_._type@40259f03 (namespace=wsdl:http://TestBRXSD/BRXSD01_I, instanceClass=com.ibm.wsspi.sca.multipart.Multipart, schema=jar:file:/C:/IBM/BPM/profiles/Custom01/installedApps/TAPA LLINONECell01/TestBRXSDApp.ear/TestBRXSD.jar!/ibm/br/data/BRXSD0 1_I.wsdl)) 100237 38:[10/22/19 20:15:15:602 CST] 000001f2 SystemOut O exit operation1 of BRXSD01!!!!!
Problem conclusion
In PH12669, code was added to provide some level of thread safety to a particular part of the EMF (Eclipse Modeling Framework) library included with WebSphere Application Server. The update in PH12669 caused the problem. The code has been updated to fix the problem. The fix for this APAR is currently targeted for inclusion in fix pack 8.5.5.17 and 9.0.5.3. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PH19871
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-12-03
Closed date
2019-12-06
Last modified date
2019-12-11
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBS APP SERV N
Fixed component ID
5724H8800
Applicable component levels
R850 PSY
UP
R900 PSY
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
02 November 2021