Oh by the way if someone feels heroic today here is the code from
JRMPInvoker

I believe the line that is commented out on the new ObjectName should either
be the one (with cache at the JMX level solution 2 discussed) or should do a
look up on the Registry but with the String as opposed to a int like below
(solution 1 discussed)

(BTW I believe that with the advent of UCL the first line on cl is
useless...)

org.jboss.invocation.jrmp.server.JRMPInvoker

public Object invoke(Invocation invocation)  throws Exception {

      ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
      try
      {
         // Deserialize the transaction if it is there
         invocation.setTransaction(importTPC(((MarshalledInvocation)
invocation).getTransactionPropagationContext()));

         // Extract the ObjectName, the rest is still marshalled
         // ObjectName mbean = new ObjectName((String)
invocation.getContainer());

         // This is bad it should at least be using a sub set of the
Registry
         // store a map of these names under a specific entry
(lookup("ObjecNames")) and look on
         // that subset FIXME it will speed up lookup times
         ObjectName mbean = (ObjectName) Registry.lookup((Integer)
invocation.getObjectName());

         // The cl on the thread should be set in another interceptor
         Object obj = server.invoke(mbean,
                                    "",
                                    new Object[] {invocation},
                                    Invocation.INVOKE_SIGNATURE);

         return new MarshalledObject(obj);
      }
      catch (Exception e)



_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to