jsondb-core
jsondb-core copied to clipboard
JsonParseException deletes db file
When there is a problem in JSON file, it gets JsonParseException and it deletes this entry. But it should leave the file untouched, it is much better, otherwise we lost all the data because of a simple problem in JSON file.
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('6' (code 54)): was expecting a colon to separate field name and value
at [Source: ...; line: 1, column: 150]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:456) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipColon2(ReaderBasedJsonParser.java:2212) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipColon(ReaderBasedJsonParser.java:2191) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextFieldName(ReaderBasedJsonParser.java:924) ~[jackson-core-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:283) ~[jackson-databind-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140) ~[jackson-databind-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3789) ~[jackson-databind-2.8.3.jar:2.8.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2833) ~[jackson-databind-2.8.3.jar:2.8.3]
at io.jsondb.JsonDBTemplate.loadCollection(JsonDBTemplate.java:204) [jsondb-core-1.0.64.jar:?]
at io.jsondb.JsonDBTemplate.reloadCollection(JsonDBTemplate.java:170) [jsondb-core-1.0.64.jar:?]
at io.jsondb.JsonDBTemplate.loadDB(JsonDBTemplate.java:140) [jsondb-core-1.0.64.jar:?]
at io.jsondb.JsonDBTemplate.initialize(JsonDBTemplate.java:117) [jsondb-core-1.0.64.jar:?]
at io.jsondb.JsonDBTemplate.
Make sense, I will try to fix this soon
@alpercoskun i tried to reproduce this bug, and added a unit test for it LoadInvalidJsonTests.java however i could not reproduce this problem, I think i had seen this problem but once but dont remember when it had happened. If you comment the lines inside tearDown() you will see the temporary file src/test/resources/dbfiles/loadInvalidJsonTests/instances.json does have the invalid json entry
Can you help me reproduce this so i can try to fix it