Download
Downloadable File
File link | File size | File description |
---|---|---|
Abstract
bo attributes are not working correctly after upgrading to WebSphere Application Server 8.5.5.16
Download Description
PH19871 resolves the following problem:
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 might be missing. The problem only occurs in BO Mode EMF (eager).
LOCAL FIX:
none
USERS AFFECTED:
All users of IBM WebSphere Application Server V8.5.5.16 who also use IBM Business Process Manager
PROBLEM DESCRIPTION:
After applying WebSphere Application Server V8.5.5.16, the handling of BO attributes (@attrname) is not working correctly.
RECOMMENDATION:
None
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 might be missing. The problem only occurs in BO Mode EMF (eager).
LOCAL FIX:
none
USERS AFFECTED:
All users of IBM WebSphere Application Server V8.5.5.16 who also use IBM Business Process Manager
PROBLEM DESCRIPTION:
After applying WebSphere Application Server V8.5.5.16, the handling of BO attributes (@attrname) is not working correctly.
RECOMMENDATION:
None
PROBLEM SUMMARY:
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
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 Business 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 being 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
Prerequisites
None
Installation Instructions
Please review the readme.txt for detailed installation instructions.
URL | SIZE(Bytes) |
---|---|
V85 Readme | 9929 |
V90 Readme | 9849 |
Download Package
DOWNLOAD | RELEASE DATE | SIZE(Bytes) | DOWNLOAD Options What is Fix Central(FC)? |
---|---|---|---|
8.5.5.16-WS-WASProd-IFPH19871 | 03 February 2020 | 334368 | FC |
9.0.5.1-WS-WASProd-IFPH19871 | 03 February 2020 | 340283 | FC |
Problems Solved
PH19871
On
Technical Support
Contact IBM Support by using SR (http://www.ibm.com/software/support/probsub.html), visit the support web site, or contact 1-800-IBM-SERV (US only).
Document Location
Worldwide
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Component":"General","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"8.5.5.16;9.0.5.1;9.0.5.2","Edition":"Base,Developer,Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]
Problems (APARS) fixed
Was this topic helpful?
Document Information
Modified date:
03 February 2020
UID
ibm11127043