Project

General

Profile

バグ #120

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

Added by Anonymous almost 16 years ago. Updated almost 16 years ago.

Status:
終了
Priority:
高め
Assignee:
-
Target version:
-
Start date:
08/15/2008
Due date:
% Done:

100%

Estimated time:

Description

独自定義型のデータを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 Anonymous, 08/15/2008 11:43 AM

History

#1 Updated by Anonymous almost 16 years ago

  • Status changed from 新規 to 終了
  • % Done changed from 0 to 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
-------------------

以上

Also available in: Atom PDF