Harmony
  1. Harmony
  2. HARMONY-329

[classlib][luni] Endless loop when using Double.parseDouble(String) with certain types of value

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.0M11
    • Component/s: Classlib
    • Labels:
      None
    • Estimated Complexity:
      Advanced

      Description

      Calling Double.parseDouble(..) with certain Strings (e.g. Double.parseDouble("-1.233999999999999965116738099630936817275852021384209929081813042837802886790127428328465579708849276001782791006814286802871737087810957327493372866733334925806221045495205250590286471187577636646208155890426896101636282423463443661040209738873506655844025580428394216030152374941053494694642722606658935546875E-112") causes an endless loop.

      Although this is not necessarily a case you would see in regular programming it happens when you do something like new BigDecimal(-1.234E-112).doubleValue(), which was the cause of the endless loop mentioned in HARMONY-319.

      The loop occurs in the native method "doubleAlgorithm (JNIEnv * env, U_64 * f, IDATA length, jint e, jdouble z)" in native-src/shared/math/dblparse.c.

        Activity

          People

          • Assignee:
            Tim Ellison
            Reporter:
            Sian January
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development