[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/transporter ...

Tom Elrod tom.elrod at jboss.com
Mon Aug 14 01:14:00 EDT 2006


  User: telrod  
  Date: 06/08/14 01:14:00

  Modified:    src/main/org/jboss/remoting/transporter 
                        TransporterHandler.java
  Log:
  JBREM-579 - fixed transporters not converting primitive types for reflection call on the target pojo.
  
  Revision  Changes    Path
  1.4       +26 -3     JBossRemoting/src/main/org/jboss/remoting/transporter/TransporterHandler.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: TransporterHandler.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/transporter/TransporterHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- TransporterHandler.java	30 Dec 2005 05:26:38 -0000	1.3
  +++ TransporterHandler.java	14 Aug 2006 05:14:00 -0000	1.4
  @@ -21,14 +21,15 @@
   */
   package org.jboss.remoting.transporter;
   
  -import java.lang.reflect.Method;
  -import javax.management.MBeanServer;
   import org.jboss.remoting.InvocationRequest;
   import org.jboss.remoting.ServerInvocationHandler;
   import org.jboss.remoting.ServerInvoker;
   import org.jboss.remoting.callback.InvokerCallbackHandler;
   import org.jboss.remoting.invocation.NameBasedInvocation;
   
  +import javax.management.MBeanServer;
  +import java.lang.reflect.Method;
  +
   /**
    * Simple handler that uses reflection to make calls on target POJO (as supplied in the constructor)
    * when receive invocation requests.
  @@ -66,8 +67,16 @@
         Class[] classSig = new Class[sig.length];
         for(int x = 0; x < sig.length; x++)
         {
  +         Class signature = getPrimitiveType(sig[x]);
  +         if(signature != null)
  +         {
  +            classSig[x] = signature;
  +         }
  +         else
  +         {
            classSig[x] = Class.forName(sig[x]);
         }
  +      }
   
         // use reflection to make the call
         Method method = targetPOJO.getClass().getMethod(methodName, classSig);
  @@ -76,6 +85,20 @@
         return responseObject;
      }
   
  +   private Class getPrimitiveType(String name)
  +   {
  +      if (name.equals("byte")) return Byte.TYPE;
  +      if (name.equals("short")) return Short.TYPE;
  +      if (name.equals("int")) return Integer.TYPE;
  +      if (name.equals("long")) return Long.TYPE;
  +      if (name.equals("char")) return Character.TYPE;
  +      if (name.equals("float")) return Float.TYPE;
  +      if (name.equals("double")) return Double.TYPE;
  +      if (name.equals("boolean")) return Boolean.TYPE;
  +      if (name.equals("void")) return Void.TYPE;
  +      return null;
  +   }
  +
   
      /**
       * set the mbean server that the handler can reference
  
  
  



More information about the jboss-cvs-commits mailing list