<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
Fri May 8 14:01:08 UTC 2015


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