I think you have to put your insert command into a list List<Command<?>> cmds = new ArrayList(); and pass this via batch execution CommandFactory.newBatchExecution( cmds )
-W On 04/12/2013, Stephen Masters <stephen.mast...@me.com> wrote: > Hi folks, > > Can anyone explain how stateless session execution results should work? > Working through the docs and tracing the code, it’s getting a bit > confusing. > > Firstly, according to the user manual, one should be able to insert a list > of facts as a Command, and get an instance of ExecutionResults back, which > can then be queried. Here’s the example code: > StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); > > Command cmd = CommandFactory.newInsertElements( Arrays.asList( Object[] { > > new Cheese( "stilton" ), > > new Cheese( "brie" ), > > new Cheese( "cheddar" ), > > }); > > ExecutionResults bresults = ksession.execute( cmd ); > > That doesn’t compile, so I fixed it as follows: > > Command cmd = CommandFactory.newInsertElements( Arrays.asList( > new Cheese( "stilton" ), > new Cheese( "brie" ), > new Cheese( "cheddar" ) > )); > ExecutionResults bresults = ksession.execute( cmd ); > > This does now compile, but running it throws a ClassCastException: > java.lang.ClassCastException: java.util.ArrayList cannot be cast to > org.drools.runtime.ExecutionResults > > Taking a look through the Drools code, it would appear that Command has a > generic type, which in the case of an InsertElementsCommand is: > GenericCommand<Collection<FactHandle>> > > In turn, the execute command in StatelessKnowledgeSessionImpl casts its > result to that generic type: > public <T> T execute(Command<T> command) { > Object o = ((GenericCommand) command).execute( context ); > ... > return (T) o; > > So the ClassCastException is because the execute method returns an ArrayList > of FactHandle instead of an ExecutionResults. > > I’m assuming that I must have got the wrong end of the stick somewhere, so > what should I be doing to get an ExecutionResults from a stateless session, > which I can then query? > > Cheers, > > Steve _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users