This commit is contained in:
didfet
2015-06-05 18:45:25 +02:00
parent 56b932ee2e
commit a9b7c96178
3 changed files with 20 additions and 13 deletions

View File

@@ -63,20 +63,25 @@ public class FileReader extends Reader {
} }
private int readFile(FileState state, int spaceLeftInSpool) { private int readFile(FileState state, int spaceLeftInSpool) {
int eventListSizeBefore = eventList.size();
File file = state.getFile(); File file = state.getFile();
long pointer = state.getPointer(); long pointer = state.getPointer();
if(logger.isTraceEnabled()) { if(state.isDeleted() || state.getRandomAccessFile() == null) { // Don't try to read this file
logger.trace("File : " + file + " pointer : " + pointer); pointerMap.put(file, pointer);
logger.trace("Space left in spool : " + spaceLeftInSpool); return 0;
}
if(isCompressedFile(state)) {
pointer = file.length();
} else { } else {
pointer = readLines(state, spaceLeftInSpool); int eventListSizeBefore = eventList.size();
if(logger.isTraceEnabled()) {
logger.trace("File : " + file + " pointer : " + pointer);
logger.trace("Space left in spool : " + spaceLeftInSpool);
}
if(isCompressedFile(state)) {
pointer = file.length();
} else {
pointer = readLines(state, spaceLeftInSpool);
}
pointerMap.put(file, pointer);
return eventList.size() - eventListSizeBefore; // Return number of events read
} }
pointerMap.put(file, pointer);
return eventList.size() - eventListSizeBefore; // Return number of events read
} }
private boolean isCompressedFile(FileState state) { private boolean isCompressedFile(FileState state) {

View File

@@ -64,7 +64,7 @@ public class FileState {
private void setFileFromDirectoryAndName() throws FileNotFoundException { private void setFileFromDirectoryAndName() throws FileNotFoundException {
file = new File(directory + File.separator + fileName); file = new File(directory + File.separator + fileName);
if(file.exists()) { if(file.exists()) {
randomAccessFile = new RandomAccessFile(file, "r"); randomAccessFile = null;
lastModified = file.lastModified(); lastModified = file.lastModified();
size = file.length(); size = file.length();
} else { } else {

View File

@@ -314,6 +314,9 @@ public class FileWatcher {
List<File> markedList = null; List<File> markedList = null;
for(File file : oldWatchMap.keySet()) { for(File file : oldWatchMap.keySet()) {
FileState state = oldWatchMap.get(file); FileState state = oldWatchMap.get(file);
if(state.getRandomAccessFile() == null) {
state.setDeleted();
}
if(state.isDeleted()) { if(state.isDeleted()) {
if(! file.exists()) { if(! file.exists()) {
if(markedList == null) { if(markedList == null) {
@@ -328,8 +331,7 @@ public class FileWatcher {
} }
if(markedList != null) { if(markedList != null) {
for(File file : markedList) { for(File file : markedList) {
FileState state = oldWatchMap.remove(file); oldWatchMap.remove(file);
logger.trace("\tFile : " + file + " removed"); logger.trace("\tFile : " + file + " removed");
} }
} }