InternalKieModule kieModule = (InternalKieModule) ks.getRepository().getKieModule(rid);
byte[] theModulesBytes = kieModule.getBytes();
synchronized(this) {
String base = Base64.encodeBase64String(theModulesBytes);
persist(base);
}
When I try to recover the the base using
byte[] theBytes = Base64.decodeBase64(data);
Resource jarRes = ks.getResources().newByteArrayResource(theBytes);
KieRepository kr = ks.getRepository();
km = kr.addKieModule(jarRes);
the kr.addKieModule(jarRes) call throws a runtime exception:
Unable to fetch module from resource: ByteArrayResource[bytes=[-84, -19, 0, 5, 119, 124, 10, 6, 8, 6, ...], encoding=null]
The cause is an NPE:
Caused by: java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:227)
with additional stack:
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:236)
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.addKieModule(KieRepositoryImpl.java:192)
What do I need to do to stop this NPE?
David.