Release Notes for Oracle Insurance Gateway Patch 4.25.1.0.5

This document contains the release notes for Oracle Insurance Gateway Patch 4.25.1.0.5.

THIS RELEASE HAS BEEN MARKED OBSOLETE. DO NOT INSTALL.
Version compatibility: Oracle Insurance Gateway Release 4.25.1.x is only compatible with other Oracle Health Insurance applications release version 4.25.1.x unless explicitly stated otherwise.
In accordance with the OHI error correction policy (Document 1494031.1 on My Oracle Support), error correction support will be provided for this release and the previous two releases.

Enhancements

No enhancements.

Additional Upgrade Steps

Pre-Upgrade Phase

1) OHI Agent upgrade

  1. Upgrade OHI Agent: Refer to Downloading and Running Oracle Health Insurance Agent for steps to perform the Agent upgrade.

Upgrade Steps for Installation

To perform the upgrade, perform the following steps:

  1. Perform any pre-upgrade steps.

  2. Stop all the managed nodes running the existing version of the application.

  3. Perform any pre-undeploy steps.

  4. Undeploy the existing version of the application.

  5. Back up the database.

  6. Perform any post-undeploy steps.

  7. Unpack the release bundle into a directory that we refer to as OHI_ROOT from now on.

  8. Change Installation Configuration: In <OHI_ROOT>/util/install, make a copy of ohi_install.cfg.template and name it ohi_install.cfg.

  9. Edit ohi_install.cfg to contain your specific database connection data and other configuration settings. The settings are explained in the file itself.

  10. Make sure NO connections are present to the database using the OHI_xxx_USER account (where xxx is the abbreviation of the application)

  11. Run the Upgrade script:

    1. Open a command window and browse to <OHI_ROOT>/util/install.

    2. Run the upgrade by executing ./ohi-update.sh .

  12. Make the required changes to the ohi properties file

  13. Perform any post-upgrade steps

  14. Start WebLogic application server

  15. Deploy the Application

  16. Perform any post-deploy steps

Additional Upgrade Steps for Installation

The following phases are defined:

  1. pre-upgrade: Application is still running.

  2. pre-undeploy: Application is stopped, but not undeployed.

  3. post-undeploy: Application is undeployed. Database is backed up.

  4. post-upgrade: Released upgrade script run is complete.

  5. post-deploy: New application is deployed, and is up and running.

Post-Upgrade phase

  1. Execute the following SQL when upgrading from a version of 4.25.1.0.4 or lower to a version of 4.25.1.0.5 or higher:

    update ohi_reporting_views
    set excl_phi_logging =
        case
            when code in ('LOG_PHI_EVENTS_BV', 'PHI_LOG_PHI_EVENTS_BV', 'LOG_SECURITY_EVENTS_BV', 'PHI_LOG_SECURITY_EVENTS_BV')
            then 'Y'
            else 'N'
        end
    ;

Configuration Properties

This section intentionally left blank.

Web Services

This section intentionally left blank.

Data Conversion

This section intentionally left blank.

Dynamic Logic

This section intentionally left blank.

UI Changes

This section intentionally left blank.

Breaking Changes

This section intentionally left blank.

Access Restrictions

This section intentionally left blank.

Bug Fixes

BugDB SR Internal Summary

38898879

4-0001899859

OIG-4898

Change in String.value behavior in dynamic logic after Java 11 and Groovy 4 upgrade

Description:

In 4.23.2 release, Java was upgraded from 8 to 11, and in 4.25.1 release, Groovy was upgraded from 3 to 4. After this upgrade, accessing .value on a String object in dynamic logic returns the internal byte array instead of character array. This is caused by a change in Java’s internal String representation and Groovy’s lenient access to private members.

Assuming str is a variable of Java type String:

In 4.23.1

str = "Hello"
str evaluates to "Hello"
str.value evaluates to "Hello"

In 4.25.1

str = "Hello"
str.value evaluates to a byte array

Resolution:

Accessing private members of String (such as .value) is not a supported practice and is no longer allowed starting from 4.26.1. Dynamic logic must be remediated to stop relying on .value and instead use the String directly. As a temporary compatibility measure, access to the .value property on String is intercepted and a character array that backs the string value is returned (instead of the internal byte array), effectively mimicking the behavior of 4.23.1. Each intercepted access logs an error message in the application log to help track and remediate affected dynamic logic.

Example Log

ERROR com.oracle.healthinsurance.support.dynamiclogic.internal.components.ValuePropertyInterceptorCustomizer - DEPRECATED String.value intercepted at: ohi.dynamiclogic.test.TEST.groovy:12. Please change your dynamic logic.

To support the interception, the bytecode of existing dynamic logic is reset during the upgrade. This reset causes the application start-up time to be slightly longer on the first startup after the upgrade, as the dynamic logic are recompiled at startup time. Future application restarts do not recompile this bytecode, so subsequent startups are faster.

Issues that were backported in previous Release / Patch

No backports.