[rules-users] Getting Null pointer exception for applying change set

Michael Anstis michael.anstis at gmail.com
Tue Aug 14 14:45:36 EDT 2012


Strangely it appears it works no better than before; you have simply moved
the error from a malformed classpath reference to a malformed file-system
reference.

The proximate cause is now "Caused by: java.net.MalformedURLException:
unknown protocol: d". The path
"'D:/Venkat/workspace/pi-affiliate-drools-rule-engine/src/main/rules/sample-md"
is incorrectly constructed.

I suggest you swat up on classpath resources, in particular getResource(),
or Java's File related classes, in particular what constitutes a correct
path separator.

With kind regards,

Mike

On 14 August 2012 18:13, Rana <ven12344 at yahoo.com> wrote:

> Strangely it did work for this
>
> kagent.applyChangeSet(ResourceFactory.newFileResource(ruleFile));
>
> but I get this exception now.
>
> My change set file has folder locations of drools files
>
>
>
> java.lang.RuntimeException: Unable to parse ChangeSet
>         at
>
> org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:448)
>         at
>
> org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:180)
>         at
>
> com.drfirst.pi.affiliate.drools.DroolsKnowledgeObject.getKnowledgeBase(DroolsKnowledgeObject.java:64)
>         at
>
> com.drfirst.pi.affiliate.drools.DroolsKnowledgeObject.getKnowledgeSession(DroolsKnowledgeObject.java:79)
>         at
> com.drfirst.pi.affiliate.drools.FireRules.<clinit>(FireRules.java:27)
>         at
>
> com.drfirst.pi.affiliate.drools.test.DroolsRuleTest.test(DroolsRuleTest.java:28)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at junit.framework.TestCase.runTest(TestCase.java:168)
>         at junit.framework.TestCase.runBare(TestCase.java:134)
>         at junit.framework.TestResult$1.protect(TestResult.java:110)
>         at junit.framework.TestResult.runProtected(TestResult.java:128)
>         at junit.framework.TestResult.run(TestResult.java:113)
>         at junit.framework.TestCase.run(TestCase.java:124)
>         at junit.framework.TestSuite.runTest(TestSuite.java:243)
>         at junit.framework.TestSuite.run(TestSuite.java:238)
>         at
>
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>         at
>
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
>         at
>
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.IllegalArgumentException:
>
> 'D:/Venkat/workspace/pi-affiliate-drools-rule-engine/src/main/rules/sample-md/'
> path is malformed
>         at org.drools.io.impl.UrlResource.<init>(UrlResource.java:86)
>         at
> org.drools.xml.changeset.ResourceHandler.start(ResourceHandler.java:86)
>         at
>
> org.drools.xml.ExtensibleXmlParser.startElement(ExtensibleXmlParser.java:385)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
>         at
>
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:739)
>         at
>
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
>         at
>
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
>         at
>
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
>         at
>
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>         at
>
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
>         at
>
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
>         at
>
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
>         at
> org.drools.xml.ExtensibleXmlParser.read(ExtensibleXmlParser.java:296)
>         at
> org.drools.xml.ExtensibleXmlParser.read(ExtensibleXmlParser.java:175)
>         at
> org.drools.xml.XmlChangeSetReader.read(XmlChangeSetReader.java:70)
>         at
>
> org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:446)
>         ... 24 more
> Caused by: java.net.MalformedURLException: unknown protocol: d
>         at java.net.URL.<init>(URL.java:574)
>         at java.net.URL.<init>(URL.java:464)
>         at java.net.URL.<init>(URL.java:413)
>         at org.drools.io.impl.UrlResource.<init>(UrlResource.java:83)
>         ... 44 more
> java.lang.RuntimeException: Unable to parse ChangeSet
>         at
>
> org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:453)
>         at
>
> org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:180)
>         at
>
> com.drfirst.pi.affiliate.drools.DroolsKnowledgeObject.getKnowledgeBase(DroolsKnowledgeObject.java:64)
>         at
>
> com.drfirst.pi.affiliate.drools.DroolsKnowledgeObject.getKnowledgeSession(DroolsKnowledgeObject.java:79)
>         at
> com.drfirst.pi.affiliate.drools.FireRules.<clinit>(FireRules.java:27)
>         at
>
> com.drfirst.pi.affiliate.drools.test.DroolsRuleTest.test(DroolsRuleTest.java:28)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at junit.framework.TestCase.runTest(TestCase.java:168)
>         at junit.framework.TestCase.runBare(TestCase.java:134)
>         at junit.framework.TestResult$1.protect(TestResult.java:110)
>         at junit.framework.TestResult.runProtected(TestResult.java:128)
>         at junit.framework.TestResult.run(TestResult.java:113)
>         at junit.framework.TestCase.run(TestCase.java:124)
>         at junit.framework.TestSuite.runTest(TestSuite.java:243)
>         at junit.framework.TestSuite.run(TestSuite.java:238)
>         at
>
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>         at
>
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
>         at
>
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>         at
>
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
> Thanks.
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Getting-Null-pointer-exception-for-applying-change-set-tp4019117p4019124.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120814/c18ea23b/attachment-0001.html 


More information about the rules-users mailing list