On Wed, Nov 4, 2009 at 1:33 AM, Andreas Veithen <andreas.veit...@gmail.com>wrote:
> Amila, > > Can you check this again? If the init method is called twice on the > same instance, then this would be a huge bug (because it would cause > an important resource leak). you can do a simple send and receive invocation with mail transport to check this. this method of ListenerManager causes problem. public synchronized void addListener(TransportInDescription trsIn, boolean started) throws AxisFault { configctx.getAxisConfiguration().addTransportIn(trsIn); TransportListener transportListener = trsIn.getReceiver(); if (transportListener != null) { if (!started) { transportListener.init(configctx, trsIn); transportListener.start(); if (shutdownHookThread == null && isShutdownHookRequired()) { shutdownHookThread = new ListenerManagerShutdownThread(this); Runtime.getRuntime().addShutdownHook(shutdownHookThread); } stopped = false; } startedTransports.put(trsIn.getName(), transportListener); } } if the listener is not started it calls init as well. I did not try removing it since it might cause some other problem. On the other hand, if the init method is > called a second time on a different instance, then the test > mbeanSupport == null will have no effect since mbeanSupport is an > instance attribute. I commit since it has an effect :). It calls on the same object. thanks, Amila. > Note that if two instances of the same transport > (extending AbstractTransport) run in the same VM, there is indeed an > issue with JMX because both instances try to bind an MBean to the same > name. This however only results in a warning. > > Andreas > > On Tue, Nov 3, 2009 at 05:05, <ami...@apache.org> wrote: > > Author: amilas > > Date: Tue Nov 3 04:05:45 2009 > > New Revision: 832297 > > > > URL: http://svn.apache.org/viewvc?rev=832297&view=rev > > Log: > > register an mbean only if it is not call once. when doing an in out > operaton with mail > > transport gives an exception at client side since it causes call init > method twice. > > > > Modified: > > > > webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java > > > > Modified: > webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java > > URL: > http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java?rev=832297&r1=832296&r2=832297&view=diff > > > ============================================================================== > > --- > webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java > (original) > > +++ > webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java > Tue Nov 3 04:05:45 2009 > > @@ -129,8 +129,11 @@ > > }); > > > > // register with JMX > > - mbeanSupport = new TransportMBeanSupport(this, > getTransportName()); > > - mbeanSupport.register(); > > + if (mbeanSupport == null) { > > + mbeanSupport = new TransportMBeanSupport(this, > getTransportName()); > > + mbeanSupport.register(); > > + } > > + > > } > > > > public void destroy() { > > > > > > > -- Amila Suriarachchi WSO2 Inc. blog: http://amilachinthaka.blogspot.com/