プロジェクト

全般

プロフィール

バグ #120

完了

独自定義型データのJavaOut/C++In

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

ステータス:
終了
優先度:
高め
担当者:
-
対象バージョン:
-
開始日:
2008/08/15
期日:
進捗率:

100%

予定工数:

説明

独自定義型のデータをout/inする際、
 ・Java Out / Java In
 ・ C++ Out / C++ In
 ・ C++ Out / Java In
は問題なく動作しますが、Java Out / C++ Inの組み合わせの場合、C++ In側でデータの
isNew()がtrueになりません(readしてもnull)。基本データ型の場合は問題ありません。
独自定義型(IDL)には、floatとstringを1個ずつ入れています。

OS   :Ubuntu8.04
JavaRTM:0.4.1-RELEASE
C++RTM :0.4.2-RELEASE

どこに問題があるかは不明ですが、とりあえずこのプロジェクトにアップしました。
それぞれ(Java Out, Java In, C++ Out, C++ In)のソースも添付します。
ご確認をお願い致します。 セック村永


ファイル

test_inout_sec_20080815.tar.gz (35.3 KB) test_inout_sec_20080815.tar.gz 匿名ユーザー, 2008/08/15 11:43

匿名ユーザー さんが16年以上前に更新

  • ステータス新規 から 終了 に変更
  • 進捗率0 から 100 に変更

【2008/08/15 セック村永】
自己レスです。
TypeCodeあたりが問題かと思い調べたところ、IDLコンパイル(Java)で作成される
MyDataHelper.java の _id が"IDL:RTC/MyData/MyData:1.0"のように
IDL:RTC/<型名>/<型名>:1.0となっていることが原因でした。
→正しくは、IDL:RTC/<型名>:1.0 です。

産総研の安藤様、テクノロジックアートの坂本様にご調査いただいたところ、
jdk1.6.0-0~1.6.0-7 のidljのバグで、jdk1.5.x系かjdk1.6.0-10以降(ただし現状RC版)
でidlコンパイルすれば問題ないことが分かりました。
→基本データ型は、1.5.x系でIDLコンパイルされたBasicDataInfo.idlの**Helper.java
 を参照するため、問題ありません。

Ubuntu7.10, 8.04はjdkが~1.6.0-7のためご注意下さい。

安藤様に以下のスクリプトも作成していただきました。**Helper.javaのある
ディレクトリでスクリプトを実行すると、NGのバージョンでも問題なくなります。
--------------------
#!/bin/sh

for f in *Helper.java ; do
cp $f $f.old
typename=`echo $f | sed e 's/Helper.java//'`
sed "s/IDL:RTC\/$typename\/$typename/IDL:RTC\/$typename/" $f.old > $f
rm $f.old
done
-------------------

以上

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