For the following IDL which I believe is valid (I have two contants declared fred::x and charlie::x): interface fred { const unsigned long x = 0xffffffff; }; interface charlie : fred { const unsigned long x = 0xffffffff; }; I get the following error when compiling with the idl compiler: % idl -noskel -d output -I. test.idl java.lang.RuntimeException: Could not find definition of : charlie.x at org.jacorb.idl.TypeMap.removeDefinition(Unknown Source) at org.jacorb.idl.NameTable.define(Unknown Source) at org.jacorb.idl.ConstDecl.parse(Unknown Source) at org.jacorb.idl.InterfaceBody.internal_parse(Unknown Source) at org.jacorb.idl.InterfaceBody.parse(Unknown Source) at org.jacorb.idl.Interface.parse(Unknown Source) at org.jacorb.idl.Definition.parse(Unknown Source) at org.jacorb.idl.Spec.parse(Unknown Source) at org.jacorb.idl.CUP$actions.CUP$do_action(Unknown Source) at org.jacorb.idl.parser.do_action(Unknown Source) at org.jacorb.idl.runtime.lr_parser.parse(Unknown Source) at org.jacorb.idl.parser.compile(Unknown Source) at org.jacorb.idl.parser.compile(Unknown Source) at org.jacorb.idl.parser.compileAndHandle(Unknown Source) at org.jacorb.idl.parser.main(Unknown Source) [jacorb.idl] ERROR : /work/wallis/TrainingExamples/CXX/ciidl/test.idl, line: 8(1): Exception: java.lang.RuntimeException: Could not find definition of : charlie.x -noskel -d output -I. test.idl : Could not find definition of : charlie.x Usage: idl [-h|-help][-v|-version][-Dsymbol[=value]][-Idir][-U<symbol>][-W debug_level ][-all][-forceOverwrite][-ami_callback][-ami_polling][-backend classname][-d <Output Dir>][-unchecked_narrow][-i2jpackage x:y][-i2jpackagefile <filename>][-cldc10][-ir][-nofinal][-noskel][-nostub][-sloppy_forward][-slop py_names][-permissive_rmic][-syntax] <filelist> Even if the IDL is invalid, the runtime exception is an inappropriate way to report it.
Sure, the stack trace is not definitely not intended to surface at all, that's a plain bug. Thanks, Gerald.
Is org.jacorb.idl.TypeMap.removeDefinition() supposed to throw a runtime exception when the type definition of a symbol (constant, in this particular case) is not found?
This should be fixed now by the patch for bug 616, which I just installed.