Hi Robin,

in your fix there will be extra separator at the end of the text,
you need to put "sb.append(separator);" before "sb.append(strings[i]);"
in for cycle.

Thanks,
Mikhail.

On 08.07.2016 23:06, Robin Stevens wrote:
Please review the fix for JDK-8160941 .

Webrev: http://cr.openjdk.java.net/~rstevens/8160941/webrev/ <http://cr.openjdk.java.net/%7Erstevens/8160941/webrev/>

The problem: when copy-pasting (or drag-and-dropping) multiple files, the data in the transferable for the flavor "text/uri-list" concats the first two paths.

If you for example copy:
/Users/robin/Desktop/file1.txt
/Users/robin/Desktop/file2.txt
/Users/robin/Desktop/file3.txt

the data in the transferable is

/Users/robin/Desktop/file1.txt/Users/robin/Desktop/file2.txt
/Users/robin/Desktop/file3.txt

while the expected data is

/Users/robin/Desktop/file1.txt
/Users/robin/Desktop/file2.txt
/Users/robin/Desktop/file3.txt


This is also what you can observe when running the manual testcase.
As there was already a manual testcase available (which fails on JDK8), the patch does not include one.

Thanks,

Robin

On Fri, Jul 8, 2016 at 9:53 AM, Alexandr Scherbatiy <alexandr.scherba...@oracle.com <mailto:alexandr.scherba...@oracle.com>> wrote:

    On 7/7/2016 10:07 PM, Robin Stevens wrote:
    Thanks Alexander for creating the issue in the bug tracker and
    hosting the webrev.
    Do I need to send a new review request to the list with the
    official bug number in the subject, or is the current email
    thread sufficient ?

      Yes. You can just reply on this email, correct the bug id and
    provide the webrev link.

      Thanks,
      Alexandr.


    Robin

    On Thu, Jul 7, 2016 at 9:36 AM, Alexandr Scherbatiy
    <alexandr.scherba...@oracle.com
    <mailto:alexandr.scherba...@oracle.com>> wrote:


          The issue is recorded under id JDK-8160941 "text/uri-list"
        dataflavor concats the first two strings
        https://bugs.openjdk.java.net/browse/JDK-8160941

          The webrev is uploaded to
        http://cr.openjdk.java.net/~alexsch/robin.stevens/8160941/webrev.00
        <http://cr.openjdk.java.net/%7Ealexsch/robin.stevens/8160941/webrev.00>

          Thanks,
          Alexandr.

        On 7/7/2016 10:10 AM, Robin Stevens wrote:
        Hello,

        the backport of the fix for
        https://bugs.openjdk.java.net/browse/JDK-8136763 looks
        incorrect.
        The corresponding manual test case fails on jdk8.

        The problem: when copy-pasting (or drag-and-dropping)
        multiple files, the data in the transferable for the
        flavor "text/uri-list" concats the first two paths.

        If you for example copy:
        /Users/robin/Desktop/file1.txt
        /Users/robin/Desktop/file2.txt
        /Users/robin/Desktop/file3.txt

        the data in the transferable is

        /Users/robin/Desktop/file1.txt/Users/robin/Desktop/file2.txt
        /Users/robin/Desktop/file3.txt

        while the expected data is

        /Users/robin/Desktop/file1.txt
        /Users/robin/Desktop/file2.txt
        /Users/robin/Desktop/file3.txt


        This is also what you can observe when running the manual
        testcase.

        I have logged this in the bug database as issue JI-9041413.

        Attached you find a webrev with the proposed patch.
        The manual testcase succeeds with this patch, and fails without.
        At the bottom of this email, you also find the output of hg
        diff.

        The patch does not include a testcase, as there is already
        one available.

        Regards,

        Robin


        hg diff output:

        diff -r 0844fa517c35
        src/macosx/classes/sun/lwawt/macosx/CDataTransferer.java
        ---
        a/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.javaTue Jul
        05 11:03:13 2016 -0700
        +++
        b/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.javaThu Jul
        07 08:48:37 2016 +0200
        @@ -148,6 +148,7 @@
                     StringBuilder sb = new StringBuilder();
         if(strings.length > 0) {
         sb.append(strings[0]);
        +  sb.append(separator);
                         for(int i = 1; i < strings.length; i++) {
         sb.append(strings[i]);
         sb.append(separator);





Reply via email to