Harmony
  1. Harmony
  2. HARMONY-248

[classlib][luni] Using java.io.File.deleteOnExit() and System.runFinalizersOnExit(true) in the same application causes crash on exit.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Classlib
    • Labels:
      None
    • Environment:
      WinXP
    • Estimated Complexity:
      Moderate

      Description

      The dreaded sequel to HARMONY-222. While the one line fix for that prevents the test suite bringing about a rather undignified exit to the VM it doesn't really address the bigger picture of how to cope with user code that marks files as delete-on-exit and also makes use of the System.runFinalizersOnExit() method. Of course the latter method is deprecated but it won't stop some people from adopting it in their code.

      I will attach a test case for dropping into tests/api/java/io/FileTest.java together with some minor tweaks to the build.xml and hyproperties.xml files in modules/luni/make/common that will enable this new test to run. A new support class will also be needed to help run part of the test in a separate VM.

      My suggested fix for this is an update to one class in icu4jni-3.4.jar. I think that we are OK customising that jar for Harmony.

      Best regards,
      George

      1. Harmony-248.txt
        4 kB
        George Harley
      2. icu4jni-3.4.jar
        228 kB
        George Harley
      3. Support_DeleteOnExitWithRunFinalizersOnExitTest.java
        0.9 kB
        George Harley

        Activity

        Hide
        Tim Ellison added a comment -

        This old issue cannot be reproduced on M8...

        public static void main(String[] args) throws IOException

        { File f = File.createTempFile("foo", "bar"); f.deleteOnExit(); System.runFinalizersOnExit(true); System.out.println("works for me"); }
        Show
        Tim Ellison added a comment - This old issue cannot be reproduced on M8... public static void main(String[] args) throws IOException { File f = File.createTempFile("foo", "bar"); f.deleteOnExit(); System.runFinalizersOnExit(true); System.out.println("works for me"); }
        Hide
        Mikhail Markov added a comment -

        I could reproduce the described issue on IBM VME only. On DRLVM it passes.

        Show
        Mikhail Markov added a comment - I could reproduce the described issue on IBM VME only. On DRLVM it passes.
        Hide
        George Harley added a comment -

        Patched version of icu4jni-3.4.jar. Replace the one in jre/lib/boot with this and the VM crash at shutdown time should (hopefully) be gone.
        I guess that we should be maintaining patch source as well somewhere in the repository.

        Best regards,
        George

        Show
        George Harley added a comment - Patched version of icu4jni-3.4.jar. Replace the one in jre/lib/boot with this and the VM crash at shutdown time should (hopefully) be gone. I guess that we should be maintaining patch source as well somewhere in the repository. Best regards, George
        Hide
        George Harley added a comment -

        New class for adding to the support/src/test/java/tests/support directory. Snappy name for a class isn't it ?

        Best regards,
        George

        Show
        George Harley added a comment - New class for adding to the support/src/test/java/tests/support directory. Snappy name for a class isn't it ? Best regards, George
        Hide
        George Harley added a comment -

        Test case and changes to the luni Ant scripts to help run it. The FileTest can be removed from the list of excluded test cases.

        Best regards,
        George

        Show
        George Harley added a comment - Test case and changes to the luni Ant scripts to help run it. The FileTest can be removed from the list of excluded test cases. Best regards, George

          People

          • Assignee:
            Tim Ellison
            Reporter:
            George Harley
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development