JDK-8305531 : assign Long to variable cast it to Integer
  • Type: Bug
  • Component: core-libs
  • Sub-Component: jdk.nashorn
  • Affected Version: 11
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • OS: generic
  • CPU: generic
  • Submitted: 2023-03-31
  • Updated: 2024-01-30
Related Reports
Relates :  
Description
A DESCRIPTION OF THE PROBLEM :
reproduce bug code:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {
    public static void main(String[] args) {
        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("nashorn");
        try {
            String script = "var Long = Java.type('java.lang.Long');" +
                    "var id = Long.valueOf('1');" +
                    "print(Long.valueOf('1').equals(id));" +
                    "print(Long.valueOf('1').getClass());" +
                    "print(id.getClass());";
            engine.eval(script);
        } catch (ScriptException se) {
            se.printStackTrace();
        }
    }
}

JDK 11 Output:
false
class java.lang.Long
class java.lang.Integer

JDK 8 Output:
true
class java.lang.Long
class java.lang.Long

REGRESSION : Last worked in version 8u361


FREQUENCY : always



Comments
The observations on Windows 10: JDK 8: Passed. JDK 11ea+1: Failed.
04-04-2023