IDL-to-java code generator generates read/write union helper methods that throw org.omg.CORBA.BAD_OPERATION in cases when boolean discriminator's value isn't matched. This is wrong. According to section "7.11.2.2 Discriminated Unions" [1]: It is not required that all possible values of the union discriminator be listed in the <switch_body>. The value of a union is the value of the discriminator together with one of the following: ��� If the discriminator value was explicitly listed in a case statement, the value of the element associated with that case statement; ��� If a default case label was specified, the value of the element associated with the default case label; ��� No additional value. [1] http://www.omg.org/spec/CORBA/3.2/Interfaces/PDF/