count number of failes that have failed to load

pull/53/head
Zlatin Balevsky 2020-10-29 10:53:51 +00:00
parent 35d0d72f1b
commit 264ba83936
No known key found for this signature in database
GPG Key ID: A72832072D525E41
2 changed files with 19 additions and 11 deletions

View File

@ -3,4 +3,5 @@ package com.muwire.core.files
import com.muwire.core.Event import com.muwire.core.Event
class AllFilesLoadedEvent extends Event { class AllFilesLoadedEvent extends Event {
int failed
} }

View File

@ -14,6 +14,7 @@ import java.nio.file.Paths
import java.util.concurrent.ExecutorService import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors import java.util.concurrent.Executors
import java.util.concurrent.ThreadFactory import java.util.concurrent.ThreadFactory
import java.util.concurrent.atomic.AtomicInteger
import java.util.logging.Level import java.util.logging.Level
import java.util.stream.Stream import java.util.stream.Stream
@ -134,6 +135,7 @@ class PersisterFolderService extends BasePersisterService {
*/ */
private void _load() { private void _load() {
int loaded = 0 int loaded = 0
AtomicInteger failed = new AtomicInteger()
Stream<Path> stream = Files.walk(location.toPath()) Stream<Path> stream = Files.walk(location.toPath())
if (core.muOptions.plugin) if (core.muOptions.plugin)
stream = stream.parallel() stream = stream.parallel()
@ -141,21 +143,26 @@ class PersisterFolderService extends BasePersisterService {
it.getFileName().toString().endsWith(".json") it.getFileName().toString().endsWith(".json")
}) })
.forEach({ .forEach({
log.fine("processing path $it")
def slurper = new JsonSlurper() def slurper = new JsonSlurper()
def parsed = slurper.parse it.toFile() try {
def event = fromJsonLite parsed def parsed = slurper.parse it.toFile()
if (event == null) return def event = fromJsonLite parsed
if (event == null) return
log.fine("loaded file $event.loadedFile.file") log.fine("loaded file $event.loadedFile.file")
listener.publish event listener.publish event
if (!core.muOptions.plugin) { if (!core.muOptions.plugin) {
loaded++ loaded++
if (loaded % 10 == 0) if (loaded % 10 == 0)
Thread.sleep(20) Thread.sleep(20)
}
} catch (Exception e) {
log.log(Level.WARNING,"failed to load $it",e)
failed.incrementAndGet()
} }
}) })
listener.publish(new AllFilesLoadedEvent()) listener.publish(new AllFilesLoadedEvent(failed : failed.get()))
} }
private void persistFile(SharedFile sf, InfoHash ih) { private void persistFile(SharedFile sf, InfoHash ih) {