Interpreting code with constant properties generates an exception.
The same code runs fine when compiled.
This is not new, an exception also occurs in nrx 3.09.
$ cat cons.nrx
import java.lang.String
class cons
properties public constant
c=0
method cons()
return this
method main(args=String[]) static
say 'nope'
$ nrc -exec cons
NetRexx portable processor 4.04-alpha build 1,794-20220727-1545
Copyright (c) RexxLA, 2011,2022. All rights reserved.
Parts Copyright (c) IBM Corporation, 1995,2008.
Program cons.nrx
=== class cons ===
constructor cons()
overrides Object()
function main(String[])
===== Exec: cons =====
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:488)
at java.base/java.lang.Class.forName(Class.java:467)
at org.netrexx.process.RxType.getClassObject(RxType.java:374)
at org.netrexx.process.RxClassInfo.getClassObject(RxClassInfo.java:230)
at org.netrexx.process.RxInterpreter.callMethod(RxInterpreter.java:1002)
at org.netrexx.process.RxInterpreter.callMethod(RxInterpreter.java:840)
at org.netrexx.process.RxTranslator.exec(RxTranslator.java:791)
at org.netrexx.process.NetRexxC.process(NetRexxC.java:536)
at org.netrexx.process.NetRexxC.main2(NetRexxC.java:345)
at org.netrexx.process.NetRexxC.main2(NetRexxC.java:324)
at org.netrexx.process.NetRexxC.main2(NetRexxC.java:320)
at org.netrexx.process.NetRexxC.main(NetRexxC.java:174)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.setInt(Object, int)" because "" is null
at org.netrexx.process.RxInterpreter.doProperty(RxInterpreter.java:709)
at org.netrexx.process.RxInterpreter.setProperty(RxInterpreter.java:650)
at org.netrexx.process.RxInterpreter.setVar(RxInterpreter.java:623)
at org.netrexx.process.NrAssign.interpret(NrAssign.java:560)
at org.netrexx.process.RxInterpreter.initializeProperties(RxInterpreter.java:211)
at org.netrexx.process.RxInterpreter.proxyInit(RxInterpreter.java:753)
at cons.(cons.nrx)
... 13 more
Interpreting code with constant properties generates an exception. The same code runs fine when compiled. This is not new, an exception also occurs in nrx 3.09.
$ cat cons.nrx
import java.lang.String
class cons
properties public constant c=0
method cons() return this
method main(args=String[]) static say 'nope'
$ nrc -exec cons NetRexx portable processor 4.04-alpha build 1,794-20220727-1545 Copyright (c) RexxLA, 2011,2022. All rights reserved. Parts Copyright (c) IBM Corporation, 1995,2008. Program cons.nrx === class cons === constructor cons() overrides Object() function main(String[]) ===== Exec: cons ===== Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:488) at java.base/java.lang.Class.forName(Class.java:467) at org.netrexx.process.RxType.getClassObject(RxType.java:374) at org.netrexx.process.RxClassInfo.getClassObject(RxClassInfo.java:230) at org.netrexx.process.RxInterpreter.callMethod(RxInterpreter.java:1002) at org.netrexx.process.RxInterpreter.callMethod(RxInterpreter.java:840) at org.netrexx.process.RxTranslator.exec(RxTranslator.java:791) at org.netrexx.process.NetRexxC.process(NetRexxC.java:536) at org.netrexx.process.NetRexxC.main2(NetRexxC.java:345) at org.netrexx.process.NetRexxC.main2(NetRexxC.java:324) at org.netrexx.process.NetRexxC.main2(NetRexxC.java:320) at org.netrexx.process.NetRexxC.main(NetRexxC.java:174) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.setInt(Object, int)" because "" is null
at org.netrexx.process.RxInterpreter.doProperty(RxInterpreter.java:709)
at org.netrexx.process.RxInterpreter.setProperty(RxInterpreter.java:650)
at org.netrexx.process.RxInterpreter.setVar(RxInterpreter.java:623)
at org.netrexx.process.NrAssign.interpret(NrAssign.java:560)
at org.netrexx.process.RxInterpreter.initializeProperties(RxInterpreter.java:211)
at org.netrexx.process.RxInterpreter.proxyInit(RxInterpreter.java:753)
at cons.(cons.nrx)
... 13 more