[rules-users] NPE while creating new knowledge session on IBM JVM (Drools 5.0.1)

Przemysław Różycki p.rozycki at amg.net.pl
Tue Sep 8 09:34:09 EDT 2009


Hello,

I experienced some problem while working on IBM WebSphere 7.0.0.3 (64 
bit) and IBM JVM V9 (1.6.0) with Drools 5.0.1.
To be precise, I get NPE from inside 
java.util.concurrent.CopyOnWriteArrayList object. The problem repeats 
randomly and I didn't detect an exact factor that causes it. For me, it 
looks like an issue in JVM, but I'd like to know if anyone here 
experienced it.
KnowledgeBase has been deserialized from DroolsObjectInputStream before 
creating session.

The exact stack trace goes here:

2009-09-03 17:14:46,487 [SimpleAsyncTaskExecutor-2] ERROR 
amg.exion.statements.StatementContentManager  - Exception thrown while 
generating marketing info:
java.lang.NullPointerException
         at 
java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:273)
         at 
java.util.concurrent.CopyOnWriteArrayList.add(CopyOnWriteArrayList.java:393)
         at 
org.drools.event.AbstractEventSupport.addEventListener(AbstractEventSupport.java:52)
         at 
org.drools.common.AbstractRuleBase.addEventListener(AbstractRuleBase.java:846)
         at 
org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:332)
         at 
org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:306)
         at 
org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:151)
         at 
org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:134)
         at 
amg.exion.statements.internal.processor.impl.DroolsSessionGenericProcessorImpl.process(DroolsSessionGenericProcessorImpl.java:54)
         at 
amg.exion.statements.internal.processor.impl.DroolsSessionStatementProcessorImpl.processStatement(DroolsSessionStatementProcessorImpl.java:72)
         at 
amg.exion.statements.StatementContentManager.process(StatementContentManager.java:272)
         at 
amg.exion.statements.StatementContentManager.process(StatementContentManager.java:80)
         at 
org.springframework.batch.core.step.item.SimpleChunkProcessor.doProcess(SimpleChunkProcessor.java:118)
         at 
org.springframework.batch.core.step.item.SimpleChunkProcessor.transform(SimpleChunkProcessor.java:260)
         at 
org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:171)
         at 
org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:70)
         at 
org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:268)
         at 
org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81)
         at 
org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:367)
         at 
org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
         at 
org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:143)
         at 
org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:242)
         at 
org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:198)
         at 
org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:348)
         at 
org.springframework.batch.core.job.flow.FlowJob.access$0(FlowJob.java:1)
         at 
org.springframework.batch.core.job.flow.FlowJob$JobFlowExecutor.executeStep(FlowJob.java:135)
         at 
org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60)
         at 
org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:144)
         at 
org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:124)
         at 
org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:103)
         at 
org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:250)
         at 
org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:110)
         at 
org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
         at 
org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:105)
         at 
amg.exion.statements.internal.StatementsInternalImpl$1.run(StatementsInternalImpl.java:100)
         at java.lang.Thread.run(Thread.java:735)

Best regards,
-- 
Przemysław Różycki
IT Architect
AMG.net, A Bull Group Company
ul. Łąkowa 29
90-554 Łódź, Poland
www.amg.net.pl



More information about the rules-users mailing list