I am giving a look at this just now. I will keep you updated.

Thanks for reporting this issue.

Mario

On Thu, Oct 25, 2012 at 9:09 PM, Willem van Asperen <willem@van.asperen.org> wrote:
Hi All,

I have taken the liberty to log this in Jira at
https://issues.jboss.org/browse/JBRULES-3670

Regards,
Willem

On 10/25/2012 12:44 PM, Willem van Asperen wrote:
> Hi All,
>
> The difference between failing or not stems from using insert() and
> retract() versus insertLogical(). The first two make the package fail to
> load, the latter seems to work fine.
>
> I can create a package that *does* load, by adding a cast to the full
> class name in the rule:
>
> rule "clean up possible slot lock, when no longer to schedule"
>       when
>           $p : PossibleSlotLock( $ship; )
>           not ToScheduleLock( mover == $ship )
>       then
>           retract( (vcm.planner.lock.standard.PossibleSlotLock)$p );
> end
>
> and by stating the full class name in the inserts, like so:
>
> insert(new vcm.planner.lock.standard.PossibleSlotLock($ship, $chamber,
> $side, $schedule, $eta, $schedule.getTick(), "existing"));
>
> This way the loading works fine.
>
> So this is less about loading compiled files and more about class
> loading for insert() and retract().
>
> Hope this helps!
>
> I have also managed to reproduce this in a simple case. jar attached.
> Notice that when I change rule "now use it B" to have RHS "insert( new
> Person( $christianName, null ) );" the loading works. I can imagine the
> compiler / loader just assumes that a class with constructor Person(
> String, ExternalClass ) may become available at run time?
>
> Regards,
> Willem
>
> On 10/25/2012 11:32 AM, Willem van Asperen wrote:
>> Hi All,
>>
>> To add to this, I've done some further testing.
>>
>> It seems that the particular order in which each of the compiled
>> packages is loaded does not matter.
>> Not all packages that declare local classes fail... I have now found the
>> two that do. I cannot see any striking differences between the ones that
>> do and do not fail...
>>
>> What I did find is that removing all the rules from the failing packages
>> (so only leaving the imports and declare) seems to remove this issue!
>>
>> I'll dig 'round some more.
>>
>> Regards,
>> Willem
>>
>> On 10/25/2012 01:45 AM, Wolfgang Laun wrote:
>>> Folks,
>>> it seems that something new in 5.5.0.CR1 sabotages the ingestion of
>>> compiled packages.
>>> -W
>>>
>>> ---------- Forwarded message ----------
>>> From: Willem van Asperen <willem@van.asperen.org>
>>> Date: Thu, 25 Oct 2012 00:04:32 +0200
>>> Subject: Re: [rules-users] ClassNotFound on class defined in drl with 5.5.0.CR1
>>> To: Wolfgang Laun <wolfgang.laun@gmail.com>, Rules Users List
>>> <rules-users@lists.jboss.org>
>>>
>>> Hi,
>>>
>>> This was a good idea. Here is my test case:
>>>
>>> public class TestCompilation {
>>>
>>>         private final static FileFilter RULES_FILES_FILTER = new FileFilter() {
>>>             @Override
>>>             public boolean accept(File pathname) {
>>>                 return pathname.getName().endsWith(".drl");
>>>             }
>>>         };
>>>
>>>         private void testCompilation() throws FileNotFoundException,
>>> IOException {
>>>             KnowledgeBuilderConfiguration configuration =
>>> KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
>>>             KnowledgeBuilder kbuilder =
>>> KnowledgeBuilderFactory.newKnowledgeBuilder(configuration);
>>>
>>>             File folder = new File("src/main/rules/");
>>>             for (File file : folder.listFiles(RULES_FILES_FILTER)) {
>>>                 System.out.println("compiling "+file.getAbsolutePath());
>>> kbuilder.add(ResourceFactory.newFileResource(file.getAbsolutePath()),
>>> ResourceType.DRL);
>>>             }
>>>
>>>             System.out.println("saving");
>>>             ObjectOutputStream out = new ObjectOutputStream(new
>>> FileOutputStream("test.drl.compiled"));
>>>             out.writeObject( kbuilder.getKnowledgePackages());
>>>             out.close();
>>>         }
>>>
>>>         private KnowledgeBase testLoad() throws FileNotFoundException,
>>> IOException, ClassNotFoundException {
>>>             Properties configProperties = new Properties();
>>>             KnowledgeBaseConfiguration knowledgeBaseConfiguration =
>>> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(configProperties);
>>>             KnowledgeBase kbase =
>>> KnowledgeBaseFactory.newKnowledgeBase(knowledgeBaseConfiguration);
>>>
>>>             ObjectInputStream in = new ObjectInputStream(new
>>> FileInputStream("test.drl.compiled"));
>>>
>>>             System.out.println("loading");
>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>) in.readObject());
>>>             return kbase;
>>>         }
>>>
>>>         public static void main(String[] args) throws
>>> FileNotFoundException, IOException, ClassNotFoundException {
>>>             TestCompilation testCompilation = new TestCompilation();
>>>             testCompilation.testCompilation();
>>>             testCompilation.testLoad();
>>>         }
>>> }
>>>
>>> The folder src/main/rules consists of a number of .drl files.
>>> Compiling works fine.
>>> This is the output:
>>>
>>> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
>>> SLF4J: Defaulting to no-operation (NOP) logger implementation
>>> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for
>>> further details.
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/planner-lock.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/executable-action-selection.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/block-times-3.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/planner-bridge.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/routeplan.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/shift-management-brabant.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/plan-first-object-in-route.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/operator-lock.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/block-times-route-call.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/shift-management.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/planner-process-data.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/plan-last-moment.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/operator-bridge.drl
>>> compiling
>>> /home/willem/development/workspace/VCM/src/main/rules/operator-management.drl
>>> saving
>>> loading
>>> Exception in thread "main" java.lang.ClassNotFoundException:
>>> vcm.planner.lock.standard.PossibleSlotLock
>>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>>>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>>>         at java.lang.Class.forName0(Native Method)
>>>         at java.lang.Class.forName(Class.java:264)
>>>         at
>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85)
>>>         at
>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97)
>>>         at
>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)
>>>         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
>>>         at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at
>>> org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at java.util.ArrayList.readObject(ArrayList.java:733)
>>>         at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:601)
>>>         at
>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>         at
>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at
>>> org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.drools.rule.Rule.readExternal(Rule.java:207)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at
>>> org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at java.util.HashMap.readObject(HashMap.java:1155)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:601)
>>>         at
>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>         at
>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at
>>> org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.drools.rule.Package.readExternal(Package.java:208)
>>>         at
>>> org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157)
>>>         at
>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at java.util.ArrayList.readObject(ArrayList.java:733)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:601)
>>>         at
>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>         at
>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>         at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at
>>> com.paconsulting.pase.test.TestCompilation.testLoad(TestCompilation.java:57)
>>>         at
>>> com.paconsulting.pase.test.TestCompilation.main(TestCompilation.java:64)
>>>
>>> The class PossibleSlotLock is just a locally declared fact class. It is
>>> only being used in that particular .drl file. Every .drl file has it's
>>> own package name.
>>>
>>> The head of the .drl file:
>>>
>>> package vcm.planner.lock.standard;
>>>
>>> import java.util.Set;
>>>
>>> import com.paconsulting.pase.core.schedule.CurrentTime;
>>> import com.paconsulting.pase.core.duration.FixedDuration;
>>> import com.paconsulting.pase.transport.agents.ScheduleManagingContainer;
>>> import com.paconsulting.pase.transport.agents.movers.Ship;
>>> import com.paconsulting.pase.transport.agents.water.Lock;
>>> import com.paconsulting.pase.transport.agents.water.LockChamber;
>>> import com.paconsulting.pase.transport.agents.base.WaterLevel;
>>> import com.paconsulting.pase.transport.components.action.ActionFactory;
>>> import com.paconsulting.pase.transport.actions.IAction;
>>> import com.paconsulting.pase.transport.components.action.IActionable;
>>> import com.paconsulting.pase.transport.actions.NonTransactionAction;
>>> import com.paconsulting.pase.transport.actions.ExecutableAction;
>>> import com.paconsulting.pase.transport.components.containing.IContainer;
>>> import
>>> com.paconsulting.pase.transport.components.containing.IContainer.UpDown;
>>> import com.paconsulting.pase.transport.components.moving.IMover;
>>> import com.paconsulting.pase.transport.components.moving.TransferSchedule;
>>> import com.paconsulting.pase.transport.components.moving.ToScheduleLock;
>>>
>>> declare PossibleSlotLock
>>>         ship : IMover
>>>         chamber : IContainer
>>>         side : IContainer.UpDown
>>>         schedule : TransferSchedule
>>>         eta : double
>>>         at : double
>>>         cause : String
>>> end
>>> ....
>>>
>>> Same issue like in my previous email, different class that cannot be found.
>>>
>>> This works in 5.4.0.Final
>>>
>>> Any clue?
>>>
>>> This seems to me like a really basic thing so either I am missing the
>>> plot somehow or no-one has yet used a locally declared fact classes -
>>> which I think is just not true...
>>>
>>> Regards,
>>> Willem
>>>
>>> On 10/24/2012 07:29 PM, Wolfgang Laun wrote:
>>>> It would be interesting to know (and perhaps help to isolate the problem
>>>> apparently introduced in 5.5.0) if you could try and compile and
>>>> serialize into a single file, and load that in a single readObject.
>>>>
>>>> -W
>>>>
>>>> On 24/10/2012, Willem van Asperen <willem@van.asperen.org> wrote:
>>>>> Hi Wolfgang,
>>>>>
>>>>> Thanks for picking this up. I am indeed compiling these separate .drl
>>>>> files into separate .drl.compiled files and then creating a kbase using
>>>>> addKnowledgePackages on the individual .drl.compiled files.
>>>>>
>>>>> But: the classes declared in some of by .drl files are only going to be
>>>>> used in that particular .drl file - not anywhere else.
>>>>> Also: this did work in 5.4.0.Final but now has given up on me.
>>>>>
>>>>> Point is that I need to be flexible in mixing different .drl.compiled
>>>>> files into a kbase, based on user specifications.
>>>>> Alternative is that I do not pre-compile these .drl files and only
>>>>> compile them, in combination, in the mix that is required by the user...
>>>>> If that would solve the problem... But it seems to be more cumbersome...
>>>>>
>>>>> Regards,
>>>>> Willem
>>>>>
>>>>> On 10/24/2012 03:39 PM, Wolfgang Laun wrote:
>>>>>> The code you use for loading where you load many .pkg files isn't
>>>>>> quite the counterpart for compiling where you compile one DRL.
>>>>>>
>>>>>> Do you compile and output the .drl files one by one? Apparently you
>>>>>> load them individually?
>>>>>>
>>>>>> Try compiling them all, and then take the Collection<KnowledgePackage>
>>>>>> and writeObject it to a single .pkg from which you load them in one
>>>>>> go.
>>>>>>
>>>>>> Could it be that the type declared in one .drl is used in another .drl
>>>>>> in the same package? Reading this in the wrong order might cause the
>>>>>> CNF.
>>>>>>
>>>>>> -W
>>>>>>
>>>>>> On 24/10/2012, Willem van Asperen <willem@van.asperen.org> wrote:
>>>>>>> Dear All,
>>>>>>>
>>>>>>> I use the Drools compiler to compile a set of drl files:
>>>>>>>
>>>>>>>
>>>>>>>               KnowledgeBuilder kbuilder =
>>>>>>> KnowledgeBuilderFactory.newKnowledgeBuilder(configuration);
>>>>>>>               kbuilder.add(ResourceFactory.newFileResource(fileName),
>>>>>>> ResourceType.DRL);
>>>>>>>
>>>>>>>               KnowledgeBuilderErrors errors = kbuilder.getErrors();
>>>>>>>               if (errors.size() > 0) {
>>>>>>>                   for (KnowledgeBuilderError error: errors) {
>>>>>>>                       logger.error(error);
>>>>>>>                   }
>>>>>>>                   throw new IllegalArgumentException("Could not parse
>>>>>>> knowledge.");
>>>>>>>               }
>>>>>>>
>>>>>>>               ObjectOutputStream out = new ObjectOutputStream(new
>>>>>>> FileOutputStream(fileName+".compiled"));
>>>>>>>               out.writeObject( kbuilder.getKnowledgePackages());
>>>>>>>               out.close();
>>>>>>>
>>>>>>> I then load these *.compiled files into my application:
>>>>>>>
>>>>>>>
>>>>>>>               for (String packageName : packages) {
>>>>>>>                   InputStream is =
>>>>>>> getClass().getResourceAsStream("/"+packageName+".drl.compiled");
>>>>>>>                   if (is != null) {
>>>>>>>                       logger.debug("adding package '"+packageName+"'");
>>>>>>>                       ObjectInputStream in = new ObjectInputStream(is);
>>>>>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>)
>>>>>>> in.readObject());
>>>>>>>                       in.close();
>>>>>>>                   } else
>>>>>>>                       throw new FileNotFoundException("could not find
>>>>>>> resource for package "+packageName);
>>>>>>>                   is.close();
>>>>>>>               }
>>>>>>>
>>>>>>> In some of these drl files I declare a class, for instance:
>>>>>>>
>>>>>>> package vcm.selection.standard;
>>>>>>>
>>>>>>> import com.paconsulting.pase.transport.agents.ShiftWorker;
>>>>>>> import com.paconsulting.pase.transport.agents.VCMShiftWorker;
>>>>>>> import com.paconsulting.pase.transport.actions.ExecutableAction;
>>>>>>> import com.paconsulting.pase.transport.agents.ScheduleManagingContainer;
>>>>>>> import com.paconsulting.pase.transport.agents.water.Bridge;
>>>>>>> import com.paconsulting.pase.transport.agents.movers.AbstractMover;
>>>>>>> import com.paconsulting.pase.transport.agents.movers.Ship;
>>>>>>> import com.paconsulting.pase.transport.agents.movers.VCMShip;
>>>>>>>
>>>>>>> declare RelevantExecutableAction
>>>>>>>           agent : ShiftWorker
>>>>>>>           executableAction : ExecutableAction
>>>>>>> end
>>>>>>> ...
>>>>>>>
>>>>>>> When running the
>>>>>>> kbase.addKnowledgePackages((Collection<KnowledgePackage>)
>>>>>>> in.readObject()) I get the following ClassNotFound stack trace:
>>>>>>>
>>>>>>> java.lang.ClassNotFoundException:
>>>>>>> vcm.selection.standard.RelevantExecutableAction
>>>>>>>           at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>>>>>>>           at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>>>>>>>           at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>           at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>>>>>>>           at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>>>>>>>           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>>>>>>>           at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>>>>>>>           at java.lang.Class.forName0(Native Method)
>>>>>>>           at java.lang.Class.forName(Class.java:264)
>>>>>>>           at
>>>>>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:85)
>>>>>>>           at
>>>>>>> org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:97)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readClass(ObjectInputStream.java:1480)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1330)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at
>>>>>>> org.drools.rule.ConsequenceMetaData$Statement.readExternal(ConsequenceMetaData.java:61)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at java.util.ArrayList.readObject(ArrayList.java:733)
>>>>>>>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>           at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>>           at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>           at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>           at
>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at
>>>>>>> org.drools.rule.ConsequenceMetaData.readExternal(ConsequenceMetaData.java:19)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at org.drools.rule.Rule.readExternal(Rule.java:207)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at
>>>>>>> org.drools.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at java.util.HashMap.readObject(HashMap.java:1155)
>>>>>>>           at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>>>>>>>           at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>           at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>           at
>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at
>>>>>>> org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:58)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at org.drools.rule.Package.readExternal(Package.java:208)
>>>>>>>           at
>>>>>>> org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:157)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at java.util.ArrayList.readObject(ArrayList.java:733)
>>>>>>>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>           at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>>           at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>           at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>           at
>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>           at
>>>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.addPackages(KnowledgebaseDefinition.java:48)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.KnowledgebaseDefinition.materialize(KnowledgebaseDefinition.java:59)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.TeamDefinition.materialize(TeamDefinition.java:97)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.OperatingModelDefinition.materialize(OperatingModelDefinition.java:36)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.Run.<init>(Run.java:31)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.definition.RunDefinition.materialize(RunDefinition.java:53)
>>>>>>>           at
>>>>>>> com.paconsulting.pase.core.configuration.runconfig.RunConfigExecutor$ScheduleExecutorWrapper.run(RunConfigExecutor.java:69)
>>>>>>> ...
>>>>>>>
>>>>>>> I'm sure I miss something as this is basic functionality. Maybe I must
>>>>>>> tell the kbase where to load the classes...
>>>>>>>
>>>>>>> Can someone point me in the right direction?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Willem
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> rules-users mailing list
>>>>>>> rules-users@lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> rules-users mailing list
>>>>>> rules-users@lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev

_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev