Skip to content

changes to the Platform enum in 3.10.0-alpha4 not backward compatible #2761

@stephengold

Description

@stephengold

On desktop platforms, JME loads physics natives using Platform enum values to determine which native is required.

Past releases of Minie were built Platform enums that included values to represent various 32-bit platforms. When support for 32-bit platforms was removed in PR #2685, those values were removed from the enum. The changes to the enum were not required for correctness.

The changes created a fatal (and unnecessary) incompatibility between JME v3.10.0-alpha4 and all past Minie releases, causing crashes such as the following:

Exception in thread "main" java.lang.NoSuchFieldError: Windows32
	at com.jme3.system.NativeLibraries.<clinit>(NativeLibraries.java:53)
	at com.jme3.system.NativeLibraryLoader.<clinit>(NativeLibraryLoader.java:84)
	at com.jme3.system.JmeDesktopSystem.initialize(JmeDesktopSystem.java:289)
	at com.jme3.system.JmeDesktopSystem.newContext(JmeDesktopSystem.java:212)
	at com.jme3.system.JmeSystem.newContext(JmeSystem.java:175)
	at com.jme3.app.LegacyApplication.start(LegacyApplication.java:508)
	at com.jme3.app.LegacyApplication.start(LegacyApplication.java:485)

Note this crash occurs before any Minie code has executed. One might say the incompatibility is actually between different versions of jme3-core. The changes were not backward compatible.

Please revert the change to the Platform enum to restore backward compatibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    tracked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions