APAR status
Closed as program error.
Error description
The propagate() method on MbRoute in the Java plugin API allows a customer to propagate a message assembly to a label node in their flow. If an exception occurs downstream of this label node then an MbException should be thrown from the propagate() method, these exceptions can and should be handled by the user's flows. However the MbRoute.propagate() method will always throw an MbBrokerException, which represents fatal exceptions, instead. Additionally, if the MbBrokerException.getNestedException() method is called multiple times then native heap corruption abends can occur. The abends will either indicate that a Java finalizer thread is the currently active thread and that it is trying to finalize an MbException: Thread 128734bb8 (current thread), name = "Finalizer thread", daemon = true, priority = 5, state = [alive, runnable]: #0 com.ibm.broker.plugin.MbException.freeNativeException(J)V @ MbException.java:<native method> #1 com.ibm.broker.plugin.MbException.finalize()V @ MbException.java:645 #2 java.lang.J9VMInternals.runFinalize(Ljava/lang/Object;)V @ J9VMInternals.java:285 or a non-finalizer Java thread will abend when getting nested exceptions: Thread 11171aaf0 (current thread), name = "Thread-28", daemon = false, priority = 5, state = [alive, runnable]: #0 com.ibm.broker.plugin.MbExce ption._getNestedExceptions(JLjava/lang/ClassLoader;)[Lcom/ibm/br oker/plugin/MbException; @ MbException.java:<native method> #1 com.ibm.broker.plugin.MbException.getNestedExceptions()[Lcom/ibm /broker/plugin/MbException; @ MbException.java:502
Local fix
N/A
Problem summary
**************************************************************** USERS AFFECTED: All users of IBM Integration Bus v10 and App Connect Enterprise v11 who propagate to label nodes from Java nodes using MbRoute, or handle MbBrokerExceptions from a Java node.	 Platforms affected: MultiPlatform, z/OS **************************************************************** PROBLEM DESCRIPTION: The propagate() method on MbRoute in the Java plugin API allows a customer to propagate a message assembly to a label node in their flow. If an exception occurs downstream of this label node then an MbException should be thrown from the propagate() method, these exceptions can and should be handled by the user's flows. However the MbRoute.propagate() method will always throw an MbBrokerException, which represents fatal exceptions, instead. Additionally, if the MbBrokerException.getNestedException() method is called multiple times then native heap corruption abends can occur. The abends will either indicate that a Java finalizer thread is the currently active thread and that it is trying to finalize an MbException: Thread 128734bb8 (current thread), name = "Finalizer thread", daemon = true, priority = 5, state = [alive, runnable]: #0 com.ibm.broker.plugin.MbException.freeNativeException(J)V @MbException.java:<native method> #1 com.ibm.broker.plugin.MbException.finalize()V @ MbException.java:645 #2 java.lang.J9VMInternals.runFinalize(Ljava/lang/Object;)V @J9VMInternals.java:285 or a non-finalizer Java thread will abend when getting nested exceptions: Thread 11171aaf0 (current thread), name = "Thread-28", daemon = false, priority = 5, state = [alive, runnable]: #0 com.ibm.broker.plugin.MbException._getNestedExceptions(JLjava/la ng/ClassLoader;)[Lcom/ibm/broker/plugin/MbException; @ MbException.java:<native method> #1 com.ibm.broker.plugin.MbException.getNestedExceptions()[Lcom/ibm /broker/plugin/MbException; @ MbException.java:502
Problem conclusion
MbRoute now correctly throws an MbException when a recoverable exception reaches the label node, and MbBrokerException will now no longer produce multiple MbExceptions that reference the same native exception. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v10.0 10.0.0.21 v11.0 11.0.0.9 The latest available maintenance can be obtained from: http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg27006041 If the maintenance level is not yet available,information on its planned availability can be found on: http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308 ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
IT31950
Reported component name
INTEGRATION BUS
Reported component ID
5724J0540
Reported release
A00
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-02-21
Closed date
2020-06-08
Last modified date
2020-06-08
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
INTEGRATION BUS
Fixed component ID
5724J0540
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
10 June 2020