[rules-dev] possible bug, NPE in PackageBuilder.java

Mark Proctor mproctor at codehaus.org
Mon Dec 22 11:10:35 EST 2008


Zoltan Farkas wrote:
> Here is a unit test you can add to PackageBuilderTest:
>  
>     public void testAddPackage() throws IOException {
>  
>         KnowledgeBuilder kbuilder = 
> KnowledgeBuilderFactory.newKnowledgeBuilder();
>         
> kbuilder.add(ResourceFactory.newInputStreamResource(this.getClass().getResourceAsStream("mortgages_TEST.pkg")),
>                 ResourceType.PKG);
>  
>         KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
>         kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
>         StatefulKnowledgeSession session = 
> kbase.newStatefulKnowledgeSession();
>     }
>  
>  
> The unit test uses the mortgages_TEST from guvnor, you need to add 
> mortgages_TEST.pkg to
> src/test/resources/org.drools.compiler. I have attached the mortgages 
> test pkg to this email.
perfect, if only more bug reporting was like this :)
>  
> regards
>  
> --zoly
>  
>
> ------------------------------------------------------------------------
> *From:* rules-dev-bounces at lists.jboss.org 
> [mailto:rules-dev-bounces at lists.jboss.org] *On Behalf Of *Mark Proctor
> *Sent:* Monday, December 22, 2008 6:22 AM
> *To:* Rules Dev List
> *Subject:* Re: [rules-dev] possible bug, NPE in PackageBuilder.java
>
> Try changing the code to this, let me know if it fixes the problem and 
> I'll apply to trunk. any chance you could send us a mini self 
> contained unit test for this bug?
>
>     public synchronized void addPackage(final Package newPkg) {
>         PackageRegistry pkgRegistry = this.pkgRegistryMap.get( 
> newPkg.getName() );
>         Package pkg = null;
>         if ( pkgRegistry != null ) {
>             pkg = pkgRegistry.getPackage();
>         }
>
>         if ( pkg == null ) {
>             pkg = newPackage( new PackageDescr( newPkg.getName() ) 
> ).getPackage();
>         }
>
> Zoltan Farkas wrote:
>> PackageBuilder.java at line 688:
>>  
>>     public synchronized void addPackage(final Package newPkg) {
>>             Package pkg = this.pkgRegistryMap.get( newPkg.getName() 
>> ).getPackage();
>>  
>> if pkgRegistryMap is empty as it should probably be initially adding 
>> a new package will cause a NPE.
>> This fuction assumes that there is always a package in the 
>> packageRegistryMap.
>>  
>> I am getting a NPE when I am trying something like:
>>  
>>                 KnowledgeBuilder kbuilder = 
>> KnowledgeBuilderFactory.newKnowledgeBuilder();
>>                 kbuilder.add(ResourceFactory.newUrlResource("a valid 
>> url"),
>>                         ResourceType.PKG);
>>  
>> thanks for any help
>>  
>> --zoly
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>   
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20081222/5d068707/attachment.html 


More information about the rules-dev mailing list