From 1e7e30dee276242d0075f9f20541ee6f44b7ed3d Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Wed, 9 Jun 2021 12:50:00 +0100 Subject: [PATCH] Switch to LAX Json parser and parallelize the stream after filtering --- .../muwire/core/files/PersisterFolderService.groovy | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/main/groovy/com/muwire/core/files/PersisterFolderService.groovy b/core/src/main/groovy/com/muwire/core/files/PersisterFolderService.groovy index 48c55a4c..96df4f3c 100644 --- a/core/src/main/groovy/com/muwire/core/files/PersisterFolderService.groovy +++ b/core/src/main/groovy/com/muwire/core/files/PersisterFolderService.groovy @@ -5,6 +5,7 @@ import com.muwire.core.filefeeds.UIFilePublishedEvent import com.muwire.core.filefeeds.UIFileUnpublishedEvent import com.muwire.core.util.DataUtil import groovy.json.JsonOutput +import groovy.json.JsonParserType import groovy.json.JsonSlurper import groovy.util.logging.Log @@ -137,16 +138,16 @@ class PersisterFolderService extends BasePersisterService { int loaded = 0 AtomicInteger failed = new AtomicInteger() Stream stream = Files.walk(location.toPath()) - if (core.muOptions.plugin) - stream = stream.parallel() - stream.filter({ + stream = stream.filter({ it.getFileName().toString().endsWith(".json") }) - .forEach({ + if (core.muOptions.plugin) + stream = stream.parallel() + stream.forEach({ log.fine("processing path $it") - def slurper = new JsonSlurper() + def slurper = new JsonSlurper(type: JsonParserType.LAX) try { - def parsed = slurper.parse it.toFile() + def parsed = slurper.parse(it.toFile()) def event = fromJsonLite parsed if (event == null) return