Click here for a list of the fixed issues.

The following table lists the release notes in this release.

Component Issue Number Description
Lang OCTA-97794

Java OpenClient in OpenEdge 12.8.12 has been updated to use Apache http 5 along with a transient dependency on slf4j-api.

Lang OCTA-84444

A bug introduced in OpenEdge 12.3 caused ABL indeterminate arrays that are initialized with constant values to give an incorrect value for the EXTENT() function. This issue affected ABL programs that declare an indeterminate array variable using the EXTENT keyword without specifying a size and initialize it with a list of constant values (e.g., DEFINE VARIABLE myArr AS INTEGER EXTENT INITIAL [1, 2].), and this DEFINE comes after a statement that causes the execution of the EXTENT() function. In affected versions, the extent of such arrays was not correctly determined at compile time, resulting in incorrect runtime behavior.

This issue is resolved in 12.8.12 and 13.1. Recompilation is required for any ABL program that declares indeterminate arrays initialized with constant values. Programs that use determinate arrays (where the extent size is explicitly specified) do not require recompilation.

This fix introduces a minor r-code version change for ABL code that contains indeterminate LONGCHAR arrays where any element is initialized with the UNKNOWN value (?). R-code compiled with this fix cannot run on OpenEdge 13 releases earlier than 13.1, or on OpenEdge 12 releases earlier than 12.8.12.  

OEM / PASOE OCTA-52510

Upgrading from Apache HttpClient 4.x to 5.x brings several runtime behavior changes, especially in configuration, connection management, and API usage.

  1. Configuration and Defaults
    • SSL/TLS defaults: HttpClient 4.5+ disables older SSL versions by default; 5.x enforces TLSv1.2 unless explicitly overridden Apache HttpComponents.
    • Timeouts: In 4.x, you could set socket/connect timeouts via RequestConfig.custom(); in 5.x, these are set via SocketConfig on the connection manager Stack Overflow.
    • Connection TTL: 4.x allows infinite TTL; 5.x treats zero TTL as “no reuse” and requires finite TTLs for persistent reuse Apache HttpComponents.
    • Cookie policy: 4.x allows per-request cookie specs; 5.x favors StandardCookieSpec.STRICT globally and supports per-request overrides via HttpContextApache HttpComponents.
  2. Connection Management
    • Connection pooling: 4.x uses PoolingClientConnectionManager; 5.x uses BasicHttpClientConnectionManager (or PoolingHttpClientConnectionManager) with explicit socket config Stack Overflow.
    • Reuse: 5.x requires explicit reuse of CloseableHttpClient instances for thread safety and pooling benefits Apache HttpComponents.
    • Route planning: 4.x allows overriding DefaultRoutePlanner.determineRoute(); 5.x makes this method final, so you must implement a custom HttpRoutePlanner Stack Overflow.
  3. API Changes
    • RequestConfig removal: RequestConfig.custom().setSocketTimeout(...) is gone; use SocketConfig on the connection manager Stack Overflow.
    • HttpRequestBase changes: getRequestLine() is removed; use getMethod() + getUri() for request line info Stack Overflow.
    • SSLContext setup: HttpClientBuilder.setSSLContext() is gone; you must create a registry of ConnectionSocketFactory (e.g., SSLConnectionSocketFactory) and set it on the connection manager Stack Overflow.
    • Async APIs: 4.x had separate httpcore-nio and httpasyncclient; 5.x bundles all in httpclient5 and httpcore5 Stack Overflow.
  4. Runtime Behavior Impact
    • Performance: 5.x’s stricter defaults and explicit config can improve security and stability but require more explicit setup.
    • Thread safety: 5.x’s CloseableHttpClient is fully thread-safe, so reuse is encouraged Apache HttpComponents.
    • Flexibility: 5.x offers more control over connection lifecycle, but also more boilerplate for equivalent 4.x behavior.
    • Compatibility: 4.x HTTP/1.1 code often works with 5.x’s async APIs, but HTTP/2 support is optional and requires explicit setup Apache HttpComponents.
  5. Migration Best Practices
    • Start with the classic APIs for easier porting Apache HttpComponents.
    • Use simple async handlers before moving to full content streaming Apache HttpComponents.
    • Explicitly set TLS, timeouts, and TTLs to match or improve on 4.x defaults Apache HttpComponents.
    • Replace removed APIs with the new equivalents (e.g., SocketConfig for timeouts, custom HttpRoutePlanner for routing) Stack Overflow.
In short: HttpClient 5.x is more explicit,stricter, and thread-safe by default, but requires reworking some 4.x patterns. The migration guide and examples show how to map 4.x configurations and APIs to 5.x equivalents.
PDSOE OCTA-96879

In OpenEdge 12.8.11, 13.0, and later versions, users may see a Windows Defender exclusion prompt when launching Progress Developer Studio for OpenEdge (Developer Studio) on Windows systems with Windows Defender real-time protection enabled.

This prompt was introduced with the upgrade to Eclipse 4.34. Previously, no Windows Defender prompt appeared at startup. Now, users may see a prompt that allows them to choose one of the following options:

Exclude: Excludes the Developer Studio installation directory from Windows Defender scans to improve startup and build performance. However, this exclusion may increase security risk.

Continue scanning: Keeps Windows Defender scanning enabled and leaves the existing security configuration unchanged.

This behavior originates in the Eclipse platform and is not specific to Developer Studio. Users can review or remove an exclusion at any time from Windows Security > Virus & threat protection > Exclusions.

Reference: Eclipse Windows Defender documentation.