jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java
changeset 8158 77d9c0f1c19f
parent 5506 202f599c92aa
child 9035 1255eb81cc2f
--- a/jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java	Thu Jan 13 22:21:58 2011 -0800
+++ b/jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java	Fri Jan 28 09:28:43 2011 +0000
@@ -128,7 +128,6 @@
     private class SolarisWatchKey extends AbstractWatchKey
         implements DirectoryNode
     {
-        private final UnixPath dir;
         private final UnixFileKey fileKey;
 
         // pointer to native file_obj object
@@ -147,15 +146,14 @@
                         long object,
                         Set<? extends WatchEvent.Kind<?>> events)
         {
-            super(watcher);
-            this.dir = dir;
+            super(dir, watcher);
             this.fileKey = fileKey;
             this.object = object;
             this.events = events;
         }
 
-        UnixPath getFileRef() {
-            return dir;
+        UnixPath getDirectory() {
+            return (UnixPath)watchable();
         }
 
         UnixFileKey getFileKey() {
@@ -487,7 +485,7 @@
          */
         void processDirectoryEvents(SolarisWatchKey key, int mask) {
             if ((mask & (FILE_MODIFIED | FILE_ATTRIB)) != 0) {
-                registerChildren(key.getFileRef(), key,
+                registerChildren(key.getDirectory(), key,
                     key.events().contains(StandardWatchEventKind.ENTRY_CREATE));
             }
         }
@@ -524,7 +522,7 @@
                 boolean removed = true;
                 try {
                     UnixFileAttributes
-                        .get(key.getFileRef().resolve(node.name()), false);
+                        .get(key.getDirectory().resolve(node.name()), false);
                     removed = false;
                 } catch (UnixException x) { }
 
@@ -554,14 +552,14 @@
 
             DirectoryStream<Path> stream = null;
             try {
-                stream = dir.newDirectoryStream();
+                stream = Files.newDirectoryStream(dir);
             } catch (IOException x) {
                 // nothing we can do
                 return;
             }
             try {
                 for (Path entry: stream) {
-                    Path name = entry.getName();
+                    Path name = entry.getFileName();
 
                     // skip entry if already registered
                     if (parent.getChild(name) != null)
@@ -582,9 +580,9 @@
                     }
 
                     // create node
-                    EntryNode node = new EntryNode(object, entry.getName(), parent);
+                    EntryNode node = new EntryNode(object, entry.getFileName(), parent);
                     // tell the parent about it
-                    parent.addChild(entry.getName(), node);
+                    parent.addChild(entry.getFileName(), node);
                     object2Node.put(object, node);
                 }
             } catch (ConcurrentModificationException x) {