Author: lektran
Date: Fri Jan 15 21:43:56 2010
New Revision: 899825

URL: http://svn.apache.org/viewvc?rev=899825&view=rev
Log:
Allow byte[] and ByteBuffer to be used to set a Blob typed GenericEntity fields 
without warnings

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java?rev=899825&r1=899824&r2=899825&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java 
(original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java Fri 
Jan 15 21:43:56 2010
@@ -21,6 +21,7 @@
 import java.io.PrintWriter;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.nio.ByteBuffer;
 import java.sql.Blob;
 import java.sql.SQLException;
 import java.util.Collection;
@@ -415,9 +416,11 @@
                     } catch (GeneralException e) {}
                 }
                 if (!ObjectType.instanceOf(value, type.getJavaType())) {
-                    String errMsg = "In entity field [" + this.getEntityName() 
+ "." + name + "] set the value passed in [" + value.getClass().getName() + "] 
is not compatible with the Java type of the field [" + type.getJavaType() + "]";
-                    // eventually we should do this, but for now we'll do a 
"soft" failure: throw new IllegalArgumentException(errMsg);
-                    Debug.logWarning(new Exception("Location of database type 
warning"), "=-=-=-=-=-=-=-=-= Database type warning GenericEntity.set 
=-=-=-=-=-=-=-=-= " + errMsg, module);
+                    if (!("java.sql.Blob".equals(type.getJavaType()) && (value 
instanceof byte[] || ObjectType.instanceOf(value, ByteBuffer.class)))) {
+                        String errMsg = "In entity field [" + 
this.getEntityName() + "." + name + "] set the value passed in [" + 
value.getClass().getName() + "] is not compatible with the Java type of the 
field [" + type.getJavaType() + "]";
+                        // eventually we should do this, but for now we'll do 
a "soft" failure: throw new IllegalArgumentException(errMsg);
+                        Debug.logWarning(new Exception("Location of database 
type warning"), "=-=-=-=-=-=-=-=-= Database type warning GenericEntity.set 
=-=-=-=-=-=-=-=-= " + errMsg, module);
+                    }
                 }
             }
             Object old = fields.put(name, value);


Reply via email to