[JBoss JIRA] Created: (JBAS-5205) AnnotationMetaDataDeployer attempts to load all dependencies
by Pete Muir (JIRA)
AnnotationMetaDataDeployer attempts to load all dependencies
------------------------------------------------------------
Key: JBAS-5205
URL: http://jira.jboss.com/jira/browse/JBAS-5205
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Environment: trunk friday 1st February 2008
Reporter: Pete Muir
Priority: Critical
org.jboss.deployers.spi.DeploymentException: Error during deploy: vfsfile:/C:/usr/apps/jboss/jboss-5
.0.0.r69477/server/defau
lt/deploy/embedded-console.war
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentExcept
ion.java:49)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:175)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.ja
va:853)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:794)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.
java:327)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:73
4)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:8
62)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:7
84)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:498)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:506)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileService
Bootstrap.java:246)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootst
rap.java:131)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:408)
at org.jboss.Main.boot(Main.java:208)
at org.jboss.Main$1.run(Main.java:534)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoClassDefFoundError: Lorg/drools/agent/RuleAgent;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
at java.lang.Class.getDeclaredFields(Class.java:1715)
at org.jboss.metadata.annotation.creator.AbstractComponentProcessor.processClass(AbstractCom
ponentProcessor.java:252
)
at org.jboss.metadata.annotation.creator.AbstractComponentProcessor.processClass(AbstractCom
ponentProcessor.java:202
)
at org.jboss.metadata.annotation.creator.AbstractComponentProcessor.process(AbstractComponen
tProcessor.java:143)
at org.jboss.metadata.annotation.creator.web.WebComponentProcessor.process(WebComponentProce
ssor.java:60)
at org.jboss.metadata.annotation.creator.web.WebComponentProcessor.process(WebComponentProce
ssor.java:42)
at org.jboss.metadata.annotation.creator.web.Web25MetaDataCreator.create(Web25MetaDataCreato
r.java:68)
at org.jboss.deployment.AnnotationMetaDataDeployer.processJBossWebMetaData(AnnotationMetaDat
aDeployer.java:222)
at org.jboss.deployment.AnnotationMetaDataDeployer.deploy(AnnotationMetaDataDeployer.java:17
1)
at org.jboss.deployment.AnnotationMetaDataDeployer.deploy(AnnotationMetaDataDeployer.java:90
)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169)
... 17 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months
[JBoss JIRA] Created: (JBRULES-1329) RuleBase.removeRule() prevents other rules from being applied
by James Sparrow (JIRA)
RuleBase.removeRule() prevents other rules from being applied
-------------------------------------------------------------
Key: JBRULES-1329
URL: http://jira.jboss.com/jira/browse/JBRULES-1329
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.3
Environment: JDK 1.6.0
Reporter: James Sparrow
After adding a package containing two rules and then removing one of the rules, the remaining rule is no longer activated when a matching fact is asserted. Following is a unit test displaying this behavior, along with its .drl file.
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import junit.framework.TestCase;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatelessSession;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.event.AfterActivationFiredEvent;
import org.drools.event.DefaultAgendaEventListener;
import org.drools.rule.Package;
import org.drools.rule.Rule;
public class DroolsRemoveRuleTest extends TestCase
{
/**
* Create a new RuleBase from a package containing two rules, "Hello" and
* "Goodbye". First verify both rules are applied as expected. Then remove
* the "Hello" rule and verify the "Hello" rule is no longer applied, but
* the "Goodbye" rule is applied. In Drools 4.0.3, the removal of the
* "Hello" rule causes the "Goodbye" rule to no longer be applied.
*/
public void testRemoveRule() throws Exception
{
Reader removeRuleSource = new InputStreamReader(getClass().getResourceAsStream("testRemoveRule.drl"));
Properties props = new Properties();
props.setProperty("drools.dialect.java.compiler", "JANINO");
PackageBuilderConfiguration cfg = new PackageBuilderConfiguration(props);
PackageBuilder packageBuilder = new PackageBuilder(cfg);
packageBuilder.addPackageFromDrl(removeRuleSource);
assertFalse(packageBuilder.hasErrors());
Package pkg = packageBuilder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
Message hello = new Message();
hello.setName("Chuck");
hello.setType(Type.HELLO);
Message goodbye = new Message();
goodbye.setName("Charles");
goodbye.setType(Type.GOODBYE);
StatelessSession session = ruleBase.newStatelessSession();
FiredRulesListener listener = new FiredRulesListener();
session.addEventListener(listener);
session.execute(hello);
assertEquals(1, listener.getFiredRules().size());
assertEquals("Hello", listener.getFiredRules().get(0).getName());
session = ruleBase.newStatelessSession();
listener = new FiredRulesListener();
session.addEventListener(listener);
session.execute(goodbye);
assertEquals(1, listener.getFiredRules().size());
assertEquals("Goodbye", listener.getFiredRules().get(0).getName());
ruleBase.removeRule(pkg.getName(), "Hello");
session = ruleBase.newStatelessSession();
listener = new FiredRulesListener();
session.addEventListener(listener);
session.execute(hello);
assertEquals(0, listener.getFiredRules().size());
session = ruleBase.newStatelessSession();
listener = new FiredRulesListener();
session.addEventListener(listener);
session.execute(goodbye);
// The following assertion currently fails
assertEquals(1, listener.getFiredRules().size());
assertEquals("Goodbye", listener.getFiredRules().get(0).getName());
}
public static class FiredRulesListener extends DefaultAgendaEventListener
{
List<Rule> firedRules = new ArrayList<Rule>();
public List<Rule> getFiredRules()
{
return this.firedRules;
}
@Override
public void afterActivationFired(AfterActivationFiredEvent event, WorkingMemory workingMemory)
{
Rule rule = event.getActivation().getRule();
this.firedRules.add(rule);
}
}
public static enum Type
{
HELLO, GOODBYE
};
public static class Message
{
private Type type = null;
private String name = null;
public Type getType()
{
return this.type;
}
public void setType(Type type)
{
this.type = type;
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
}
}
package test
import DroolsRemoveRuleTest.Message
import DroolsRemoveRuleTest.Type
rule "Hello"
dialect "java"
when
Message( type == Type.HELLO, name : name )
then
System.out.println("Hello " + name);
end
rule "Goodbye"
dialect "java"
when
Message( type == Type.GOODBYE, name : name )
then
System.out.println("Goodbye " + name);
end
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months
[JBoss JIRA] Created: (JGRP-638) Look at IP multicasting and IPv6
by Bela Ban (JIRA)
Look at IP multicasting and IPv6
--------------------------------
Key: JGRP-638
URL: http://jira.jboss.com/jira/browse/JGRP-638
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assigned To: Bela Ban
Priority: Minor
Fix For: 2.7
Attachments: SimpleMulticast.java
[Carlo DeWolf's email]
Bug 1:
Aha, in IPv6 mode the incorrect interface is chosen to send out packets.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4742177
So to actually get the right sender into the packet you must bind to the
address.
MultiSocket senderSocket = new MultiSocket(new
InetSocketAddress(sendFrom, 0));
Loopback must always be false. I'm not sure why, but if falls apart if
you set it to true. (Might be because of the above.)
senderSocket.setLoopback(false);
The receiving socket must be bound to INADDR_ANY (because of Windows):
receiverSocket = new MultiSocket(port);
Bug 2:
The receiver socket must join with an interface, because else the
packets sent from the sendSocket are immediately blocked by the
interface (not a member of the group).
receiverSocket.joinGroup(mcastaddr, netIf); // Note that port in
mcastaddr is ignored.
I think it's also possible to have the sendSocket join, but I'm done.
The effect here was that as long as nobody joins on the default
multicast interface, nobody receives packets. This would seldomly occur,
because there is always someone who joins the default interface.
I've attached by own multicast tester. Which works in every config
except on Windows with the counterfeit, doubtful, dubious, equivocal,
fake, false, fictitious, inaccurate, mythical, spurious,
unauthenticated, ungenuine, unsubstantiated, untrue, unverified, wrong
"MS TCP loopback" device.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months