Hi Dawid,

I will update bug.

Rgds,Rory

On 15/03/2016 12:53, Dawid Weiss wrote:
This must be more complicated than I thought because the same code
passes with flying colors on another (fairly fresh install) of Windows
10... I don't know what the difference is, to be honest (I have
Windows 10 Pro N). I'll try to dig deeper, time permitting, but
perhaps a comment on the eventual Jira issue would be sensible (can't
do it myself, no Jira access).

Dawid

On Tue, Mar 15, 2016 at 1:01 PM, Dawid Weiss <dawid.we...@gmail.com> wrote:
I filed an issue (Review ID: JI-9032181). In any case, I checked with
Java 7, 8 and the ea:

Java(TM) SE Runtime Environment (build
9-ea+109-2016-03-09-181019.javare.4620.nc)

The issue only affects Windows 10 (tested on 64-bit only), Windows 7
behaves fine. The following sequence is enough to get the stack trace:

mkdir foo
mklink /J bar foo
java -cp . Test bar

The Test.java code is:
import java.io.*;
import java.nio.file.*;

public class Test {
   public static void main(String[] args) throws Exception {
     Path p = Paths.get(args[0]);
     System.out.println("p.toRealPath(): " + p.toRealPath());
   }
}

and the stack trace:

Exception in thread "main" java.lang.InternalError: Should not get here
         at sun.nio.fs.WindowsNativeDispatcher.GetFinalPathNameByHandle(Native
Method)
         at 
sun.nio.fs.WindowsLinkSupport.getFinalPath(WindowsLinkSupport.java:77)
         at 
sun.nio.fs.WindowsLinkSupport.getRealPath(WindowsLinkSupport.java:242)
         at sun.nio.fs.WindowsPath.toRealPath(WindowsPath.java:840)
         at sun.nio.fs.WindowsPath.toRealPath(WindowsPath.java:44)
         at Test.main(Test.java:10)

Dawid

On Tue, Mar 15, 2016 at 12:28 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
On 15/03/2016 11:19, Dawid Weiss wrote:
I couldn't find an appropriate bug in bugzilla, but this fails
reliably for me with Java 8 and 9 on Windows 10, 64-bit:

mkdir foo
mklink /J bar foo
cd bar
java -cp Test .

where Test.java is as simple as:

import java.io.*;
import java.nio.file.*;

public class Test {
    public static void main(String[] args) throws Exception {
      System.out.println("p.toRealPath(): " +
Paths.get(args[0]).toRealPath());
    }
}

The thrown error shows:

Exception in thread "main" java.lang.InternalError: Should not get here
          at
sun.nio.fs.WindowsNativeDispatcher.GetFinalPathNameByHandle(Native
Method)
There are a number of win32 functions that this code uses GetProcAddress to
get their address in kernel32. This dates back to when we had to support
Windows XP. This should be cleaned up now. Doesn't explain why you are
seeing though, can you submit a bug?

-Alan

--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland

Reply via email to