diff --git a/pom.xml b/pom.xml index c262a01..fe640e5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ it.cavallium filequeue file queue project - 3.0.0 + 3.0.2 jar Light weight, high performance, simple, reliable and persistent queue 4.0.0 diff --git a/src/main/java/it/cavallium/filequeue/DiskQueueToConsumer.java b/src/main/java/it/cavallium/filequeue/DiskQueueToConsumer.java index fdd61bd..917516e 100644 --- a/src/main/java/it/cavallium/filequeue/DiskQueueToConsumer.java +++ b/src/main/java/it/cavallium/filequeue/DiskQueueToConsumer.java @@ -2,6 +2,7 @@ package it.cavallium.filequeue; import com.squareup.tape2.QueueFile; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; public final class DiskQueueToConsumer implements IQueueToConsumer { @@ -10,10 +11,24 @@ public final class DiskQueueToConsumer implements IQueueToConsumer { private final QueueFile queueFile; public DiskQueueToConsumer(Path file, + boolean clear, Serializer serializer, Deserializer deserializer, QueueConsumer consumer) throws IOException { - QueueFile queueFile = new QueueFile.Builder(file.toFile()).build(); + QueueFile queueFile; + try { + queueFile = new QueueFile.Builder(file.toFile()).zero(false).build(); + if (clear) { + queueFile.clear(); + } + } catch (Throwable ex) { + try { + Files.deleteIfExists(file); + } catch (Throwable ex2) { + + } + queueFile = new QueueFile.Builder(file.toFile()).zero(false).build(); + } this.queueFile = queueFile; this.queue = new QueueToConsumer<>(new SimpleQueueFile<>(queueFile, serializer, deserializer), consumer); }