PatternSyntaxException String split Java

116 Views Asked by At

I have this code....

private static final String FS = System.getProperty("file.separator");

private void addPathToTreeFiles(String canonicalFolder, String canonicalFilename) throws Exception {
  String filename = null;
  String canonicalPaths = null;
  try {
    //...
    int lastFS = canonicalFilename.lastIndexOf(FS);
    filename = canonicalFilename.substring(lastFS + 1);
    canonicalPaths = canonicalFilename.substring(0, lastFS + 1).substring(canonicalFolder.length());
    if (canonicalPaths.startsWith(FS)) {
        canonicalPaths = canonicalPaths.substring(FS.length());
    }
    String[] recursivePaths = canonicalPaths.split(FS); //EXCEPTION HERE!
    //...
  } catch (Exception e) {
    System.out.println ("addPathToTreeFiles.canonicalFolder:" + canonicalFolder);
    System.out.println ("addPathToTreeFiles.canonicalFilename:" + canonicalFilename);
    System.out.println ("addPathToTreeFiles.filename:" + filename);
    System.out.println ("addPathToTreeFiles.canonicalPaths:" + canonicalPaths);
    throw e;
  }
}

The Exception raises in the Line

String[] recursivePaths = canonicalPaths.split(FS);

The data submit was:

addPathToTreeFiles.canonicalFolder:C:\Users\joseluisbz
addPathToTreeFiles.canonicalFilename:C:\Users\joseluisbz\AppData\Local\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\LocalState\DeviceSearchCache\AppCache131927693329784900.txt
addPathToTreeFiles.filename:AppCache131927693329784900.txt
addPathToTreeFiles.canonicalPaths:AppData\Local\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\LocalState\DeviceSearchCache\

Jan 23, 2019 9:41:12 PM org.joseluisbz.filefinder.OneSearch$SwingWorkerSearcher process
SEVERE: null
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
 ^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at org.joseluisbz.filefinder.OneSearch.addPathToTreeFiles(OneSearch.java:692)

With this value:

AppData\Local\Packages\Microsoft.Windows.Cortana_cw5n1h2txyewy\LocalState\DeviceSearchCache\

Why is raising the Exception? How avoid it?

0

There are 0 best solutions below