I am trying to upgrade to the 5.1M2 build from 5.0.1 and am running into some issues.  I have installed the new 5.1 Guvnor and imported the rules from my 5.0.1 Guvnor instance. 

I then removed the old 5.0.1 drools jars from my app and replaced them with the 5.1M2 drools jars.  I was also added all the dependent libraries.  The code that worked with the 5.0.1 version does not work with the 5.1M2 version.  In 5.0.1 I was constructing the xml and streaming it into the applyChangeSet method.  With 5.1M2 I am just pointing to the change set xml file that is in the Guvnor.

 

I am seeing a NullPointerException being thrown  in the processChangeSet method as shown below.

 

Caused by: java.lang.NullPointerException

                at org.drools.agent.impl.KnowledgeAgentImpl.processChangeSet(KnowledgeAgentImpl.java:171)

                at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:143)

                at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:130)

 

 

Did I miss something?  Am I doing something wrong?  Below is the code that I have.

 

                 KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();

                 kaconf.setProperty( "drools.agent.scanDirectories", "true" );

                 kaconf.setProperty("drools.agent.newInstance", "false");

                                 

                 ResourceFactory.getResourceChangeScannerService().start();

                 ResourceFactory.getResourceChangeNotifierService().start();

 

                String url = "http://rulerserver/drools-guvnor/org.drools.guvnor.Guvnor/package/my.rule.package/LATEST/ChangeSet.xml";

                                               

                KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "Configuration", kaconf );

                kagent.setSystemEventListener(new MyDroolsListener());

try {

                                kagent.applyChangeSet(ResourceFactory.newUrlResource(new URL(url)));        // ERROR IS OCCURING INSIDE OF applyChangeSet

                } catch (MalformedURLException e) {

                                e.printStackTrace();

                }