Actions
バグ #846
closedCrobaPort::deactivateInterfaces で例外 ObjectNotActive が発生する
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 が発生した時点で終了してしまう。
Updated by Anonymous almost 16 years ago
- 対策
deactivate_object() の ObjectNotActive を catch するように処理を修正。
Updated by Anonymous almost 16 years ago
- Status changed from 新規 to 解決
- % Done changed from 0 to 100
Actions