[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
13 years, 11 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
13 years, 11 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
13 years, 11 months
[JBoss JIRA] Created: (JBCLUSTER-269) AbstractJBossCacheService getSessionIds() misses dead backup regions
by Brian Stansberry (JIRA)
AbstractJBossCacheService getSessionIds() misses dead backup regions
--------------------------------------------------------------------
Key: JBCLUSTER-269
URL: https://jira.jboss.org/jira/browse/JBCLUSTER-269
Project: JBoss Clustering
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: HA-Server-Cache-JBC
Affects Versions: HA-Server-Cache-JBC 2.1.2.GA, HA-Server-Cache-JBC 2.0.1.GA , HA-Server-Cache-JBC 2.2.0.Final
Reporter: Brian Stansberry
Assignee: Brian Stansberry
The algorithm for searching for session ids does not take into account that the Fqn for buddies whose name ends with :DEAD (i.e. buddies that JBC knows are no longer in the group) include an extra element. Effect is getSessionIds() does not return ids for sessions stored under such trees.
Effect of this is when a session manager starts, it gets an incomplete listing of session ids. Affects of this are:
1) Some incorrect session count statistics through the JMX interface.
2) The sessions that are missed will not be passivated or expired by the background cleanup task.
Such sessions will still be available if accessed by a user request.
Fix is to properly search the dead buddy backup trees.
--
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
13 years, 11 months