プロジェクト

全般

プロフィール

バグ #4195

未完了

モジュールロードパスを複数設定した場合の不具合

katami さんが7年以上前に追加. 7年以上前に更新.

ステータス:
担当
優先度:
通常
担当者:
katami
対象バージョン:
開始日:
2017/09/11
期日:
進捗率:

100%

予定工数:

説明

モジュールロードパスを複数設定して、Manager::createComponentでコンポーネントを生成した場合、対象のコンポーネントが存在するにもかかわらず、生成できないことがある。
再現例
  • ./RTMExamples/Composite に Motor.java を格納しておく。
  • rtc.confで以下を設定
    manager.modules.load_path: ./RTMExamples/Composite,/home/t-katami/work/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/bin/jp/go/aist/rtm/RTC/
    
  • 以下のようにコンポーネントを生成するとnullが帰ってくる。
    RTObject_impl mcomp = mgr.createComponent("Motor");
    

原因
ModuleManager::load()でパスとモジュール名で検索する。
2つのモジュールパスの一つ目で見つかったにもかかわらず、次にパスでも検索している。
二つ目のパスで見つからなかった場合、その結果が採用されてしまっている。

対策
ModuleManager::load()でパスとモジュール名で検索して、見つかった時点で、検索をやめて、結果を返すように修正する。

katami さんが7年以上前に更新

  • ステータス新規 から 担当 に変更
  • 担当者katami にセット
  • 対象バージョンRELEASE_1_2_0 にセット
  • 進捗率0 から 100 に変更

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