-
Type: Bug
-
Resolution: Won't Fix
-
Priority: Major
-
None
-
Affects Version/s: 2.3.12
-
Component/s: S2Container
-
None
-
Environment:Client:WinXP+Eclipse3.2+S2Container 2.3.12+JDK1.5.0.07
Server:Win2003+Oracle9i
S2DAOでオラクルのストアドを呼出して、ストアドで設定済みのOUTオブジェクトを
javaのDTOに変換しますが、NUMBERをBigDecimalを変換するところ、Exceptionが
Throwされました。
また、2.3.12版のorg.seasar.framework.util.BigDecimalConversionUtil.toBigDecimalクラス
と2.4.6版実装が違いますが、同様の結果になっています。
Debugしてみて、該当メソッドに、下記のような処理が必要のようです。
else if (o instanceof NUMBER){
try
catch(SQLException e)
{ return null; }エラースタック:
org.seasar.framework.beans.IllegalPropertyRuntimeException:
・・・理由はjava.lang.NumberFormatException
・・・省略・・・
at java.math.BigDecimal.<init>(BigDecimal.java:647)
at org.seasar.framework.util.BigDecimalConversionUtil.toBigDecimal(BigDecimalConversionUtil.java:68)
at org.seasar.framework.util.BigDecimalConversionUtil.toBigDecimal(BigDecimalConversionUtil.java:30)
at org.seasar.framework.util.NumberConversionUtil.convertNumber(NumberConversionUtil.java:30)
・・・省略・・・
ストアドイメージ:
my package#my function(in inData ユーザ定義タイプ,out outData ユーザ定義タイプ)
ユーザ定義タイプ:
( A NUMBER、B DATE C VARCHAR2)