--- misc/lucene-2.9.4/src/java/org/apache/lucene/store/FSDirectory.java	2010-11-27 19:21:44.000000000 -0500
+++ misc/build/lucene-2.9.4/src/java/org/apache/lucene/store/FSDirectory.java	2012-12-08 19:23:23.000000000 -0500
@@ -266,7 +266,14 @@
   public static FSDirectory getDirectory(File file, LockFactory lockFactory)
     throws IOException
   {
-    file = getCanonicalPath(file);
+    String path = file.getPath();
+    //File.getCanonicalPath fails on Windows with long path names
+    //Long path names created by osl_getSystemPathFromFileURL are already
+    //unique because its implementation replaces the occurrences of .. and .
+    //That is using the com.sun.star.help.HelpIndexer service from c++ is
+    //relatively safe.
+    if (!path.startsWith("\\\\?\\"))
+	file = getCanonicalPath(file);
 
     FSDirectory dir;
     synchronized (DIRECTORIES) {
@@ -721,7 +728,15 @@
     ensureOpen();
     String dirName;                               // name to be hashed
     try {
-      dirName = directory.getCanonicalPath();
+      //File.getCanonicalPath fails on Windows with long path names
+      //Long path names created by osl_getSystemPathFromFileURL are already
+      //unique because its implementation replaces the occurrences of .. and .
+      //That is using the com.sun.star.help.HelpIndexer service from c++ is
+      //relatively safe.
+      if (!directory.getPath().startsWith("\\\\?\\"))
+	  dirName = directory.getCanonicalPath();
+      else
+	  dirName = directory.getPath();
     } catch (IOException e) {
       throw new RuntimeException(e.toString(), e);
     }
