DECIMAL and NUMERIC types are not handled properly for xvar on Oracle
---------------------------------------------------------------------

                 Key: ODE-872
                 URL: https://issues.apache.org/jira/browse/ODE-872
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
    Affects Versions: 1.3.4
         Environment: External Variables on Oracle 9g/10g
            Reporter: Oleg Zenzin
             Fix For: 1.3.5


The external variables functionality can suffer form Oracle 9g/10g bug when run 
on Java 1.5. Essentially what happens is when a BigDecimal data is being 
updated or inserted the numbers like 125000 or others with trailing zeros can 
become "125", i.e. lose the zeros! The bug is discussed here: 
http://www.javalobby.org/java/forums/t88158.html. Here's an excerpt:

"Between Java 1.4 and Java 1.5, the BigDecimal class changed. In Java 1.4, the 
scale must be non-negative. In Java 1.5, the scale can now be negative (see the 
javadoc). 

If you look at the value 12500000 as a BigDecimal, in Java 1.5, this gets 
represented as 125 with a scale of -5. In 1.4, this would get represented as 
12500000 with a scale of 0. 

In Oracle's driver, they appear to do the conversion to an array of bytes to 
send to the driver themselves; I'm not sure which cases it will work for, but 
I'd suspect that it won't work correctly for a large number of negative scales. 
I'd guess that they designed it under 1.4 and didn't test it adequately under 
1.5. "


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to