[rules-users] KieContainer#updateToVersion fails when both versions of a drl file contain an event type declaration for an existing class
Mark Proctor
mproctor at codehaus.org
Wed Jun 18 16:16:39 EDT 2014
Looks like a bug. Please try on 6.1CR1.
http://mvnrepository.com/artifact/org.drools
If it’s not fixed, and yo want it fixed you’ll need to submit a pull request with a failing unit test:
http://docs.jboss.org/drools/release/5.6.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html
You can see unit tests for incremental updates here:
https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java
Please try and add your unit test to that class, in the same format as the other tests.
Mark
On 18 Jun 2014, at 20:30, mikedev9000 <michael1.cis at gmail.com> wrote:
> I am using the latest drools 6.1.0-SNAPSHOT. I have two jars containing
> different versions of a KieModule, and they each contain a drl file with an
> event type declaration for an existing class. If I try to update the
> container from one version to the other, the call to
> KieContainer#updateToVersion returns a Results instance that contains errors
> related to the @timestamp attribute on that event declaration. Here is an
> example of the error message: "[Message [id=1, level=ERROR, path=r0.drl,
> line=3, column=0
> text=Error creating field accessors for timestamp field 'mytime' for type
> 'FooEvent']]".
>
> The following .patch file can be used to add a unit test to the
> IncrementalCompilationTest.java file that demonstrates this problem.
>
> test_container_update_problem.patch
> <http://drools.46999.n3.nabble.com/file/n4030100/test_container_update_problem.patch>
>
> After applying the patch, and running this unit test, I see the following
> test failure:
>
>
> java.lang.AssertionError: Errors detected on updateToVersion: [Message
> [id=1, level=ERROR, path=r0.drl, line=3, column=0
> text=Error creating field accessors for timestamp field 'mytime' for type
> 'FooEvent']]
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.assertTrue(Assert.java:41)
> at org.junit.Assert.assertFalse(Assert.java:64)
> at
> org.drools.compiler.integrationtests.IncrementalCompilationTest.testUpdateWithDeclarationPresent(IncrementalCompilationTest.java:95)
>
>
>
> This error makes it nearly impossible for me to rely on and use
> KieContainer#updateToVersion, because I need to allow frequent changes to be
> made to drl files at run time, and I would prefer not to recreate the
> KieContainer, and all of its KieBases and KieSessions on every update.
>
> Is this a known issue? If so, are there plans to fix it before the
> 6.1.0.Final release?
>
>
>
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/KieContainer-updateToVersion-fails-when-both-versions-of-a-drl-file-contain-an-event-type-declaratios-tp4030100.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
More information about the rules-users
mailing list