[jboss-jira] [JBoss JIRA] (DROOLS-46) JavaDialectError when attaching a new KBuilder to an existing session

Edson Tirelli (JIRA) jira-events at lists.jboss.org
Wed Feb 20 21:43:56 EST 2013


     [ https://issues.jboss.org/browse/DROOLS-46?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Edson Tirelli closed DROOLS-46.
-------------------------------


    
> JavaDialectError when attaching a new KBuilder to an existing session
> ---------------------------------------------------------------------
>
>                 Key: DROOLS-46
>                 URL: https://issues.jboss.org/browse/DROOLS-46
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 5.5
>            Reporter: Edson Tirelli
>            Assignee: Edson Tirelli
>             Fix For: 5.6
>
>
> Stack trace:
> {code}
> java.lang.RuntimeException: [JavaDialectError message='PackageStore was unable to read resourceName='java/lang.class'']
> [JavaDialectError message='PackageStore was unable to read resourceName='java/lang/Object.class'']
> [JavaDialectError message='PackageStore was unable to read resourceName='java/lang/package-info.class'']
> ...
> {code}
> Test case:
> {code:title=TestCase.java|borderStype=solid}
>     @Test
>     public void testDynamicRulesWithTypeDeclarations() {
>         String type = "package com.sample\n" +
>                       "declare type Foo\n" +
>                       "  id : int\n" +
>                       "end\n";
>         String r1 = "package com.sample\n" +
>                     "rule R1 when\n" +
>                     "  not Foo()\n" +
>                     "then\n" +
>                     "  insert( new Foo(1) );\n" +
>                     "end\n";
>         String r2 = "package com.sample\n" +
>                 "rule R2 when\n" +
>                 "  $f : Foo()\n" +
>                 "then\n" +
>                 "  $f.setId( 2 );\n" +
>                 "end\n";
>         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
>         kbuilder.add( ResourceFactory.newByteArrayResource( type.getBytes() ), ResourceType.DRL );
>         assertFalse( kbuilder.getErrors().toString(), kbuilder.hasErrors() );
>         
>         KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
>         kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
>         
>         StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
>         
>         AgendaEventListener ael = mock( AgendaEventListener.class );
>         ksession.addEventListener( ael );
>         
>         ksession.fireAllRules();
>         verify( ael, never() ).afterActivationFired( any( AfterActivationFiredEvent.class ) );
>         
>         kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( kbase );
>         kbuilder.add( ResourceFactory.newByteArrayResource( r1.getBytes() ), ResourceType.DRL );
>         assertFalse( kbuilder.getErrors().toString(), kbuilder.hasErrors() );
>         
>         ksession.fireAllRules();
>         ArgumentCaptor<AfterActivationFiredEvent> capt = ArgumentCaptor.forClass( AfterActivationFiredEvent.class );
>         verify( ael, times(1) ).afterActivationFired( capt.capture() );
>         assertThat( "R1", is( capt.getValue().getActivation().getRule().getName() ) );
>         
>         kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( kbase );
>         kbuilder.add( ResourceFactory.newByteArrayResource( r2.getBytes() ), ResourceType.DRL );
>         assertFalse( kbuilder.getErrors().toString(), kbuilder.hasErrors() );
>         
>         ksession.fireAllRules();
>         verify( ael, times(2) ).afterActivationFired( capt.capture() );
>         assertThat( "R2", is( capt.getAllValues().get( 2 ).getActivation().getRule().getName() ) );
>         
>         ksession.dispose();
>         
>     }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list