Project

General

Profile

バグ #846

CrobaPort::deactivateInterfaces で例外 ObjectNotActive が発生する

Added by Anonymous over 14 years ago. Updated over 14 years ago.

Status:
終了
Priority:
通常
Assignee:
-
Target version:
-
Start date:
08/03/2009
Due date:
% Done:

100%

Estimated time:

Description

  • 現象
    registerProvider() にて別インスタンス名で同オブジェクトを登録した場合、deactivateInterfaces() で オブジェクトを deactivate をすると、例外 ObjectNotActive が発生する。
    以下に例を示す。
          // CorbaPortMock は CorbaPort を継承した class
          // deactivateInterfaces_public は、 deactivateInterfaces をコールしています。
    
          MyService_impl* pImpl0
            = new MyService_impl();
    
          CorbaPortMock* port0 = new CorbaPortMock("name of port");
          bool ret;
          ret = port0->registerProvider("registerProvider0", "Generic", *pImpl0);
          ret = port0->registerProvider("registerProvider1", "Generic", *pImpl0);
    
          port0->deactivateInterfaces_public();
    
  • 原因
    上記の例の場合、deactivateInterfaces() の deactivate_object() で "registerProvider0" のオブジェクトを deactivate した後、 "registerProvider1" のオブジェクトを deactivate するが、このオブジェクトは "registerProvider0" のときに既に deactivate されたため、例外 ObjectNotActive が発生する。
    処理は、例外 ObjectNotActive が発生した時点で終了してしまう。

History

#1 Updated by Anonymous over 14 years ago

  • 対策
    deactivate_object() の ObjectNotActive を catch するように処理を修正。

#2 Updated by Anonymous over 14 years ago

  • Status changed from 新規 to 解決
  • % Done changed from 0 to 100

#3 Updated by n-ando over 14 years ago

  • Status changed from 解決 to 終了

Also available in: Atom PDF