Skip to content

[BUG] 4.6.0 does not allow running on java versions higher than 25 #341

Description

@tonygermano

Describe the bug
The release artifacts have an unnecessarily restrictive maximum Java version of 25 specified.

To Reproduce

  1. Download and unpack oie_unix_4_6_0.tar.gz
  2. Switch your environment to Java 26+ (e.g., using SDKMAN: $ sdk use java 26.0.1.fx-zulu)
  3. Run $ ./oieserver

Expected behavior
Server starts successfully.

Actual behavior

No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be at least 17 and at most 25.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.

Environment:

  • OS: Example was in Linux, but this affects every OS.
  • Java Distribution/Version: Example was Azul Zulu 26, but this affects any Java version higher than 25.
  • OIE Version: 4.6.0

Root Cause & Suggested Fix:
The issue arises from the javaMaxVersion="25" attribute at the end of this line in the install4j config:

<application name="Open Integration Engine" applicationId="4145-9206-7630-8076" mediaDir="${compiler:installer:mediaRoot}/server/build" shortName="oie" publisher="Open Integration Engine Project" publisherWeb="https://openintegrationengine.com" version="4.6.0" backupOnSave="true" autoSave="true" macVolumeId="88477e584eb462ba" javaMinVersion="17" javaMaxVersion="25">

Workaround(s)
For Linux or Mac, you can edit the oieserver or oieservice scripts to either raise the max version or remove the check completely. There is no workaround for Windows since those launchers are compiled .exe files.

Additional context
Precedent set by both Mirth and our previous releases allows for the use of any Java version above the minimum. An install4j bug was identified in #128 which caused a maximum to be set in the first place on the previous release, but at the time it was also set for the next future LTS rather than the previous.

While we do not test running OIE on every Java version, and certainly can't test future versions which have not been released, we should not prevent people from running on the Java version of their choice. The latest versions often have performance improvements and may be required by custom classes which utilize the latest Java features. If issues do arise from future Java versions, removing this cap allows those incompatibilities to be discovered and addressed sooner by the community.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions