Maplesoft Open Maple Java Programming Interface : Bug Report 1

Subject

-------------------------------------------------------------
FATAL ERROR in native method: Using JNIEnv in non-Java thread
-------------------------------------------------------------

Unexpected and apparently inconsistent threading behaviour.

Perhaps due to default callback semantics ?

Hello Maplesoft Support team,

Environment

* Maple: Maple 2024.2 (build used in our tests) Build ID #18723373
* OS: macOS (Apple Silicon / arm64) Sequoia 15.7.1 32 GB
* uname output from the failing machine: Darwin Mac-Mini.local 24.6.0 Darwin Kernel Version 24.6.0: Mon Aug 11 21:16:30 PDT 2025; root:xnu-11417.140.69.701.11~1/RELEASE_ARM64_T8132 arm64  
* JDK: openjdk 21.0.8 2025-07-15 LTS (Temurin 21.0.8+9)  
 
* Maple Java jars in use:
    * /Library/Frameworks/Maple.framework/Versions/2024/java/jopenmaple.jar
    * /Library/Frameworks/Maple.framework/Versions/2024/java/externalcall.jar
* Native libraries loaded from:
    * /Library/Frameworks/Maple.framework/Versions/2024/bin.APPLE_ARM64_MACOS

Exact java command used to run OpenMapleBug1:

java -Xcheck:jni --enable-native-access=ALL-UNNAMED -Xrs \  
  -cp .:/Library/Frameworks/Maple.framework/Versions/2024/java/jopenmaple.jar:/Library/Frameworks/Maple.framework/Versions/2024/java/externalcall.jar \  
  -Djava.library.path=/Library/Frameworks/Maple.framework/Versions/2024/bin.APPLE_ARM64_MACOS \  
  OpenMapleBug1  

Minimal Java reproducer:

import com.maplesoft.openmaple.*;
import com.maplesoft.externalcall.MapleException;
import java.util.*;

public class OpenMapleBug1
{
    public static void main(String[] args) throws Exception
    {
        String[] mapleArgs = { "java" };

        try
        {
            Engine engine = new Engine(mapleArgs, new EngineCallBacksDefault(), null, null);
            String expr1 = "diff( tan( x )/exp( x ), x );";
            String expr2 = "u_general := sum(B[n] * sin(n*Pi*x/L) * exp(-alpha*(n*Pi/L)^2*t), n=1..infinity);";
            System.out.println("Evaluating: " + expr1);
            engine.evaluate(expr1);
            System.out.println("Evaluating: " + expr2);
            engine.evaluate(expr2);
            System.out.println("Success");
        }
        catch (MapleException e)
        {
            System.out.println("Error: " + e);
            e.printStackTrace();
        }
    }
}

Observed Behaviour

Two calls are made to OpenMaple. The first succeeds:

Evaluating: diff( tan( x )/exp( x ), x );
(1+tan(x)^2)/exp(x)-tan(x)/exp(x)

The second fails (cf. OpenMapleBug2 (which is actually my main line of investigation); also submitted).

Evaluating: u_general := sum(B[n] * sin(n*Pi*x/L) * exp(-alpha*(n*Pi/L)^2*t), n=1..infinity);

FATAL ERROR in native method: Using JNIEnv in non-Java thread
zsh: abort      java -Xcheck:jni --enable-native-access=ALL-UNNAMED -Xrs -cp    OpenMapleBug1

=========================================
Suggested actions for Maplesoft engineers
=========================================

* Reproduce on macOS Apple Silicon using the provided reproducer and command line.
* Check whether this regression is present on other platforms (x86 mac, Linux) and JDK versions.
* Provide a fix for Maple 2024.2 (and Maple 2025.x if applicable).

Thank-you.
 


Please Wait...