-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
1.4.0
-
sparc
-
solaris_8
Name: gm110360 Date: 02/13/2002
FULL PRODUCT VERSION :
java version "1.4.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-rc-b91)
Java HotSpot(TM) Client VM (build 1.4.0-rc-b91, mixed mode)
FULL OPERATING SYSTEM VERSION :
SunOS mars 5.8 Generic_108528-08 sun4u sparc
SUNW,Ultra-Enterprise
A DESCRIPTION OF THE PROBLEM :
The Corba jidl tool does not find idl files that have been
#included "xxx" from within another included file.
eg directories and files
/--devel
|----lib
| | - Types.idl
| | - Methods.idl
|
|----test
| - Test.idl
-----------------------------------------
/devel/lib/Test.idl
#ifndef TYPES_IDL
#define TYPES_IDL
module lib {
module types {
struct Dummy { long value; };
};};
#endif
-----------------------------------------
/devel/lib/Methods.idl
#ifndef METHODS_IDL
#define METHODS_IDL
#include "Types.idl"
module lib {
module methods {
interface Controller {
void perform(in lib::types::Dummy obj);
};
};};
#endif
-----------------------------------------
/devel/test/Test.idl
// (1)
//#include "../lib/Methods.idl"
// (2)
//#include "/devel/lib/Methods.idl"
// (3)
#include <lib/Methods.idl>
module test {
struct Data { lib::methods::Controller obj };
};
-----------------------------------------
When compiled from directory /devel/test
> jidl Test.idl
/home/rossb/proto/sun/idl/lib/Methods.idl (line 4):
java.io.FileNotFoundException: Types.idl
#include "Types.idl"
^
This fails regardless of whether the include is (1)
relative, (2) absolute path, or (3) relative to the a path
specified on the command line (ie jidl -i /devel Test.idl)
jild is interpreting the nested #include relative to its
current directory. Instead it should be interpreted
relative to the directory of the file containing the #include.
This bug can be reproduced always.
CUSTOMER WORKAROUND :
Explicitly list all directories that contain IDL files on
the command line to jidl.
(Review ID: 139092)
======================================================================