[rules-users] Declared Types with large number of fields

Phani Saripalli saripalli.phani at gmail.com
Tue Oct 2 05:56:09 EDT 2012


Hi. 
I am using declared types in .drl rule rule. When I kept the number of
fields in a declared type low, drools works fine. When I am increasing the
number of fields in a declared type to 300 or even more, drools raising an
exception. 
Particularly, it is giving this.


ava.lang.ClassFormatError: Too many arguments in method signature in class
file com/sample/Project
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at
org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:615)
	at
org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:254)
	at
org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:237)
	at
org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:88)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at
org.drools.base.ClassTypeResolver.resolveType(ClassTypeResolver.java:155)
	at
org.drools.compiler.PackageBuilder.processTypeDeclarations(PackageBuilder.java:2049)
	at
org.drools.compiler.PackageBuilder.mergePackage(PackageBuilder.java:1218)
	at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:829)
	at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:467)
	at
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:673)
	at
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:45)
	at
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:34)
	at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:67)
	at com.sample.DroolsTest.main(DroolsTest.java:24)


I suspect, it is something to do with creating class, constructor with so
many arguments at run time. I am looking for a solution, something like
declared types, or a workaround. The purpose for which I am using Drools
limits to use the traditional Java classes, or defining a Java class. 
Also, is there any way, to perform calculations, or value propagations.
That, Drools could assume some value to a variable given a certain
constraint on it.

For example, x > 6 && x < 9, Drools could assume x as 7 or 8 and fire rules?

Thank you.
Phani



--
View this message in context: http://drools.46999.n3.nabble.com/Declared-Types-with-large-number-of-fields-tp4020076.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list