[infinispan-issues] [JBoss JIRA] Created: (ISPN-771) org.infinispan.notifications.AbstractListenerImpl.listenersMap ViewChanged entries keep increasing during start/stop/start/stop cycle (AS application deploy/undeploy)

Scott Marlow (JIRA) jira-events at lists.jboss.org
Sun Nov 14 09:24:43 EST 2010


org.infinispan.notifications.AbstractListenerImpl.listenersMap ViewChanged entries keep increasing during start/stop/start/stop cycle (AS application deploy/undeploy)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: ISPN-771
                 URL: https://jira.jboss.org/browse/ISPN-771
             Project: Infinispan
          Issue Type: Bug
            Reporter: Scott Marlow
            Assignee: Manik Surtani



org.infinispan.notifications.AbstractListenerImpl.listenersMap has a org.infinispan.notifications.cachemanagerlistener.annotation.ViewChanged that is 
always increasing number of entries (per deploy/undeploy with AS)
[0]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[1]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[2]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[3]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[4]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[N]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target = org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
keeps increasing until we run out of memory

Looks like we miss removing these because:

org.infinispan.notifications.AbstractListenerImpl.removeListenerInvocation

   private void removeListenerInvocation(Class<? extends Annotation> annotation, Object listener) {
      if (listener == null) return;
      List<ListenerInvocation> l = getListenerCollectionForAnnotation(annotation);
      Set<Object> markedForRemoval = new HashSet<Object>();
      for (ListenerInvocation li : l) {
         if (listener.equals(li.target)) markedForRemoval.add(li);  // NEVER EQUALS
      }
      l.removeAll(markedForRemoval);
   }

listener = org.jboss.web.tomcat.service.session.distributedcache.ispn.DefaultLockManagerSource at 1d2d2db8

0:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 2eedd32f
1:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 18b9ae20
2:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 226d7ba7
... same li.target class for all entries, so they don't get removed


class org.jboss.web.tomcat.service.session.distributedcache.ispn.DefaultLockManagerSource implements LockManagerSource

class org.infinispan.transaction.xa.TransactionTable.StaleTransactionCleanup is a pojo with onViewChange method.


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the infinispan-issues mailing list