Bug in ORBit 0.5.8 with deactivate_object



There appears to be a bug with ORBit (I'm looking at 0.5.8) with
PortableServer_POA_deactivate_object which creates problem when you
activate an object, deactivate it, and then activate it again.

In particular, the code for activate_object does this check:

   if((obj->id_uniqueness==PortableServer_UNIQUE_ID) &&
      (ORBIT_OBJECT_KEY(servant->_private)->object != 0)) {
      CORBA_exception_set(ev, CORBA_USER_EXCEPTION,
                ex_PortableServer_POA_ServantAlreadyActive,
                NULL);
      return NULL;
   }

However, deactivate_object doesn't set
ORBIT_OBJECT_KEY(servant->_private)->object to 0, so a subsequent call
to activate_object raises ServantAlreadyActive (and obviously it isn't).

The fix should be pretty trivial (just set object to 0), so I won't
bother attaching a patch.

Cheers,
Jason.

--
Academic Computing Support Specialist         Assistant Section Editor
Algoma University College                     http://linux.com/develop
Sault Ste. Marie, Ontario                 
705-949-2301 x330                                   Personal Home Page
http://www.auc.ca/                                    http://sault.org




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]