Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8013553

[macosx] java.awt.FileDialog removes file extensions

XMLWordPrintable

    • b112
    • os_x

      FULL PRODUCT VERSION :
      java version " 1.7.0_09 "
      Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
      Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Darwin Mac-mini-de-Oscar.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64

      A DESCRIPTION OF THE PROBLEM :
      When you open a save FileDialog and you want save a pdf file, FileDialog removes the '.pdf' extension. So, the user accepts a file without extension.

      If your application is sandboxed, and if you add the '.pdf' extension later, it produces a sandbox security violation. So the application cat't be sandboxed.

      REGRESSION. Last worked in version 6u31

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Execute the test case.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      test.pdf

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      If your application is sandboxed and you add the " .pdf " extension before save the file, you get:

      Cont4-FactL(931) deny file-read-data /Users/oscar/Documents/test.pdf
      Process: Cont4-FactL [931]
      Path: /Applications/Cont4-FactL.app/Contents/MacOS/Cont4-FactL
      Load Address: 0x104027000
      Identifier: Cont4-FactL
      Version: ??? (???)
      Code Type: X86-64 (Native)
      Parent Process: launchd [218]

      Date/Time: 2012-11-12 11:56:58.928 +0100
      OS Version: Mac OS X 10.7.5 (11G63)
      Report Version: 7

      Backtrace:
      0 libsystem_kernel.dylib 0x00007fff864afad2 __open + 10
      1 libjvm.dylib 0x0000000104f1b2c0 os::open(char const*, int, int) + 74
      2 libjvm.dylib 0x0000000104e294df JVM_Open + 51
      3 libjava.dylib 0x00000001056072f2 fileOpen + 118
      4 0x000000010564af90
      5 0x000000010563f158
      6 0x000000010563f158
      7 0x000000010563f158
      8 0x000000010563f158
      9 0x000000010563f158
      10 0x00000001056394f7
      11 libjvm.dylib 0x0000000104df5863 JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*) + 557
      12 libjvm.dylib 0x0000000104df5d40 JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*) + 256
      13 libjvm.dylib 0x0000000104df5e7a JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*) + 74
      14 libjvm.dylib 0x0000000104e28ce4 _ZL12thread_entryP10JavaThreadP6Thread + 169
      15 libjvm.dylib 0x0000000104fe0754 JavaThread::thread_main_inner() + 134
      16 libjvm.dylib 0x0000000104fe1bf3 JavaThread::run() + 369
      17 libjvm.dylib 0x0000000104f1e7ad _ZL10java_startP6Thread + 173
      18 libsystem_c.dylib 0x00007fff862148bf _pthread_start + 335
      19 libsystem_c.dylib 0x00007fff86217b75 thread_start + 13

      Binary Images:
             0x104b6f000 - 0x1051e3fef +libjvm.dylib (??? - ???) <AFAD88BD-D9A3-3176-ACE3-E32038500A27> /Applications/Cont4-FactL.app/Contents/PlugIns/jre1.7.0.jre/Contents/Home/lib/server/libjvm.dylib
             0x105600000 - 0x105621fe7 +libjava.dylib (??? - ???) <2EAF3A1B-7AA9-3B66-8B2E-8179E3045036> /Applications/Cont4-FactL.app/Contents/PlugIns/jre1.7.0.jre/Contents/Home/lib/libjava.dylib
          0x7fff861c6000 - 0x7fff862a3fef libsystem_c.dylib (763.13.0 - compatibility 1.0.0) <41B43515-2806-3FBC-ACF1-A16F35B7E290> /usr/lib/system/libsystem_c.dylib
          0x7fff86499000 - 0x7fff864b9fff libsystem_kernel.dylib (1699.32.7 - compatibility 1.0.0) <66C9F9BD-C7B3-30D4-B1A0-03C8A6392351> /usr/lib/system/libsystem_kernel.dylib


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      public class Test {
          public static void main(String args[]) {
              FileDialog dlg = new FileDialog(new Frame(), " Save " );
              dlg.setMode(FileDialog.SAVE);
              dlg.setFile( " test.pdf " );
              dlg.setVisible(true);
              System.out.println(dlg.getFile());
          }
      }
      ---------- END SOURCE ----------

            bagiras Oleg Pekhovskiy (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: