mirror of
https://github.com/Qortal/qortal.git
synced 2025-04-23 11:27:51 +00:00
added some critical exception handling for arbitrary data indexing support
This commit is contained in:
parent
ab4730cef0
commit
dbf49309ec
@ -2,6 +2,7 @@ package org.qortal.utils;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@ -95,18 +96,22 @@ public class ArbitraryIndexUtils {
|
|||||||
// process all index resources
|
// process all index resources
|
||||||
for( ArbitraryResourceData indexResource : indexResources ) {
|
for( ArbitraryResourceData indexResource : indexResources ) {
|
||||||
|
|
||||||
LOGGER.debug("processing index resource: name = " + indexResource.name + ", identifier = " + indexResource.identifier);
|
try {
|
||||||
String json = ArbitraryIndexUtils.getJson(indexResource.name, indexResource.identifier);
|
LOGGER.debug("processing index resource: name = " + indexResource.name + ", identifier = " + indexResource.identifier);
|
||||||
|
String json = ArbitraryIndexUtils.getJson(indexResource.name, indexResource.identifier);
|
||||||
|
|
||||||
// map the JSON string to a list of Java objects
|
// map the JSON string to a list of Java objects
|
||||||
List<ArbitraryDataIndex> indices = OBJECT_MAPPER.readValue(json, new TypeReference<List<ArbitraryDataIndex>>() {});
|
List<ArbitraryDataIndex> indices = OBJECT_MAPPER.readValue(json, new TypeReference<List<ArbitraryDataIndex>>() {});
|
||||||
|
|
||||||
LOGGER.debug("processed indices = " + indices);
|
LOGGER.debug("processed indices = " + indices);
|
||||||
|
|
||||||
// rank and create index detail for each index in this index resource
|
// rank and create index detail for each index in this index resource
|
||||||
for( int rank = 1; rank <= indices.size(); rank++ ) {
|
for( int rank = 1; rank <= indices.size(); rank++ ) {
|
||||||
|
|
||||||
indexDetails.add( new ArbitraryDataIndexDetail(indexResource.name, rank, indices.get(rank - 1) ));
|
indexDetails.add( new ArbitraryDataIndexDetail(indexResource.name, rank, indices.get(rank - 1) ));
|
||||||
|
}
|
||||||
|
} catch (InvalidFormatException e) {
|
||||||
|
LOGGER.warn("invalid format, skipping: " + indexResource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +128,7 @@ public class ArbitraryIndexUtils {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
LOGGER.info("processed indices by term = " + indicesByTerm);
|
LOGGER.info("processed indices by term: count = " + indicesByTerm.size());
|
||||||
|
|
||||||
// lock, clear old, load new
|
// lock, clear old, load new
|
||||||
synchronized( IndexCache.getInstance().getIndicesByTerm() ) {
|
synchronized( IndexCache.getInstance().getIndicesByTerm() ) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user