Fixes are available
17.0.0.2: WebSphere Application Server Liberty 17.0.0.2
17.0.0.3: WebSphere Application Server Liberty 17.0.0.3
17.0.0.4: WebSphere Application Server Liberty 17.0.0.4
18.0.0.1: WebSphere Application Server Liberty 18.0.0.1
18.0.0.2: WebSphere Application Server Liberty 18.0.0.2
18.0.0.3: WebSphere Application Server Liberty 18.0.0.3
18.0.0.4: WebSphere Application Server Liberty 18.0.0.4
19.0.0.1: WebSphere Application Server Liberty 19.0.0.1
19.0.0.2: WebSphere Application Server Liberty 19.0.0.2
19.0.0.3: WebSphere Application Server Liberty 19.0.0.3
19.0.0.4: WebSphere Application Server Liberty 19.0.0.4
19.0.0.5: WebSphere Application Server Liberty 19.0.0.5
19.0.0.6: WebSphere Application Server Liberty 19.0.0.6
19.0.0.7: WebSphere Application Server Liberty 19.0.0.7
19.0.0.8: WebSphere Application Server Liberty 19.0.0.8
19.0.0.9: WebSphere Application Server Liberty 19.0.0.9
19.0.0.10: WebSphere Application Server Liberty 19.0.0.10
19.0.0.11: WebSphere Application Server Liberty 19.0.0.11
19.0.0.12: WebSphere Application Server Liberty 19.0.0.12
20.0.0.1: WebSphere Application Server Liberty 20.0.0.1
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
20.0.0.6: WebSphere Application Server Liberty 20.0.0.6
20.0.0.7: WebSphere Application Server Liberty 20.0.0.7
20.0.0.8: WebSphere Application Server Liberty 20.0.0.8
20.0.0.9: WebSphere Application Server Liberty 20.0.0.9
20.0.0.10: WebSphere Application Server Liberty 20.0.0.10
20.0.0.11: WebSphere Application Server Liberty 20.0.0.11
20.0.0.12: WebSphere Application Server Liberty 20.0.0.12
21.0.0.3: WebSphere Application Server Liberty 21.0.0.3
21.0.0.4: WebSphere Application Server Liberty 21.0.0.4
21.0.0.5: WebSphere Application Server Liberty 21.0.0.5
21.0.0.6: WebSphere Application Server Liberty 21.0.0.6
21.0.0.7: WebSphere Application Server Liberty 21.0.0.7
21.0.0.8: WebSphere Application Server Liberty 21.0.0.8
21.0.0.9: WebSphere Application Server Liberty 21.0.0.9
21.0.0.1: WebSphere Application Server Liberty 21.0.0.1
21.0.0.2: WebSphere Application Server Liberty 21.0.0.2
21.0.0.10: WebSphere Application Server Liberty 21.0.0.10
21.0.0.11: WebSphere Application Server Liberty 21.0.0.11
21.0.0.12: WebSphere Application Server Liberty 21.0.0.12
22.0.0.1: WebSphere Application Server Liberty 22.0.0.1
22.0.0.2: WebSphere Application Server Liberty 22.0.0.2
22.0.0.3: WebSphere Application Server Liberty 22.0.0.3
22.0.0.4: WebSphere Application Server Liberty 22.0.0.4
APAR status
Closed as program error.
Error description
The batch runtime provides a few options to load batch artifacts referenced from the job definition XML (JSL) file. In the presence of a feature enabling CDI (such as cdi-1.2), batch will first try to load the batch artifacts through the CDI engine, as CDI managed beans. If it cannot, batch will load and instantiate by plain Java reflection (Class.newInstance()). Whether the batch artifacts are loaded as CDI beans or not, the batch contexts and properties will be injected, either by CDI or a custom batch injection routine. However, injection of other CDI "application-level" beans will only occur in the cases when artifacts are loaded as CDI beans, and will be performed by the CDI engine. A batch.xml side file can be used in artifact loading to provide naming indirection, e.g. to map a short name to a fully-qualified class name, e.g. <ref id="myDecider" class="com.ibm.samples.TransitionDecider" /> The batch runtime was, incorrectly, always loading such batch.xml-mapped objects using the non-CDI loading mechanism, and failing to perform injection of application beans (other than batch contexts and properties).
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server Liberty- Batch * **************************************************************** * PROBLEM DESCRIPTION: Batch artifacts loaded via batch.xml * * entries are not loaded as CDI beans * **************************************************************** * RECOMMENDATION: * **************************************************************** The batch runtime provides a few options to load batch artifacts referenced from the job definition XML (JSL) file. In the presence of a feature enabling CDI (such as cdi-1.2), batch will first try to load the batch artifacts through the CDI engine, as CDI managed beans. If it cannot, batch will load and instantiate by plain Java reflection (Class.newInstance()). Whether the batch artifacts are loaded as CDI beans or not, the batch contexts and properties will be injected, either by CDI or a custom batch injection routine. However, injection of other CDI "application-level" beans will only occur in the cases when artifacts are loaded as CDI beans, and will be performed by the CDI engine. A batch.xml side file can be used in artifact loading to provide naming indirection, e.g. to map a short name to a fully- qualified class name, e.g. <ref id="myDecider" class="com.ibm.samples.TransitionDecider" /> The batch runtime was, incorrectly, always loading such batch.xml-mapped objects using the non-CDI loading mechanism, and failing to perform injection of application beans (other than batch contexts and properties).
Problem conclusion
Changed artifact loading so that the runtime will first attempt to load a fully-qualified class name in a batch.xml entry referenced from JSL as a CDI bean, and only upon failure attempt to load this as a non-CDI bean. More generally, we added a warning message (CWWKY0041W) when the user has CDI active (through a feature like cdi-1.2), but is not using CDI to inject their batch artifacts. This will help in cases like the originally reported problem where the user intended to use CDI but is not. It also serves as a general warning that integration with CDI is a best practice that we encourage. The issuing of this message is tracked to avoid being exceedingly verbose. The fix for this APAR is currently targeted for inclusion in fix pack 17.0.0.2. 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
PI80635
Reported component name
LIBERTY PROFILE
Reported component ID
5724J0814
Reported release
CD0
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-04-26
Closed date
2017-05-22
Last modified date
2017-05-22
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
LIBERTY PROFILE
Fixed component ID
5724J0814
Applicable component levels
RCD0 PSY
UP
Document Information
Modified date:
04 May 2022