RexxLA / NetRexx

Other
6 stars 0 forks source link

Exception when interpreting code with constant properties #33

Closed remesm closed 1 year ago

remesm commented 1 year ago

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

remesm commented 1 year ago

Fixed in NetRexx 4.04