From 70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 7 Jan 2021 12:20:02 +0100 Subject: More Wireguard. Fixing broken myapps too. --- module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java') diff --git a/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java b/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java index 7f946d9..3173109 100644 --- a/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java +++ b/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java @@ -2,6 +2,7 @@ package io.trygvis.rules.engine; import ch.qos.logback.core.util.FileUtil; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; @@ -12,6 +13,7 @@ import org.kie.api.runtime.rule.FactHandle; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.util.*; import java.util.function.Function; @@ -24,6 +26,7 @@ public class DbIo { factory.enable(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID); factory.enable(YAMLGenerator.Feature.USE_NATIVE_OBJECT_ID); mapper = new ObjectMapper(factory); + mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); var typeFactory = TypeFactory.defaultInstance() .withClassLoader(new AcmeClassLoader(kieBase)); mapper.setTypeFactory(typeFactory); @@ -40,8 +43,11 @@ public class DbIo { try { var type = mapper.getTypeFactory().findClass(object.type); var x = mapper.treeToValue(object.data, type); + if (x == null) { + x = type.getDeclaredConstructor().newInstance(); + } items.add(x); - } catch (ClassNotFoundException e) { + } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { // ignore } } -- cgit v1.2.3