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

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri May 8 12:45:04 UTC 2015


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?
> 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
>>>
>>
>>
>


-- 
Best regards, Sergey.



More information about the awt-dev mailing list