Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
7.8.0.Final
-
None
-
2018 Week 30-32
-
1
-
NEW
-
NEW
Description
When creating a new KieScanner, a NullPointerException is thrown. Here's the code where the KieScanner is created:
final KieServices kieServices = KieServices.Factory.get(); final KieContainer kieContainer = kieServices.newKieContainer( kieServices.newReleaseId("mygroup", "rules", "1.0-SNAPSHOT")); final KieScanner kieScanner = kieServices.newKieScanner(kieContainer);
The method indexArtifacts in the KieRepositoryScannerImpl class, tries to index all the Maven artefacts.In my case, the artefact sun.jdk:jconsole:jdk cannot be resolved, which causes the NullPointerException in the line 399:
private Map<ReleaseId, DependencyDescriptor> indexArtifacts() { Map<ReleaseId, DependencyDescriptor> depsMap = new HashMap<ReleaseId, DependencyDescriptor>(); for (DependencyDescriptor dep : artifactResolver.getAllDependecies()) { if ( !"test".equals(dep.getScope()) && !"provided".equals(dep.getScope()) && !"system".equals(dep.getScope()) ) { Artifact artifact = artifactResolver.resolveArtifact(dep.getReleaseId()); log.debug( artifact + " resolved to " + artifact.getFile() ); // NPE happens here. if (isKJar(artifact.getFile())) { depsMap.put(adapt( dep.getReleaseIdWithoutVersion() ), new DependencyDescriptor(artifact)); } } else { log.debug("{} does not need to be resolved because in scope {}", dep, dep.getScope()); } } return depsMap; }
The curious part is that the sun.jdk:jconsole:jdk artefact is not declared in any of my projects or dependencies, as far as I could investigate.
Here's the NPE stack trace:
Caused by: java.lang.NullPointerException: null
at org.kie.scanner.KieRepositoryScannerImpl.indexArtifacts(KieRepositoryScannerImpl.java:399)
at org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:116)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:227)
at com.test.ServiceConfoguration.kieContainer(ServiceConfoguration.java:84)
at com.test.ServiceConfoguration$$EnhancerBySpringCGLIB$$4fd6caf2.CGLIB$kieContainer$2(<generated>)
at com.test.ServiceConfoguration$$EnhancerBySpringCGLIB$$4fd6caf2$$FastClassBySpringCGLIB$$f73690dd.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356)
at com.test.ServiceConfoguration$$EnhancerBySpringCGLIB$$4fd6caf2.kieContainer(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 19 common frames omitted