private boolean nodeExists(StringTokenizer path) throws BackingStoreException {
  String token=path.nextToken();
  if (token.equals("/"))   throw new IllegalArgumentException("Consecutive slashes in path");
synchronized (lock) {
    AbstractPreferences child=kidCache.get(token);
    if (child == null)     child=getChild(token);
    if (child == null)     return false;
    if (!path.hasMoreTokens())     return true;
    path.nextToken();
    if (!path.hasMoreTokens())     throw new IllegalArgumentException("Path ends with slash");
    return child.nodeExists(path);
  }
}

private boolean nodeExists ( StringTokenizer path ) throws BackingStoreException { String token = path . nextToken ( ) ; if ( token . equals ( "/" ) ) throw new IllegalArgumentException ( "Consecutive slashes in path" ) ; synchronized ( lock ) { AbstractPreferences child = kidCache . get ( token ) ; if ( child == null ) child = getChild ( token ) ; if ( child == null ) return false ; if ( ! path . hasMoreTokens ( ) ) return true ; path . nextToken ( ) ; if ( ! path . hasMoreTokens ( ) ) throw new IllegalArgumentException ( "Path ends with slash" ) ; return child . nodeExists ( path ) ; } }
tokenizer contains < name > { ' / ' < name > }
