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().getR
esourceAsStream("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.
 
regards
 
--zoly
 

________________________________

From: [email protected]
[mailto:[email protected]] 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
        [email protected]
        https://lists.jboss.org/mailman/listinfo/rules-dev
          


Attachment: mortgages_TEST.pkg
Description: mortgages_TEST.pkg

_______________________________________________
rules-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to