Community
Participate
Working Groups
It takes a very long time (possibly infinite) to refresh a project after adding certain types of symbolic links using the 'mklink' command on Windows. It appears that directory-type symbolic links 'mklink /d' with a target of "..\" or ".\" specifically triggers the problem. After performing some debugging the problem appears to be a regex that does not take into account the windows path segment separator ('\') to avoid recursive symbolic links. This regex is located in org.eclipse.core.internal.localstore.UnifiedTreee.PatternHolder and has the pattern "\\.[./]*" when it should probably be something like "\\.[./\\]*"
Thanks for the report Chris. Since backslash is a valid path segment on platforms other than windows, I expect we would need a different pattern for the Windows vs. non-Windows case.
Created attachment 205618 [details] Patch v1 I have checked Windows 7 and Linux. On Windows, only symlinks created with a backslash are correct whereas on Linux only with a slash. We should not use one pattern for all platforms because it is possible to create an invalid symlink using wrong separator. For Windows the correct pattern is "\\.[.\\\\]*". The patch contains fix and test that would fail on Windows without the new pattern.
John, can you review this patch for me?
The patch looks good. Unfortunately we can't determine OS from the file, but we have to use the local OS. But so far we have to live with that like in bug 215214.
Thanks! Fixed in master.