[omniORB] Object::_get_interface() always returns nil ref.

Alex Tingle alex.omniorb at firetree.net
Mon Mar 22 15:47:12 GMT 2004


Hi,

I'm working on `omniifr' an implementation of the Interface Repository.
The first draft is very nearly complete, but I'm having trouble with
omniORB's implementation of the Object::_get_interface() method - it
always returns a nil reference!

See the attached test program and logfile. The test program simply
resolves an init ref to the InterfaceRepository, and then calls
_get_interface() on the Repository itself. (This should successfully
return an InterfaceDef_ptr, because I've previously loaded ir.idl into
the repository.)

The trace shows the following sequence:

1. test program requests ifr's _interface method.
2. ifr's ORB successfully resolves initial ref to the
   repository (which happens to be itself).
3. Call to Repository::lookup_id() is requested and returns
   sucessfully with the InterfaceDef reference.
4. Nil reference is returned to test program.

So, the problem seems to occur between steps 3 and 4.

Anybody have a clue?

-Alex Tingle


-------------- next part --------------
omniORB: Server accepted connection from giop:tcp:127.0.0.1:42801
omniORB: AsyncInvoker: thread id = 5 has started. Total threads = 3
omniORB: giopWorker task execute.
omniORB: Accepted connection from giop:tcp:127.0.0.1:42801 because of this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:127.0.0.1:42801 101 bytes
omniORB: 
4749 4f50 0100 0100 5900 0000 0000 0000 GIOP....Y.......
0200 0000 0100 0000 1100 0000 4465 6661 ............Defa
756c 7452 6570 6f73 6974 6f72 7900 0000 ultRepository...
0600 0000 5f69 735f 6100 0000 0000 0000 ...._is_a.......
2100 0000 4944 4c3a 6f6d 672e 6f72 672f !...IDL:omg.org/
434f 5242 412f 5265 706f 7369 746f 7279 CORBA/Repository
3a31 2e30 00                            :1.0.
omniORB: sendChunk: to giop:tcp:127.0.0.1:42801 25 bytes
omniORB: 
4749 4f50 0100 0101 0d00 0000 0000 0000 GIOP............
0200 0000 0000 0000 01                  .........
omniORB: inputMessage: from giop:tcp:127.0.0.1:42801 68 bytes
omniORB: 
4749 4f50 0100 0100 3800 0000 0000 0000 GIOP....8.......
0400 0000 0100 0000 1100 0000 4465 6661 ............Defa
756c 7452 6570 6f73 6974 6f72 7900 0000 ultRepository...
0b00 0000 5f69 6e74 6572 6661 6365 0000 ...._interface..
0000 0000                               ....
omniORB: Creating ref to remote: key<0x44656661756c745265706f7369746f7279>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: 
omniORB: Initial reference `InterfaceRepository' resolved from configuration file.
omniORB: LocateRequest to remote: key<0x44656661756c745265706f7369746f7279>
omniORB: Client attempt to connect to giop:tcp:quango:4321
omniORB: Server accepted connection from giop:tcp:127.0.0.1:42802
omniORB: Client opened connection to giop:tcp:127.0.0.1:4321
omniORB: sendChunk: to giop:tcp:127.0.0.1:4321 37 bytes
omniORB: 
4749 4f50 0100 0103 1900 0000 0200 0000 GIOP............
1100 0000 4465 6661 756c 7452 6570 6f73 ....DefaultRepos
6974 6f72 79                            itory
omniORB: AsyncInvoker: thread id = 6 has started. Total threads = 4
omniORB: giopWorker task execute.
omniORB: Accepted connection from giop:tcp:127.0.0.1:42802 because of this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:127.0.0.1:42802 37 bytes
omniORB: 
4749 4f50 0100 0103 1900 0000 0200 0000 GIOP............
1100 0000 4465 6661 756c 7452 6570 6f73 ....DefaultRepos
6974 6f72 79                            itory
omniORB: Handling a GIOP LOCATE_REQUEST.
omniORB: sendChunk: to giop:tcp:127.0.0.1:42802 20 bytes
omniORB: 
4749 4f50 0100 0104 0800 0000 0200 0000 GIOP............
0100 0000                               ....
omniORB: inputMessage: from giop:tcp:127.0.0.1:4321 20 bytes
omniORB: 
4749 4f50 0100 0104 0800 0000 0200 0000 GIOP............
0100 0000                               ....
omniORB: sendChunk: to giop:tcp:127.0.0.1:4321 105 bytes
omniORB: 
4749 4f50 0100 0100 5d00 0000 0000 0000 GIOP....].......
0400 0000 0165 6661 1100 0000 4465 6661 .....efa....Defa
756c 7452 6570 6f73 6974 6f72 79f6 1740 ultRepository..@
0a00 0000 6c6f 6f6b 7570 5f69 6400 1740 ....lookup_id..@
0000 0000 2100 0000 4944 4c3a 6f6d 672e ....!...IDL:omg.
6f72 672f 434f 5242 412f 5265 706f 7369 org/CORBA/Reposi
746f 7279 3a31 2e30 00                  tory:1.0.
omniORB: inputMessage: from giop:tcp:127.0.0.1:42802 105 bytes
omniORB: 
4749 4f50 0100 0100 5d00 0000 0000 0000 GIOP....].......
0400 0000 0165 6661 1100 0000 4465 6661 .....efa....Defa
756c 7452 6570 6f73 6974 6f72 79f6 1740 ultRepository..@
0a00 0000 6c6f 6f6b 7570 5f69 6400 1740 ....lookup_id..@
0000 0000 2100 0000 4944 4c3a 6f6d 672e ....!...IDL:omg.
6f72 672f 434f 5242 412f 5265 706f 7369 org/CORBA/Reposi
746f 7279 3a31 2e30 00                  tory:1.0.
omniIFR: lookup_id(IDL:omg.org/CORBA/Repository:1.0)
omniORB: Creating ref to local: root/IRpoa<28.30433.405cde3c>
 target id      : IDL:omg.org/CORBA/Contained:1.0
 most derived id: IDL:omg.org/CORBA/InterfaceDef:1.0
omniORB: sendChunk: to giop:tcp:127.0.0.1:42802 184 bytes
omniORB: 
4749 4f50 0100 0101 ac00 0000 0000 0000 GIOP............
0400 0000 0000 0000 2300 0000 4944 4c3a ........#...IDL:
6f6d 672e 6f72 672f 434f 5242 412f 496e omg.org/CORBA/In
7465 7266 6163 6544 6566 3a31 2e30 0000 terfaceDef:1.0..
0100 0000 0000 0000 6c00 0000 0101 0200 ........l.......
0c00 0000 3139 322e 3136 382e 302e 3500 ....192.168.0.5.
e110 0000 1800 0000 ff49 5270 6f61 0032 .........IRpoa.2
382e 3330 3433 332e 3430 3563 6465 3363 8.30433.405cde3c
0200 0000 0000 0000 0800 0000 0100 0000 ................
0054 5441 0100 0000 1c00 0000 0100 0000 .TTA............
0100 0100 0100 0000 0100 0105 0901 0100 ................
0100 0000 0901 0100                     ........
omniORB: inputMessage: from giop:tcp:127.0.0.1:4321 184 bytes
omniORB: 
4749 4f50 0100 0101 ac00 0000 0000 0000 GIOP............
0400 0000 0000 0000 2300 0000 4944 4c3a ........#...IDL:
6f6d 672e 6f72 672f 434f 5242 412f 496e omg.org/CORBA/In
7465 7266 6163 6544 6566 3a31 2e30 0000 terfaceDef:1.0..
0100 0000 0000 0000 6c00 0000 0101 0200 ........l.......
0c00 0000 3139 322e 3136 382e 302e 3500 ....192.168.0.5.
e110 0000 1800 0000 ff49 5270 6f61 0032 .........IRpoa.2
382e 3330 3433 332e 3430 3563 6465 3363 8.30433.405cde3c
0200 0000 0000 0000 0800 0000 0100 0000 ................
0054 5441 0100 0000 1c00 0000 0100 0000 .TTA............
0100 0100 0100 0000 0100 0105 0901 0100 ................
0100 0000 0901 0100                     ........
omniORB: Creating ref to local: root/IRpoa<28.30433.405cde3c>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CORBA/InterfaceDef:1.0
omniORB: sendChunk: to giop:tcp:127.0.0.1:42801 36 bytes
omniORB: 
4749 4f50 0100 0101 1800 0000 0000 0000 GIOP............
0400 0000 0000 0000 0100 0000 0031 3638 .............168
0000 0000                               ....
omniORB: ObjRef(IDL:omg.org/CORBA/InterfaceDef:1.0) -- deleted.
omniORB: throw giopStream::CommFailure from giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: Server connection refcount = 1
omniORB: Server connection refcount = 0
omniORB: Server close connection from giop:tcp:127.0.0.1:42801


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ifrtest.cc
Type: text/x-c++src
Size: 380 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20040322/7dcf27fb/ifrtest.bin


More information about the omniORB-list mailing list