プロジェクト

全般

プロフィール

バグ #846

完了

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

匿名ユーザー さんが15年以上前に追加. ほぼ15年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2009/08/03
期日:
進捗率:

100%

予定工数:

説明

  • 現象
    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 が発生した時点で終了してしまう。

他の形式にエクスポート: Atom PDF