プロジェクト

全般

プロフィール

バグ #1776

完了

get_port_profile()で例外が出るケースがあるがそれをエラーコードにする。

n-ando さんが14年以上前に追加. 9年以上前に更新.

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

100%

予定工数:

説明

OpenRTM-aist開発者の皆様

株式会社セックの大和田です。
お世話になっております。

OpenRTM-aist-1.0.0-RELEASEの複合コンポーネントの
コンポーネントプロファイル取得について、
ご検討していただきたい点がございます。

複合コンポーネントのコンポーネントプロファイルを、
取得するとき、子コンポーネントが終了していた場合、
複合コンポーネントがアボートします。
コンソールには以下のようなメッセージが表示されます。
Assertion failed: false, file c:\final_build\vc9-4\openrtm-aist\rtm\rtobject.cpp, line 694

具体的には、RTObject_impl::get_component_profile()で、
コンポーネントプロファイルを取得するとき、
ポートプロファイルリストを取得しております。
(RTObject.cppの687行目)
このとき、PortAdmin::getPortProfileList()では、
リストに既に存在していないポートがあった場合、
存在していないポートに対して、PortBase::get_port_profile()
を実行しようとするため、Exceptionが発生し、
コンポーネントがアボートしてしまいます。
(PortAdmin.hの537行目)

複合コンポーネントがアボートせず、何らかのエラーを返すような
実装にしていただくことはできないでしょうか。

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