[JBoss JIRA] Created: (JBRULES-1279) Memory leak in release 4.0.2
by Paul Jackson (JIRA)
Memory leak in release 4.0.2
----------------------------
Key: JBRULES-1279
URL: http://jira.jboss.com/jira/browse/JBRULES-1279
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.2
Environment: tested with windows jdk5 and jdk6
Reporter: Paul Jackson
Assigned To: Mark Proctor
I have observed memory leaks in our application after upgrading to the latest 4.0.2 release. I have replicated the problem with the sample code below:
DroolsTest.java
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
public class DroolsTest {
public void run() throws Exception {
RuleBase ruleBase = createRuleBase();
long counter = 0;
while(true) {
StatefulSession session = ruleBase.newStatefulSession(false);
if(++counter % 100 == 0) {
System.out.println(counter);
}
session.dispose();
}
}
private RuleBase createRuleBase() throws Exception {
Reader source = new InputStreamReader( this.getClass().getResourceAsStream( "HelloWorld.drl" ) );
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( source );
if ( builder.hasErrors() ) {
System.out.println( builder.getErrors().toString() );
throw new RuntimeException( "Unable to compile \"HelloWorld.drl\".");
}
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
return ruleBase;
}
public static void main(String[] args) throws Exception {
new DroolsTest().run();
}
}
HelloWorld.drl
#list any import classes here.
#declare any global variables here
rule "Your First Rule"
when
#conditions
then
#actions
end
rule "Your Second Rule"
#include attributes such as "salience" here...
when
#conditions
then
#actions
end
When I run this with release 4.0.1 I have to manually break the program to get it to stop.
When I run with release 4.0.2 it reaches about 14000 iterations before crashing with an out of memory error.
--
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
17 years, 1 month
[JBoss JIRA] Assigned: (JBCACHE-611) Optimize modification list before replication
by Manik Surtani (JIRA)
[ http://jira.jboss.com/jira/browse/JBCACHE-611?page=all ]
Manik Surtani reassigned JBCACHE-611:
-------------------------------------
Assignee: Mircea Markus (was: Manik Surtani)
> Optimize modification list before replication
> ---------------------------------------------
>
> Key: JBCACHE-611
> URL: http://jira.jboss.com/jira/browse/JBCACHE-611
> Project: JBoss Cache
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Replication
> Affects Versions: 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4beta, 1.3.0.GA, 1.2.4, 1.2.4SP1, 1.2.4SP2, 1.3.0.SP1
> Reporter: Bela Ban
> Assigned To: Mircea Markus
> Fix For: 2.2.0.GA
>
>
> When we use transactions, all modifications (PUT,REMOVE) are bundled (keyed by TX-ID) and replicated on TX commit.
> This is very inefficient if (a) we have many modifications in the TX scope and (b) if the modifications touched the same parts of the cache over and over again.
> We need to optimize the modification list before replication. (This maybe enabled/disabled via an attribute).
> Example: put(a/b/c) --> put(/a/b/c/d) --> remove(/a/b/c) --> put(a/b/c) should simply result in a PUT modification with *all* of the attributes of /a/b/c, so 1 modification instead of 4 !
> A general algorithm might be:
> - Maintain a dirty-node map Map<FQN, status>) (= "dirty", "removed")
> - On a put(FQN): add or set FQN to the map, set status="dirty"
> - On a remove(FQN): set FQN in map to "removed", needs to mark all subnodes as well, so maybe the dirty-node map needs to be
> a tree...
> We might get rid of *constructing the modification lists during modifications*, and only populate the dirty-node map. The modification list could only be created at *TX commit time*, from the dirty-node map, e.g in the above example: PUT(a/b/c).
> This only applies to pessimistic locking (does it ? can't we optimize optimistic locking in similar ways ?)
--
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
17 years, 1 month
[JBoss JIRA] Created: (JBCACHE-1212) ClassNotFoundException when connecting to exisiting cache
by Carl Shelbourne (JIRA)
ClassNotFoundException when connecting to exisiting cache
---------------------------------------------------------
Key: JBCACHE-1212
URL: http://jira.jboss.com/jira/browse/JBCACHE-1212
Project: JBoss Cache
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.0.0.GA
Environment: Java 1.6.0_02; dependencies according to POM, except JGroups 2.5.0GA; Win XP SP2 fully patched
Reporter: Carl Shelbourne
Assigned To: Manik Surtani
When running internal tests for our application we spotted the following exceptions.
The method within our code, _remove() provides a simple check before removing from the cache:
...
protected void _remove( final Fqn fqn ) throws CacheException
{
if ( getTreeCache().getRoot().hasChild( fqn ) )
{
getTreeCache().removeNode( fqn );
getFqnList().remove( fqn );
}
}
...
All the code appears to work ok, with the exception of when a we try to connect to an existing cache, from observations, once the cache is started we seem to get this exception. It is difficult to establish the exact cause, but it seems that a remove has been called before all the classes are instantiated??? Not sure, sorry.
Exception in thread "Thread-166" java.lang.RuntimeException: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3951)
at org.jboss.cache.CacheImpl.remove(CacheImpl.java:1637)
at org.jboss.cache.CacheImpl.removeNode(CacheImpl.java:4376)
at uk.org.netvu.common.edp.db.cache.CachedDBTable._remove(CachedDBTable.java:235)
at uk.org.netvu.common.edp.db.cache.MutableAlarmTable.remove(MutableAlarmTable.java:52)
at uk.org.netvu.edp2.db.helpers.Edp2DbAlarmActionHelper.removeSessionFromCache(Edp2DbAlarmActionHelper.java:75)
at uk.org.netvu.edp2.db.Edp2DbManager$RemoveAlarmSessionFromCacheTask$1.run(Edp2DbManager.java:1835)
Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:58)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:537)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStreamRegionBased(CacheMarshaller200.java:191)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:142)
at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:154)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:544)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:736)
at org.jgroups.JChannel.up(JChannel.java:1063)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:325)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:406)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:255)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:197)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:722)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:569)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:246)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:596)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
at org.jgroups.protocols.FD.up(FD.java:322)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:298)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:220)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1486)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1440)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-167" java.lang.RuntimeException: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3951)
at org.jboss.cache.CacheImpl.remove(CacheImpl.java:1637)
at org.jboss.cache.CacheImpl.removeNode(CacheImpl.java:4376)
at uk.org.netvu.common.edp.db.cache.CachedDBTable._remove(CachedDBTable.java:235)
at uk.org.netvu.common.edp.db.cache.MutableAlarmTable.remove(MutableAlarmTable.java:52)
at uk.org.netvu.edp2.db.helpers.Edp2DbAlarmActionHelper.removeSessionFromCache(Edp2DbAlarmActionHelper.java:75)
at uk.org.netvu.edp2.db.Edp2DbManager$RemoveAlarmSessionFromCacheTask$1.run(Edp2DbManager.java:1835)
Exception in thread "Thread-168" Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:58)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:537)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStreamRegionBased(CacheMarshaller200.java:191)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:142)
at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:154)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:544)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:736)
at org.jgroups.JChannel.up(JChannel.java:1063)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:325)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:406)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:255)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:197)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:722)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:569)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:246)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:596)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
at org.jgroups.protocols.FD.up(FD.java:322)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:298)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:220)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1486)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1440)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
java.lang.RuntimeException: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3951)
at org.jboss.cache.CacheImpl.remove(CacheImpl.java:1637)
at org.jboss.cache.CacheImpl.removeNode(CacheImpl.java:4376)
at uk.org.netvu.common.edp.db.cache.CachedDBTable._remove(CachedDBTable.java:235)
at uk.org.netvu.common.edp.db.cache.MutableAlarmTable.remove(MutableAlarmTable.java:52)
at uk.org.netvu.edp2.db.helpers.Edp2DbAlarmActionHelper.removeSessionFromCache(Edp2DbAlarmActionHelper.java:75)
at uk.org.netvu.edp2.db.Edp2DbManager$RemoveAlarmSessionFromCacheTask$1.run(Edp2DbManager.java:1835)
Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:58)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:537)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStreamRegionBased(CacheMarshaller200.java:191)
at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:142)
at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:154)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:544)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:736)
at org.jgroups.JChannel.up(JChannel.java:1063)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:325)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:406)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:255)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:197)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:722)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:569)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:246)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:596)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
at org.jgroups.protocols.FD.up(FD.java:322)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:298)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:220)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1486)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1440)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
--
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
17 years, 1 month
[JBoss JIRA] Created: (JBCACHE-1213) Exception thrown when connecting to a pre-exisiting cache
by Carl Shelbourne (JIRA)
Exception thrown when connecting to a pre-exisiting cache
---------------------------------------------------------
Key: JBCACHE-1213
URL: http://jira.jboss.com/jira/browse/JBCACHE-1213
Project: JBoss Cache
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Replication
Affects Versions: 2.0.0.GA
Environment: JBoss cache 2.0.0GA; Dependancies according to POM excluding JGroups, using JGroups 2.5.0GA; WinXP SP2. Javba 1.6.0_02
Reporter: Carl Shelbourne
Assigned To: Manik Surtani
Priority: Minor
When attempting to connect to an existing cache, the following exceptions are thrown. The exception appears to be thrown before the cache state has transferred to started from either created or starting. This exception is only seen once we have connected to a cache, disconnected from the cache, then subsequently reconnected re-using the same Cache instance object. When the client disconnects it call Cache.stop().
The following method is used to get the cache:
private Cache getTreeCache()
{
if ( _treeCache != null )
{
if ( _treeCache.getCacheStatus() == CacheStatus.DESTROYED )
{
_treeCache.create();
_treeCache.start();
}
else if ( _treeCache.getCacheStatus() == CacheStatus.CREATED )
{
_treeCache.start();
}
}
return _treeCache;
}
And we call this to close the cache once the client has finished with it. Please note other clients will most probably still be connected to the cache ensuring the cache state is maintained
public void destroy()
{
if ( _treeCache != null )
{
_treeCache.stop();
_treeCache.destroy();
}
}
the cache is initially create with:
...
CacheFactory factory = DefaultCacheFactory.getInstance();
...
Cache cache = factory.createCache( config, false );
...
Exception on second and subsequent attempts to connect to cache:
WARN [Incoming Thread,192.168.106.139:1827] (CacheImpl.java:2866:org.jboss.cache.CacheImpl:_replicate) - replication failure with method_call MethodName: _remove; MethodIdInteger: 5; Args: (null, /alarm/6834, true) exception
java.lang.IllegalStateException: Cache not in STARTED state!
at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3929)
at org.jboss.cache.CacheImpl._replicate(CacheImpl.java:2853)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jgroups.blocks.MethodCall.invoke(MethodCall.java:330)
at org.jboss.cache.marshall.InactiveRegionAwareRpcDispatcher.handle(InactiveRegionAwareRpcDispatcher.java:77)
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:624)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:533)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:736)
at org.jgroups.JChannel.up(JChannel.java:1063)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:325)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:406)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:255)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:197)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:722)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:263)
at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:720)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:546)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
at org.jgroups.protocols.FD.up(FD.java:322)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:298)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:220)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1486)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1440)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
--
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
17 years, 1 month
[JBoss JIRA] Created: (JBAS-4958) ActivationConfigMetaData is not merged correctly in the new metadata
by Adrian Brock (JIRA)
ActivationConfigMetaData is not merged correctly in the new metadata
--------------------------------------------------------------------
Key: JBAS-4958
URL: http://jira.jboss.com/jira/browse/JBAS-4958
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Adrian Brock
Fix For: JBossAS-5.0.0.Beta3
In JBossMessageDrivenMetaData it is merging the activation-config-propertys between ejb-jar.xml
and jboss.xml by simply checking whether the jboss.xml has any and using that in preference to the ejb-jar.xml
In fact, it always has them since it is initialized on field
/** The activation config */
private ActivationConfigMetaData activationConfig = new ActivationConfigMetaData();
JBossMessageDrivenBeanMetaData joverride = (JBossMessageDrivenBeanMetaData) override;
MessageDrivenBeanMetaData soriginal = (MessageDrivenBeanMetaData) original;
...
// activationConfig
if(joverride != null && joverride.activationConfig != null)
activationConfig = joverride.activationConfig;
else if(soriginal != null && soriginal.getActivationConfig() != null)
activationConfig = soriginal.getActivationConfig();
The joverride.activationConfig is always not null!
Instead, what it needs to do is merge on per property basis.
i.e. take all the properties from ejb-jar.xml and jboss.xml favouring jboss.xml if there is a duplicate property name.
Because of this, it is currently impossible to define an activation-config-property in ejb-jar.xml unless there is no jboss.xml
--
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
17 years, 1 month