FULL PRODUCT VERSION :
Any Java 1.5 version
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
IDLJ generates wrong repository ID for structs defined in IDL
For this IDL definition:
***
module com {
module lhs {
module ccb {
module soi {
module types {
struct LocaleI
{
string language;
string country;
string variant;
};
};
};
};
};
};
***
The following repository ID will be generated:
***
private static String _id = "IDL:com/lhs/ccb/soi/types/LocaleI/LocaleI:1.0";
***
The "LocaleI" is repeated here two times - this is wrong.
IDLJ from the Java 1.4 generates the following repository ID (the correct one):
private static String _id = "IDL:com/lhs/ccb/soi/types/LocaleI:1.0";
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Put this into a file "test.idl"
***
module com {
module lhs {
module ccb {
module soi {
module types {
struct LocaleI
{
string language;
string country;
string variant;
};
};
};
};
};
};
***
2. Execute:
idlj -fAll test.idl
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The generated class LocaleIHelper should contains the following repository ID:
private static String _id = "IDL:com/lhs/ccb/soi/types/LocaleI:1.0";
If I generate Java classes with IDLJ from Java 1.4 it generates this exactly this repository ID.
If I use idl2cpp compiler from TAO orb it generates C++ classes with this repository ID.
ACTUAL -
IDLJ generates:
private static String _id = "IDL:com/lhs/ccb/soi/types/LocaleI/LocaleI:1.0";
REPRODUCIBILITY :
This bug can be reproduced always.
Release Regression From : 1.4.2
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.