Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-2773

NPE when creating a new KieScanner

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • 7.8.0.Final
    • kie server
    • 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
      

      Attachments

        Activity

          People

            mfusco@redhat.com Mario Fusco
            rbgiudice_jira Raphael Bowen Giudice (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: