JDO
  1. JDO
  2. JDO-104

Value is outside the range for the data type DOUBLE

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: JDO 2 beta
    • Component/s: tck
    • Labels:
      None

      Description

      value = 4.9E-324

      Seven tests affected:
      org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections
      org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections
      org.apache.jdo.tck.models.fieldtypes.TestHashSetCollections
      org.apache.jdo.tck.models.fieldtypes.TestLinkedListCollections
      org.apache.jdo.tck.models.fieldtypes.TestListCollections
      org.apache.jdo.tck.models.fieldtypes.TestSetCollections
      org.apache.jdo.tck.models.fieldtypes.TestVectorCollections

      test(org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections)javax.jdo.JDODataStoreException: Cannot set Object parameter: value = 4.9E-324
      at org.jpox.store.rdbms.mapping.DoubleRDBMSMapping.setObject(DoubleRDBMSMapping.java:233)
      at org.jpox.store.mapping.SingleFieldMapping.setObject(SingleFieldMapping.java:235)
      at org.jpox.store.rdbms.scostore.AbstractCollectionStore.populateElementInStatement(AbstractCollectionStore.java:333)
      at org.jpox.store.rdbms.scostore.AbstractListStore.internalAdd(AbstractListStore.java:1615)
      at org.jpox.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:333)
      at org.jpox.store.mapping.ListMapping.postUpdate(ListMapping.java:269)
      at org.jpox.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:266)
      at org.jpox.store.rdbms.table.ClassTable.update(ClassTable.java:1810)
      at org.jpox.store.StoreManager.update(StoreManager.java:710)
      at org.jpox.state.StateManagerImpl.flush(StateManagerImpl.java:4069)
      at org.jpox.AbstractPersistenceManager.flush(AbstractPersistenceManager.java:2917)
      at org.jpox.NonmanagedTransaction.commit(NonmanagedTransaction.java:431)
      at org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections.runTest(TestArrayListCollections.java:105)
      at org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections.test(TestArrayListCollections.java:69)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:197)
      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)
      NestedThrowablesStackTrace:
      ERROR 22003: The resulting value is outside the range for the data type DOUBLE.
      at org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
      at org.apache.derby.iapi.types.NumberDataType.normalizeDOUBLE(NumberDataType.java)
      at org.apache.derby.iapi.types.SQLDouble.setValue(SQLDouble.java)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setDouble(EmbedPreparedStatement.java)
      at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setDouble(NewProxyPreparedStatement.java:206)
      at org.jpox.store.rdbms.mapping.DoubleRDBMSMapping.setObject(DoubleRDBMSMapping.java:228)
      at org.jpox.store.mapping.SingleFieldMapping.setObject(SingleFieldMapping.java:235)
      at org.jpox.store.rdbms.scostore.AbstractCollectionStore.populateElementInStatement(AbstractCollectionStore.java:333)
      at org.jpox.store.rdbms.scostore.AbstractListStore.internalAdd(AbstractListStore.java:1615)
      at org.jpox.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:333)
      at org.jpox.store.mapping.ListMapping.postUpdate(ListMapping.java:269)
      at org.jpox.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:266)
      at org.jpox.store.rdbms.table.ClassTable.update(ClassTable.java:1810)
      at org.jpox.store.StoreManager.update(StoreManager.java:710)
      at org.jpox.state.StateManagerImpl.flush(StateManagerImpl.java:4069)
      at org.jpox.AbstractPersistenceManager.flush(AbstractPersistenceManager.java:2917)
      at org.jpox.NonmanagedTransaction.commit(NonmanagedTransaction.java:431)
      at org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections.runTest(TestArrayListCollections.java:105)
      at org.apache.jdo.tck.models.fieldtypes.TestArrayListCollections.test(TestArrayListCollections.java:69)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:197)
      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)

        Activity

        Michael Bouschen made changes -
        Resolution Fixed [ 1 ]
        Fix Version/s JDO 2 beta [ 12310683 ]
        Status Reopened [ 4 ] Closed [ 6 ]
        Michael Bouschen made changes -
        Status Closed [ 6 ] Reopened [ 4 ]
        Resolution Fixed [ 1 ]
        Hide
        Michael Bouschen added a comment -

        Reopened to set the Fix Version/s field to JDO 2 beta.

        Show
        Michael Bouschen added a comment - Reopened to set the Fix Version/s field to JDO 2 beta.
        Michelle Caisse made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Michelle Caisse made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Hide
        Michelle Caisse added a comment -

        Replaced all occurences of Double.MAX_VALUE, Double.MIN_VALUE, Float.MAX_VALUE, and Float.MIN_VALUE with AllTypes.DOUBLE_LARGEST, AllTypes.DOUBLE_SMALLEST, AllTypes.FLOAT_LARGEST, AllTypes.FLOAT_SMALLEST, respectively.

        Show
        Michelle Caisse added a comment - Replaced all occurences of Double.MAX_VALUE, Double.MIN_VALUE, Float.MAX_VALUE, and Float.MIN_VALUE with AllTypes.DOUBLE_LARGEST, AllTypes.DOUBLE_SMALLEST, AllTypes.FLOAT_LARGEST, AllTypes.FLOAT_SMALLEST, respectively.
        Hide
        Michelle Caisse added a comment -

        ANDY: The test is trying to use a Collection of doubles, and insert Java values of Double.MAX_SIZE into a Derby DOUBLE column, which will always be touch and go with rounding issues etc (and whether the RDBMS in question complains when the value is just outside its range, which Derby does, but MySQL doesn't).

        I look at the TestFieldsOfDouble and see that the largest value used in that test for a Double is AllTypes.DOUBLE_LARGEST = 9999999999999.9 Should we not be using the same values (whatever they are) in the collection/list/set tests, so we have consistency ?

        CRAIG: Yes, this was an oversight. We intended that DOUBLE_LARGEST would be used instead of the Double.MAX_SIZE.

        Show
        Michelle Caisse added a comment - ANDY: The test is trying to use a Collection of doubles, and insert Java values of Double.MAX_SIZE into a Derby DOUBLE column, which will always be touch and go with rounding issues etc (and whether the RDBMS in question complains when the value is just outside its range, which Derby does, but MySQL doesn't). I look at the TestFieldsOfDouble and see that the largest value used in that test for a Double is AllTypes.DOUBLE_LARGEST = 9999999999999.9 Should we not be using the same values (whatever they are) in the collection/list/set tests, so we have consistency ? CRAIG: Yes, this was an oversight. We intended that DOUBLE_LARGEST would be used instead of the Double.MAX_SIZE.
        Michelle Caisse made changes -
        Field Original Value New Value
        Assignee Michelle Caisse [ mcaisse ]
        Michelle Caisse created issue -

          People

          • Assignee:
            Michelle Caisse
            Reporter:
            Michelle Caisse
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development