2017-01-22 16 views
2

Я пытаюсь настроить Javers, используя репозиторий MongoDB. Я использую версию 2.9.1 для обоих javers-core и javers-persistence-mongo.Javers MongoRepository throwing IllegalArgumentException для Boolean JsonPrimitive

Однако, когда я пытаюсь совершить объект с булевым полем, следующее исключение:

java.lang.IllegalArgumentException: unsupported JsonElement type - JsonPrimitive 
    at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:71) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:39) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.MongoRepository.writeToDBObject(MongoRepository.java:200) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.MongoRepository.persistSnapshots(MongoRepository.java:217) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.mongo.MongoRepository.persist(MongoRepository.java:74) ~[javers-persistence-mongo-2.9.1.jar:?] 
    at org.javers.repository.api.JaversExtendedRepository.persist(JaversExtendedRepository.java:109) ~[javers-core-2.9.1.jar:?] 
    at org.javers.core.JaversCore.commit(JaversCore.java:83) ~[javers-core-2.9.1.jar:?] 
    at org.javers.core.JaversCore.commit(JaversCore.java:65) ~[javers-core-2.9.1.jar:?] 

Глядя в метод private static Object fromJsonElement(JsonElement jsonElement) в javers-persistence-mongo-2.9.1/DocumentConverter, есть только методы преобразования для JsonPrimitives строки и номера (не булево).

У меня отсутствует какая-то конфигурация здесь?

MWE:

public static void main(final String[] args) { 
    final TestEntity testEntity = new TestEntity(); 
    testEntity.id = 12345L; 
    testEntity.testBoolean = true; 

    final MongoClient mongoClient = new MongoClient(...); 
    final Javers javers = JaversBuilder.javers() 
     .registerJaversRepository(new MongoRepository(mongoClient.getDatabase(...))).build(); 

    javers.commit("testAuthor", testEntity); // Throws IllegalArgumentException 
    } 

    @Entity 
    static class TestEntity { 

    @Id 
    Long id; 

    Boolean testBoolean; 
    } 

ответ