else if ("getExceptionListener".equals(name)) { return mi.getMetaData(JMSAdvisor.JMS, JMSAdvisor.EXCEPTION_LISTENER); } else if ("setExceptionListener".equals(name)) { JMSInvocationHandler thisHandler = ((JMSMethodInvocation)invocation).getHandler(); thisHandler.getMetaData() .addMetaData(JMSAdvisor.JMS, JMSAdvisor.EXCEPTION_LISTENER, mi.getArguments()[0], PayloadKey.AS_IS); return null; }
   public Object invoke(Invocation invocation) throws Throwable   {      if (invocation instanceof MethodInvocation)      {         MethodInvocation mi = (MethodInvocation)invocation;         Method m = mi.getMethod();         String name = m.getName();         if ("getClientID".equals(name))         {            return mi.getMetaData(JMSAdvisor.JMS, JMSAdvisor.CLIENT_ID);         }         else if ("setClientID".equals(name))         {            throw new WrapperException(new IllegalStateException("ClientID already set"));         }      }      return invocation.invokeNext();   }