Claude Warren created JENA-1514:
-----------------------------------

             Summary: Class cast exception with BigInteger literals.
                 Key: JENA-1514
                 URL: https://issues.apache.org/jira/browse/JENA-1514
             Project: Apache Jena
          Issue Type: Bug
          Components: Jena
    Affects Versions: Jena 3.6.0, Jena 3.7.0
            Reporter: Claude Warren
         Attachments: BigIntIssue.java

When saving a BigInteger as a literal it is converted into an 
XSDBaseNumericType.

When that  type is read back it is converted into the smallest numeric data 
type that can hold the value; a narrowing if you will.

While  this works fine for primitive and primitive wrapping types (e.g. int and 
Integer) there is no automatic boxing available for BigInteger so attempting to 
retrieve the value of a BigInteger that is smaller than the Long.MAX_VALUE will 
result in a class cast exception when the primitive type is cast to the 
BigInteger.

I suspect the similar issues arise when BigDecimal is also used but I have not 
tested.

Should we address this issue by creating a BigInteger and BigDecimal type that 
perhaps extends XSDBaseNumericType?  Should we address this issue at all and 
just post a warning?

Test code is included to show the issue.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to