Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-329

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

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: 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.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: