Hi there,

while enhancing the BSF engine for Rexx and Object Rexx for BSF 2.2 (IBM-version) first and then adapting it to BSF 2.3 (Apache-version) I finally traced down an error, which has been bugging me for a looong time and which I had filed with the bug tracking system a while ago: if an argument in the method signature is of type "char", then the appropriate method could not be found via reflection. The reason for this lies in "EngineUtils.callBeanMethod(...)", where the case of "Character" is not taken care of. Here's the diff for BSF 2.2:

-------------------------------- cut here --------------------------------
\bsf-2_2\lib\com\ibm\bsf\util>diff -w EngineUtils.java bkp\EngineUtils.java
140,141d139
< } else if (args[i] instanceof Character) {
< argTypes[i] = char.class;
-------------------------------- cut here --------------------------------

If the error is in 2.3, maybe this report helps resolve that issue there as well.

---rony

P.S.: In case of interest: the present adaptations use the BSF infrastructure to allow Rexx programs to load the JVM at runtime and then interact with the Java environment with the means of BSF (as if the Rexx program was started via BSF), in effect using all of Java as a huge "function" library. This allows for 100% portable Rexx programs taking advantage of the ubiquituousness of Java. [At the same time the ability to invoke Rexx programs from Java remains unchanged (actually taking care of the case where Java programmers forget to register Java objects in the BSF registry before invoking the Rexx programs via BSF; in such a case the Rexx engine registers those Java objects on behalf of the Java programmers before invoking Rexx).]




--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to