<AWT Dev> [9] Review request for 8003399: JFileChooser gives wrong path to selected file when saving to Libraries folder on Windows 7

Semyon Sadetsky semyon.sadetsky at oracle.com
Tue May 19 15:45:35 UTC 2015


Hi Anton,

here is an updated version: 
http://cr.openjdk.java.net/~ssadetsky/8003399/webrev.01/

--Semyon

On 5/8/2015 5:01 PM, Semyon Sadetsky wrote:
>
> On 5/8/2015 3:45 PM, Sergey Bylokhov wrote:
>> On 07.05.15 15:29, Semyon Sadetsky wrote:
>>> Hi Sergey,
>>>
>>> Yes, after the fix filedialog produces usual filesystem paths for 
>>> libraries which are readable for java.io.
>> Just to clarify: after the fix, both Open and Save dialog works?
> Open file in library was not a problem, because an exicting file has 
> real FS path already.
>
>>> But there are no possibility to reference files in libraries 
>>> directly using new File(<library link>).
>>>
>>> --Semyon
>>>
>>> On 5/7/2015 11:26 AM, Sergey Bylokhov wrote:
>>>> Hi, Semyon.
>>>> Can you please raise the supportness of this in the java.io on the 
>>>> core-libs alias.
>>>> Does the open filedialog will work after the fix?
>>>>
>>>> On 07.05.15 11:14, Semyon Sadetsky wrote:
>>>>> Hello,
>>>>>
>>>>> Please review fix for JDK9.
>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8003399/webrev.00/
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8003399
>>>>>
>>>>> ***THE ROOT CAUSE
>>>>> JDK uses legacy WINAPI special folders calls while MS introduced a 
>>>>> new interfaces IKnownFolder and IShellLibrary to manage special 
>>>>> folder locations and the new Libraries functionality in Windows 7 
>>>>> is not backward compatible with old special folders CSIDL.
>>>>>
>>>>> ***SOLUTION
>>>>> Since it is too expensive to migrate AWT shell to the new 
>>>>> interfaces and still they are not supported in java.io the 
>>>>> solution is to map virtual folder PIDL to the Known Folder GUID 
>>>>> and replace libraries links with the default library save 
>>>>> location. Thus the File save dialog will be able to work with any 
>>>>> Libraries registered in the system (Windows Libraries concept 
>>>>> assumes that Libraries can be added arbitrary).
>>>>> The resulting code should be compatible with older Windows 
>>>>> versions because the new COM interfaces are called only if they 
>>>>> are available and a Libraries link has been actually requested.
>>>>>
>>>>> ***TESTING
>>>>> A test scenario is added to check that all available Libraries 
>>>>> links are converted into filesystem paths.
>>>>>
>>>>> --Semyon
>>>>>
>>>>
>>>>
>>>
>>
>>
>



More information about the awt-dev mailing list