[JBoss JIRA] Created: (JBRULES-1982) NullPointerException when executing rule sample
by Hrvoje Habjanic (JIRA)
NullPointerException when executing rule sample
-----------------------------------------------
Key: JBRULES-1982
URL: https://jira.jboss.org/jira/browse/JBRULES-1982
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 5.0.0.M5
Environment: Springsource DM Server v.1.0.1, all jar-s bundled together in single jar file, then converted to bundle using bnd utility
Reporter: Hrvoje Habjanic
Assignee: Mark Proctor
Hi!
I have somewhat non-standard running environment - springsource sever. Because spring requires everything to be provided as bundle, i created drools bundle. I unpacked (extract) all drools jar-s except drools-clips, drools-jsr94 and drools-process-enterprise into single directory, and then created one big jar. Then i converted this jar using bnd utility to bundle. Because springsource uses older antlr, i did copy antlr-runtime-3.1.1 into bundle, to classes inside use this version.
In eclipse i created new project, and created helloworld sample. I did manage successfully to execute RuleFlowTest! But, DroolsTest fails with:
[2009-02-25 16:43:19.892] server-dm-4 System.err E java.lang.NullPointerException
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.rule.EvalCondition.createContext(EvalCondition.java:110)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.reteoo.EvalConditionNode.createMemory(EvalConditionNode.java:235)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.common.ConcurrentNodeMemories.createNodeMemory(ConcurrentNodeMemories.java:96)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.common.ConcurrentNodeMemories.getNodeMemory(ConcurrentNodeMemories.java:75)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.common.AbstractWorkingMemory.getNodeMemory(AbstractWorkingMemory.java:1441)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)
[2009-02-25 16:43:19.893] server-dm-4 System.err E at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:120)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:81)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:184)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.Rete.assertObject(Rete.java:111)
[2009-02-25 16:43:19.894] server-dm-4 System.err E at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:212)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.execute(ReteooWorkingMemory.java:275)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1404)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1011)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:974)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:744)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:183)
[2009-02-25 16:43:19.895] server-dm-4 System.err E at com.sample.DroolsTest.main(DroolsTest.java:30)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at com.sample.Runner.init(Runner.java:16)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at java.lang.reflect.Method.invoke(Method.java:597)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
[2009-02-25 16:43:19.896] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at java.security.AccessController.doPrivileged(Native Method)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
[2009-02-25 16:43:19.897] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:288)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:145)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at com.springsource.server.kernel.dm.ContextPropagatingTaskExecutor$2.run(ContextPropagatingTaskExecutor.java:82)
[2009-02-25 16:43:19.898] server-dm-4 System.err E at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[2009-02-25 16:43:19.899] server-dm-4 System.err E at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[2009-02-25 16:43:19.899] server-dm-4 System.err E at java.lang.Thread.run(Thread.java:619)
Drools file which is executed is:
package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
when
m : Message( status == Message.HELLO, message : message )
then
System.out.println( "Ssssss" );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
rule "GoodBye"
when
Message( status == Message.GOODBYE, message : message )
then
System.out.println( message );
end
And DroolsTest java is also unmodified:
package com.sample;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
/**
* This is a sample class to launch a rule.
*/
public class DroolsTest {
public static final void main(String[] args) {
try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// go !
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ksession.insert(message);
ksession.fireAllRules();
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}
public static class Message {
public static final int HELLO = 0;
public static final int GOODBYE = 1;
private String message;
private int status;
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public int getStatus() {
return this.status;
}
public void setStatus(int status) {
this.status = status;
}
}
}
I did try to browse trough source and try to find out what the problem could be, but at no avail.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 2 months
[JBoss JIRA] Created: (JBPROFILE-6) ConcurrentModificationException in getDeploymentNamesForType()
by Ondrej Žižka (JIRA)
ConcurrentModificationException in getDeploymentNamesForType()
---------------------------------------------------------------
Key: JBPROFILE-6
URL: https://jira.jboss.org/jira/browse/JBPROFILE-6
Project: JBoss Profile Service
Issue Type: Bug
Environment: EWP 5.0.1 CR2
Reporter: Ondrej Žižka
Assignee: Emanuel Muckenhuber
05:26:26,652 INFO [DeployHandler] Stop, [vfszip:/home/brq/ozizka/work/JON/jboss-ewp-5.0/server/default/deploy/EarWithWar-Counter.ear/]
05:26:26,656 INFO [TomcatDeployment] undeploy, ctxPath=/EarWithWar-Counter-war
05:26:26,869 INFO [DeployHandler] End stop, [vfszip:/home/brq/ozizka/work/JON/jboss-ewp-5.0/server/default/deploy/EarWithWar-Counter.ear/]
05:26:26,870 INFO [DeployHandler] Begin start, [vfszip:/home/brq/ozizka/work/JON/jboss-ewp-5.0/server/default/deploy/EarWithWar-Counter.ear/]
05:26:27,282 INFO [TomcatDeployment] deploy, ctxPath=/EarWithWar-Counter-war
05:26:27,382 INFO [DeployHandler] End start, [vfszip:/home/brq/ozizka/work/JON/jboss-ewp-5.0/server/default/deploy/EarWithWar-Counter.ear/]
05:26:29,016 ERROR [StandaloneManagedDeploymentDiscoveryComponent] Unable to get deployment for type ejb2x
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$ValueIterator.next(HashMap.java:822)
at org.jboss.profileservice.management.ManagementViewImpl.getDeploymentNamesForType(ManagementViewImpl.java:1104)
at org.rhq.plugins.jbossas5.AbstractManagedDeploymentDiscoveryComponent.discoverResources(AbstractManagedDeploymentDiscoveryComponent.java:69)
at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:266)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
05:26:29,017 WARN [InventoryManager] Failure during discovery for [EJB2 JAR] Resources - failed after 2809 ms.
java.lang.Exception: Discovery component invocation failed.
at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:270)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at org.rhq.plugins.jbossas5.AbstractManagedDeploymentDiscoveryComponent.discoverResources(AbstractManagedDeploymentDiscoveryComponent.java:76)
at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:266)
... 5 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 2 months
[JBoss JIRA] Created: (JBREM-1218) ConnectionValidator.isValid should be volatile
by Ron Sigal (JIRA)
ConnectionValidator.isValid should be volatile
----------------------------------------------
Key: JBREM-1218
URL: https://jira.jboss.org/jira/browse/JBREM-1218
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.5.2.SP2 (Flounder), 2.2.3.SP2
Reporter: Ron Sigal
Assignee: Ron Sigal
Fix For: 2.5.2.SP3 (Flounder), 2.2.3.SP3
org.jboss.remoting.ConnectionValidator's variable isValid is set in run(), which runs in one thread, and is read in ConnectionValidator.WaitOnConnectionCheckTimerTask.run(), which runs in another thread. After ConnectionValidator.run() sets isValid, is calls notifyAll() on a lock, which wakes up WaitOnConnectionCheckTimerTask.run(), which then looks at the value of isValid. It's possible for the most recent value of isValid to not yet be visible to WaitOnConnectionCheckTimerTask.run().
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 2 months