Well, the error clearly indicates a null pointer exception, and going back up the call stack, it's clear that this is caused by getenv("PATH") returning a null value for some reason. 


On Mon, Mar 24, 2014 at 5:43 PM, Rony G. Flatscher <Rony.Flatscher@wu.ac.at> wrote:
Hi there,

trying to debug an awkward error on MacOSX when ooRexx is created from within a 64-bit Java thread, initialized by Apache OpenOffice (AOO).

Preliminary comment: 64-bit ooRexx, Java and BSF4ooRexx work stand-alone without any problems. It is also possible to run ooRexx scripts using the AOO jre-libraries to interact with AOO.

The problem occurs when having AOO dispatch ooRexx scripts ("macros") via 64-bit Java on MacOSX. (The same scenario works flawlessly e.g. on 64-bit Linux and on 32-bit Linux and Windows AOO; there is no 64-bit AOO for Windows yet.)

Here are the relevant snippets from the (impressively detailed) crash report on MacOSX:
Process:         soffice [92432]
Path:            /Applications/OpenOffice Beta.app/Contents/MacOS/soffice
Identifier:      org.openoffice.script
Version:         4.1.0 (???)
Code Type:       X86-64 (Native)
Parent Process:  launchd [254]
Responsible:     soffice [92432]
User ID:         501

Date/Time:       2014-03-24 20:44:16.238 +0100
OS Version:      Mac OS X 10.9.2 (13C64)
Report Version:  11
Anonymous UUID:  E2667C29-B337-0D61-D55C-512C7C88AD32

Sleep/Wake UUID: 5C125262-4B0C-411C-A290-DF7A9D64F65B

Crashed Thread:  35  Java: AWT-EventQueue-0

Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000

VM Regions Near 0:
    __TEXT                 000000010209e000-000000010209f000 [    4K] r-x/rwx SM=COW  /Applications/OpenOffice Beta.app/Contents/MacOS/soffice

Application Specific Information:
Java information:
 Exception type: Bus Error (0xa) at pc=7fff8d3a1732
 Java VM: Java HotSpot(TM) 64-Bit Server VM (20.65-b04-462 mixed mode macosx-amd64)

... cut ...

Thread 35 Crashed:: Java: AWT-EventQueue-0
0   libsystem_c.dylib                 0x00007fff8d3a1732 strlen + 18
1   librexx.4.dylib                   0x000000011ee56ea9 SysFileSystem::searchPath(char const*, char const*, char*) + 41 (SysFileSystem.cpp:520)
2   librexx.4.dylib                   0x000000011ee56ea9 SysFileSystem::searchPath(char const*, char const*, char*) + 41 (SysFileSystem.cpp:520)
3   librexx.4.dylib                   0x000000011ee56dbe SysFileSystem::primitiveSearchName(char const*, char const*, char const*, char*) + 270 (SysFileSystem.cpp:449)
4   librexx.4.dylib                   0x000000011ee55ab6 SystemInterpreter::loadImage(char**, unsigned long*) + 102 (FileSystem.cpp:154)
5   librexx.4.dylib                   0x000000011ee1de6a RexxMemory::restoreImage() + 58 (RexxMemory.cpp:813)
6   librexx.4.dylib                   0x000000011ee1dd97 RexxMemory::initialize(bool) + 839 (RexxMemory.cpp:202)
7   librexx.4.dylib                   0x000000011ee5da62 Interpreter::startInterpreter(Interpreter::InterpreterStartupMode) + 66 (Interpreter.cpp:135)
8   librexx.4.dylib                   0x000000011ee5de9d Interpreter::createInterpreterInstance(RexxOption*) + 45 (SysSemaphore.hpp:82)
9   librexx.4.dylib                   0x000000011ee5de18 Interpreter::createInstance(RexxInstance_*&, RexxThreadContext_*&, RexxOption*) + 24 (Interpreter.cpp:261)
10  librexx.4.dylib                   0x000000011edf98d9 RexxCreateInterpreter + 9 (InterpreterAPI.cpp:382)
11  libBSF4ooRexx.dylib               0x0000000109687178 Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxCreateInterpreterInstance + 2536
12  ???                               0x0000000115741eee 0 + 4654898926
13  ???                               0x00000001157369b3 0 + 4654852531
14  ???                               0x00000001157369b3 0 + 4654852531
15  ???                               0x0000000115736e8d 0 + 4654853773
16  ???                               0x0000000115731438 0 + 4654830648
17  libclient64.dylib                 0x0000000114f01ef4 0x114e6b000 + 618228
18  libclient64.dylib                 0x0000000114f01cb8 0x114e6b000 + 617656
19  libclient64.dylib                 0x0000000114f0d427 JVM_DoPrivileged + 1037
20  libjvmlinkage.dylib               0x000000011557211d JVM_DoPrivileged + 93

... cut ...
My wild guess at the moment is that AOO 64-Bit on MacOSX somehow (memory?) restricts (maybe native code loaded via) Java.

It seems that RexxCreateInterpreter() is called successfully which in turn does all sorts of initializations.

What could be the reason that a crash occurs either in SysFileSystem::searchPath(), if the crash occurs there? Any ideas, wild guesses, speculations of any sort?

Thankful for any thoughts, hints and advice!


Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
Oorexx-devel mailing list