E
eneR
Gast
Hallo,
ich hab ein kleines Problem: Bei diesem Programm tritt regelmäßig dieser Error auf:
Hier der "produzierende" Code:
[JAVA=117]class Buffer extends Thread implements JNotifyListener {
private final Queue<FileEvent> _eventBuffer;
Buffer() {
_eventBuffer = new PriorityQueue<FileEvent>();
}
@Override
public synchronized void fileRenamed(int wd, String rootPath, String oldName, String newName) {
_eventBuffer.add(new FileRenamedEvent(wd, rootPath, oldName, newName));
}
@Override
public synchronized void fileModified(int wd, String rootPath, String name) {
_eventBuffer.add(new FileModifiedEvent(wd, rootPath, name));
}
@Override
public synchronized void fileDeleted(int wd, String rootPath, String name) {
_eventBuffer.add(new FileDeletedEvent(wd, rootPath, name));
}
@Override
public synchronized void fileCreated(int wd, String rootPath, String name) {
_eventBuffer.add(new FileCreatedEvent(wd, rootPath, name));
}
public FileEvent poll() {
return _eventBuffer.poll();
}
public FileEvent poll(long time) {
FileEvent e = null;
long waited = 0L;
while (e == null && waited < time) {
e = _eventBuffer.poll();
try {
sleep(1);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
waited++;
}
return e;
}
public FileEvent take() {
FileEvent e = null;
while (e == null) {
e = _eventBuffer.poll();
try {
sleep(1);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return e;
}[/code]
Wäre super, wenn jemand eine tolle Idee dazu hätte
P.S. Der Fehler tritt nur auf, wenn ich in einem Sub-Verzeichnis des "JNotifyListener"-belegten Verzeichnisses eine Änderung vornehme...
ich hab ein kleines Problem: Bei diesem Programm tritt regelmäßig dieser Error auf:
und ich habe keine Idee, wie der zu stande kommt.Console hat gesagt.:Exception in thread "Thread-0" java.lang.NullPointerException
at java.util.PriorityQueue.siftDownComparable(PriorityQueue.java:679)
at java.util.PriorityQueue.siftDown(PriorityQueue.java:669)
at java.util.PriorityQueue.poll(PriorityQueue.java:578)
at de.aypac.proj.filestory_synchronizer.services.arbeitsordnerBeobachter.Buffer.poll(ArbeitsordnerBeobachter.java:153)
at de.aypac.proj.filestory_synchronizer.services.arbeitsordnerBeobachter.ArbeitsordnerBeobachter.run(ArbeitsordnerBeobachter.java:48)
Hier der "produzierende" Code:
[JAVA=117]class Buffer extends Thread implements JNotifyListener {
private final Queue<FileEvent> _eventBuffer;
Buffer() {
_eventBuffer = new PriorityQueue<FileEvent>();
}
@Override
public synchronized void fileRenamed(int wd, String rootPath, String oldName, String newName) {
_eventBuffer.add(new FileRenamedEvent(wd, rootPath, oldName, newName));
}
@Override
public synchronized void fileModified(int wd, String rootPath, String name) {
_eventBuffer.add(new FileModifiedEvent(wd, rootPath, name));
}
@Override
public synchronized void fileDeleted(int wd, String rootPath, String name) {
_eventBuffer.add(new FileDeletedEvent(wd, rootPath, name));
}
@Override
public synchronized void fileCreated(int wd, String rootPath, String name) {
_eventBuffer.add(new FileCreatedEvent(wd, rootPath, name));
}
public FileEvent poll() {
return _eventBuffer.poll();
}
public FileEvent poll(long time) {
FileEvent e = null;
long waited = 0L;
while (e == null && waited < time) {
e = _eventBuffer.poll();
try {
sleep(1);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
waited++;
}
return e;
}
public FileEvent take() {
FileEvent e = null;
while (e == null) {
e = _eventBuffer.poll();
try {
sleep(1);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return e;
}[/code]
Wäre super, wenn jemand eine tolle Idee dazu hätte
P.S. Der Fehler tritt nur auf, wenn ich in einem Sub-Verzeichnis des "JNotifyListener"-belegten Verzeichnisses eine Änderung vornehme...