Pivot
  1. Pivot
  2. PIVOT-825

Specifying a full path in a Save As FileBrowserSheet gives IllegalArgumentException when you try to close

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.0.1
    • Component/s: wtk-terra
    • Labels:
    • Environment:
      Windows XP SP3, JDK 1.6.0_16

      Description

      This is the (partial) stack trace:
      java.lang.IllegalArgumentException
      at org.apache.pivot.wtk.FileBrowserSheet.setSelectedFiles(FileBrowserSheet.java:217)
      at org.apache.pivot.wtk.skin.terra.TerraFileBrowserSheetSkin.previewSheetClose(TerraFileBrowserSheetSkin.java:289)
      at org.apache.pivot.wtk.Sheet$SheetStateListenerList.previewSheetClose(Sheet.java:34)
      at org.apache.pivot.wtk.Sheet.close(Sheet.java:118)
      at org.apache.pivot.wtk.skin.terra.TerraSheetSkin$4.transitionCompleted(TerraSheetSkin.java:669)

      1. overwrite.patch
        4 kB
        Roger Whitcomb
      2. path.patch
        1 kB
        Roger Whitcomb

        Activity

        Hide
        Roger Whitcomb added a comment -

        Change title because the bug only affects Save As dialogs.

        The code in "previewSheetClose" is assuming the text in the file name box is a simple file name and doesn't contain a path. It should check if there is a path there and set the root directory to the path before calling the "setSelectedFiles" (which gives an error if the path isn't the same as the root directory).

        Show
        Roger Whitcomb added a comment - Change title because the bug only affects Save As dialogs. The code in "previewSheetClose" is assuming the text in the file name box is a simple file name and doesn't contain a path. It should check if there is a path there and set the root directory to the path before calling the "setSelectedFiles" (which gives an error if the path isn't the same as the root directory).
        Hide
        Roger Whitcomb added a comment -

        The "path.patch" implements what I think should be the functionality:

        • Checks to see if the entered name has a path component
        • If so, and it is an absolute path (or starts with / or \ (depending on platform), then set the root directory to it
        • If the parent path is not absolute, then make a relative path and set the root directory to that
        • If the input text has no path component, the make the selected file using the current root directory set in the dialog
        • Finally call "setSelectedFiles" with the root set appropriately.
        Show
        Roger Whitcomb added a comment - The "path.patch" implements what I think should be the functionality: Checks to see if the entered name has a path component If so, and it is an absolute path (or starts with / or \ (depending on platform), then set the root directory to it If the parent path is not absolute, then make a relative path and set the root directory to that If the input text has no path component, the make the selected file using the current root directory set in the dialog Finally call "setSelectedFiles" with the root set appropriately.
        Hide
        Sandro Martini added a comment -

        Hi Roger, patch tested the Save feature with some of our Test Applications (TextPaneDemo, FileBrowsing, and even FileBrowserWithCharsetTest but there is not possible to save), and all works.

        Go with the commit, I'll update now release notes for 2.0.1 to include it.

        Show
        Sandro Martini added a comment - Hi Roger, patch tested the Save feature with some of our Test Applications (TextPaneDemo, FileBrowsing, and even FileBrowserWithCharsetTest but there is not possible to save), and all works. Go with the commit, I'll update now release notes for 2.0.1 to include it.
        Hide
        Roger Whitcomb added a comment -

        Updated patch that also fixes problems with relative paths and an absolute path (starting with ) that File doesn't recognize as absolute on Windows.

        Show
        Roger Whitcomb added a comment - Updated patch that also fixes problems with relative paths and an absolute path (starting with ) that File doesn't recognize as absolute on Windows.
        Hide
        Roger Whitcomb added a comment -

        Sending wtk-terra\src\org\apache\pivot\wtk\skin\terra\TerraFileBrowserSheetSkin.java
        Transmitting file data .
        Committed revision 1208038.

        Show
        Roger Whitcomb added a comment - Sending wtk-terra\src\org\apache\pivot\wtk\skin\terra\TerraFileBrowserSheetSkin.java Transmitting file data . Committed revision 1208038.
        Hide
        Roger Whitcomb added a comment -

        There is one more issue here: the "previewSheetClose" method is called before the selected file is set so a good decision on whether to close or not (for instance if a "confirm overwrite" prompt is used in the listener) cannot be made because the wrong file is set as the selected one. I have a patch for this that works in all my test cases. I will post and then submit if there are no objections in a day or two.

        Show
        Roger Whitcomb added a comment - There is one more issue here: the "previewSheetClose" method is called before the selected file is set so a good decision on whether to close or not (for instance if a "confirm overwrite" prompt is used in the listener) cannot be made because the wrong file is set as the selected one. I have a patch for this that works in all my test cases. I will post and then submit if there are no objections in a day or two.
        Hide
        Roger Whitcomb added a comment -

        File "overwrite.patch" is the fix needed to properly call the "previewSheetClose" method after the selected file is set.

        Show
        Roger Whitcomb added a comment - File "overwrite.patch" is the fix needed to properly call the "previewSheetClose" method after the selected file is set.
        Hide
        Roger Whitcomb added a comment -

        Sending wtk-terra\src\org\apache\pivot\wtk\skin\terra\TerraFileBrowserSheetSkin.java
        Transmitting file data .
        Committed revision 1210331.

        Show
        Roger Whitcomb added a comment - Sending wtk-terra\src\org\apache\pivot\wtk\skin\terra\TerraFileBrowserSheetSkin.java Transmitting file data . Committed revision 1210331.

          People

          • Assignee:
            Roger Whitcomb
            Reporter:
            Roger Whitcomb
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 4h
              4h
              Remaining:
              Remaining Estimate - 4h
              4h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development