[rules-users] Guvnor fails to vaildate rule, though same rule compiles and run successfully when compiled command line with ANT.

Codedrop greg.roll at neteller.com
Mon Aug 31 16:27:38 EDT 2009


Since no replies as of yet I've done some more testing and have some more
detail.. this seems to be a bug but I could use some eyes on this as I'm a
drools newbie...  I now have two rules in a clean project in Guvnor...

First rule like this validates fine:

when
	$root : Root()
then
       	logger.debug("PNRLookupRequest - Start");

Second rule is as follows:

  when
        /*
	$root : Root();
        $id : IdentityRequest() from $root;
        */
        Root($id:identityRequest != null)
  then
       	logger.debug("PNRLookupRequest - Check Data");


When I attempt to validate it generates a fatal error and logs the following
in the tomcat catalina.log:
ERROR 31-08 13:49:51,656
(RepositoryServiceServlet.java:doUnexpectedFailure:66)         
java.lang.reflect.InvocationTargetException
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public
abstract org.drools.guvnor.client.rpc.BuilderResult[]
org.drools.guvnor.client.rpc.RepositoryService.buildAsset(org.drools.guvnor.client.rpc.RuleAsset)
throws com.google.gwt.user.client.rpc.SerializableException' threw an
unexpected exception: java.lang.reflect.InvocationTargetException
        at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360)
        at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
...
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
        ... 21 more
Caused by: java.lang.LinkageError: duplicate class definition:
org/drools/base/com/netid/idia/model/natal/rootIdentityRequest/Root274270528$getIdentityRequest
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at
org.drools.base.ClassFieldAccessorCache$ByteArrayClassLoader.defineClass(ClassFieldAccessorCache.java:367)


If modify the rule to replace the failing when clause with the commented out
block it then validates fine.. These same rules compile fine through ANT..
any known bugs in Guvnor that would cause this?



Codedrop wrote:
> 
> Reposting as last message was unledgible.
> 
> Recently upgraded from Drools 4.0.7 to 5.1.0 and have imported our rules
> into Guvnor.  Unable to determine why the same rules will not correctly
> validate in Guvnor which prevents building a package for deployment.
> 
> Sample Rule:
> 
> salience 50
> agenda-group "idia"
>                 when
>        Root(identityRequest != null)
>                 then
>                                 logger.debug("Main - Main Data
> Evaluation");
>                                 System.out.println("Main - Main Data
> Evaluation");
>         drools.getWorkingMemory().setFocus("mainAnalysis");
> Throws the following validation error when you select ‘Validate’:
> [Main - Data Evaluation] Unable to create Field Extractor for
> 'identityRequest' of '[ClassObjectType
> class=com.netid.idia.model.natal.rootIdentityRequest.Root]' in rule 'Main
> - Data Evaluation'
> 
> Unsure why identityRequest  is failing.  There is a valid getter in the
> java file and guvnor displays identityRequest in the list of attributes
> for ‘Root’. Oddly, if I change the when clause to be   
> Root(this.identityRequest != null)  it validates fine.  Did something
> change between 4.0.7 and 5.1.0 that I’m missing or do I have error
> somewhere that goes undetected outside the guvnor?
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Guvnor-fails-to-vaildate-rule%2C-though-same-rule-compiles-and-run-successfully-when-compiled-command-line-with-ANT.-tp25151401p25229899.html
Sent from the drools - user mailing list archive at Nabble.com.





More information about the rules-users mailing list