This table lists the enhancements and fixes in fix pack version 7.5.0.2. |
Enhancements |
There are no enhancements in this fix pack. |
Fixes |
1 | 6821 | | Create EventStore to ActivationSpec mapping for ConnectionLeak issue in recovery |
Symptom: Connection Leak during XARecovery |
Resolution: AFC recovery implementation modified to handle the connection leak issue. |
|
2 | 6819 | | EventPersistenceDBImpl getEvents method needs to check if xid is null while picking new events |
Symptom: Adapter was returning both in-doubt and new events to AFC while executing the getEvents API |
Resolution: While fetching new events two checks needs to be performed i) Events status should be 0 ii) xid should be null . getEvents API will now filter and fetch new events based on these two crtiteria . |
|
3 | 6818 | | EventStoreBackedXAResource throws unhandled NullPointerException in Commit and Rollback calls for when event is null . |
Symptom: NullPointerExceptions seen in the logs during Inbound processing of events . |
Resolution: With the fix when an event for a requested Xid is not found in the EventStore, an XA exception will be thrown, which will be sent to the container. Depending on the error code set on the XAException based on one phase or two phase commit, the container will send an appropriate call. Example in case of two phase commit the container will reissue a commit call. |
|
4 | 6816 | | Error while formatting the Xid |
Symptom: Format check for pending xids from adapter was failing, because of which recovery of pending transactions not taking place .. |
Resolution: Xid format check in XidImpl fixed to verify the correctness of the xid format . |
|
5 | 6815 | | Forget and Rollback calls are not setting xid to null, post recovery |
Symptom: Events that have been rolled back during recovery are not picked up for future processing.. |
Resolution: Events that have been rolled back during recovery needs to be made eligible for future poll cycles to fetch them, this is done by updating these events in the event store such that they qualify as new events, that can be fetched by future poll cycles. |
|
6 | 6744 | | CheckIllegalXMLCharacter is using String instead of StringBuffer which will eventually lead to a high heap usage |
Symptom: Use of String in CheckIllegalXMLCharacter leads to creation of large number of String objects as String is immutable, heap profiling showed increasing number of String objects that are not getting cleaned up, this has a potential to cause a problem when the input size is large. |
Resolution: Changed the implementation to use StringBuffer instead of String.. |
|
7 | 6861 | | When the retry connection limit is set to a value greater than 0, the validation check is performed only on the first matched connection |
Symptom: When the retry connection limit is set to a value greater than 0, the connection is checked for validity, If valid, the connection is returned, else null signalling container to create a new connection. This whole process has to be repeated until a valid connection is found in the given candidate connection set before returning null. However, this stops at the first matching connection in the given set of candidate connections by the container. |
Resolution: With the fix when the "retry connection limit" is > 0, you will have the AFC component iterate through all matched managed connections and return one which is valid. If none is found to be valid it would return null.. |
|
8 | 6928 | JR42534 | Adapter stops polling once WorkRejectedException is thrown by container |
Symptom: WorkRejectedException in logs, followed by adapter stopping to poll |
Resolution: Work that was rejected was not getting removed from the workInPorgress list which was resulting in no new work to be added for submission, as a result of which adapter could not poll once a poll work was rejected. |
|
9 | 7009 | | Adapter throws NullpointerException, when rolling back the XAResource if the event was not delivered to the endpoint |
Symptom: The Adapter throws NullPointerException when updating the event persistence table with XID as null on the rollback() method of the XAResource. |
Resolution: The issue is fixed so that the event persistence table is updated with XID as null during the rollback() method of the XAResource. |
|
10 | 7023 | | Adapter throws ArrayIndexOutOfBoundException during recovery, if the event being recovered does not exist in the event persistence table |
Symptom: Adapter throws ArrayIndexOutOfBoundException during recovery, if the event being recovered does not exist in the event persistence table |
Resolution: The issue has been fixed so that the Adapter returns null if the event is not present in the event table. |
|
11 | 7099 | | DataStoreAdapterException is thrown when Adapter tried to close the connection to the event persistence database table |
Symptom: While running in a local transaction in a non-auto commit mode, the adapter attempts to close the SQL connection if the SQL operations fails. This results in a DataStoreAdapterException due to attempt to closing a connection which is in transaction. |
Resolution: The issue has been fixed so that rollback is called on the failed transaction before closing the transaction |
|
12 | 7147 | | Adapter foundation classes should provide a method to retrieve all the events in the event persistence table |
Symptom: Adapters require to query all the events in the event persistence table. Currently there is no helper method in foundation classes to retrieve all the events. |
Resolution: A method getAllEvents() is provided to retrieve all the events from the event persistence table. |
|
13 | BPM Defect #76768 | | FileNotFound issue when file URL points to file within a jar in WBIDataBindingGenerator |
Symptom: FileNotFound issue when file URL points to file within a jar |
Resolution: Problem was occuring because the AFC code assumed that the URL will also point to a file, support for other protocols was not provided. This is corrected to enable support for all protocols in URL |
|