User: danch   
  Date: 01/05/30 16:00:42

  Modified:    src/main/org/jboss/ejb/plugins/jaws/jdbc JDBCCommand.java
  Log:
  Fixed bug #424059 CMP field of type Object is broken
  
  Revision  Changes    Path
  1.31      +27 -23    jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java
  
  Index: JDBCCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- JDBCCommand.java  2001/03/26 15:19:36     1.30
  +++ JDBCCommand.java  2001/05/30 23:00:42     1.31
  @@ -57,7 +57,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dirk Zimmermann</a>
  - * @version $Revision: 1.30 $
  + * @version $Revision: 1.31 $
    */
   public abstract class JDBCCommand
   {
  @@ -405,7 +405,7 @@
           if(result == null)
               return null;
   
  -        if(destination.isAssignableFrom(result.getClass()))
  +        if(destination.isAssignableFrom(result.getClass()) && 
!result.getClass().equals(MarshalledObject.class) )
               return result;
           else if(debug)
               log.debug("Got a "+result.getClass().getName()+": '"+result+"' while 
looking for a "+destination.getName());
  @@ -455,28 +455,32 @@
                                // ejb-reference: get the object back from the handle
                                if (result instanceof Handle) result = 
((Handle)result).getEJBObject();
   
  -                if(!destination.isAssignableFrom(result.getClass())) {
  -                    boolean found = false;
  -                    if(destination.isPrimitive()) {
  -                        if((destination.equals(Byte.TYPE) && result instanceof 
Byte) ||
  -                           (destination.equals(Short.TYPE) && result instanceof 
Short) ||
  -                           (destination.equals(Character.TYPE) && result instanceof 
Character) ||
  -                           (destination.equals(Boolean.TYPE) && result instanceof 
Boolean) ||
  -                           (destination.equals(Integer.TYPE) && result instanceof 
Integer) ||
  -                           (destination.equals(Long.TYPE) && result instanceof 
Long) ||
  -                           (destination.equals(Float.TYPE) && result instanceof 
Float) ||
  -                           (destination.equals(Double.TYPE) && result instanceof 
Double)
  -                          ) {
  -                            found = true;
  -                        }
  -                    }
  -                    if(!found) {
  -                        log.debug("Unable to load a ResultSet column into a 
variable of type '"+destination.getName()+"' (got a "+result.getClass().getName()+")");
  -                        result = null;
  -                    }
  -                }
  +            // is this a marshalled object that we stuck in earlier?
  +            if (result instanceof MarshalledObject && 
!destination.equals(MarshalledObject.class)) 
  +                result = ((MarshalledObject)result).get();
  +            
  +             if(!destination.isAssignableFrom(result.getClass())) {
  +                 boolean found = false;
  +                 if(destination.isPrimitive()) {
  +                     if((destination.equals(Byte.TYPE) && result instanceof Byte) ||
  +                        (destination.equals(Short.TYPE) && result instanceof Short) 
||
  +                        (destination.equals(Character.TYPE) && result instanceof 
Character) ||
  +                        (destination.equals(Boolean.TYPE) && result instanceof 
Boolean) ||
  +                        (destination.equals(Integer.TYPE) && result instanceof 
Integer) ||
  +                        (destination.equals(Long.TYPE) && result instanceof Long) ||
  +                        (destination.equals(Float.TYPE) && result instanceof Float) 
||
  +                        (destination.equals(Double.TYPE) && result instanceof 
Double)
  +                       ) {
  +                         found = true;
  +                     }
  +                 }
  +                 if(!found) {
  +                     log.debug("Unable to load a ResultSet column into a variable 
of type '"+destination.getName()+"' (got a "+result.getClass().getName()+")");
  +                     result = null;
  +                 }
  +             }
   
  -                ois.close();
  +             ois.close();
                        } catch (RemoteException e) {
                                throw new SQLException("Unable to load EJBObject back 
from Handle: " +e);
               } catch (IOException e) {
  
  
  

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

Reply via email to