[Ace-users] Issue occurs when put IDL file into TAO IFR in the second times

wodaxia xushijie1982 at yahoo.com.cn
Tue Nov 20 23:53:24 CST 2007


We have come across some issues when we tried to put IDL into tao IFR.
Does TAO support to put IDL file that contains keyword 'typedef' into
IFR multiple times?

TAO IFR VERSION(generated by command: tao_ifr -V):
TAO_IDL_FE, version 1.5a (Based on Sun IDL FE, version 1.3.0)
TAO_IFR_BE, version 1.5a

PROBLEM Description:
Exceptions occured when we tried to put the same IDL file that
contains keyword 'typedef' into TAO Interface Repository(IFR) twice.
Our procdure is:
1. start up IFR service:
     $TAO_ROOT/orbsvcs/IFR_Service/IFR_Service -o if_repo.ior
&             ===>SUCCESS
2. Put IDL file FMK_ItString.idl into IFR:
      $ACE_ROOT/bin/tao_ifr -v  -ORBInitRef InterfaceRepository=file://
if_repo.ior FMK_ItString.idl
The result is OK and IDL file 'FMK_ItString.idl'(Attached to this
mail)  is put into IFR successfully. However, exception arises when we
run this command again. The exception looks like:

(16592|1) EXCEPTION, visit_typedef
system exception, ID 'IDL:omg.org/CORBA/BAD_PARAM:1.0'
OMG minor code (2), described as 'RID already defined in IFR.',
completed = NO

(ifr_adding_visitor.cpp:106) ifr_adding_visitor::visit_scope - failed
to accept visitor
(ifr_adding_visitor.cpp:217) ifr_adding_visitor::visit_module -
visit_scope failed
(ifr_adding_visitor.cpp:106) ifr_adding_visitor::visit_scope - failed
to accept visitor
(ifr_adding_visitor.cpp:2177) ifr_adding_visitor::visit_root -
visit_scope failed
(be_produce.cpp:221) BE_produce - failed to accept adding visitor
Fatal Error - Aborting

However, for other IDL(test_new.idl) that does not contain keyword
'typedef', there is no problem when we put same it repeatly.

Additionally, I added new interface for FMK_ItString.idl and tried to
put this idl to the IFR. Unfortunately, I failed and the same
exception occured.

Therefore, Is this a bug of TAO IFR?  Does tao support keyword
'typedef' in IDL file for IFR? If yes, what actions should we take for
this case?
=========================================================
FMK_ItString.idl:
#ifndef __FMK_ITSTRING_IDL__
#define __FMK_ITSTRING_IDL__
module wtk {
  typedef string FMK_ItSeqString;

};
#endif // __FMK_ITSTRING_IDL__

==========================
test_new.idl:
#ifndef _IDL_BBB_TYPE
#define _IDL_BBB_TYPE
module warehouse
{
  interface BBB
  {
    boolean getDeskNumber (in string artist,
                       inout string title,
                       out float price);
  };
};

#endif


More information about the Ace-users mailing list