diff options
author | Sam Ruby <rubys@php.net> | 2000-06-30 04:48:46 +0000 |
---|---|---|
committer | Sam Ruby <rubys@php.net> | 2000-06-30 04:48:46 +0000 |
commit | 2d8b72535f7b065143997d27c3baedf63b9caff2 (patch) | |
tree | 24ac7a8d178475c5e41f4956d9ae8cc9e05c07f6 /ext/java/reflect.java | |
parent | 3def9079fd6992b24827ce0b6e563c624a5ab41b (diff) | |
download | php-git-2d8b72535f7b065143997d27c3baedf63b9caff2.tar.gz |
Fix garbage in warning strings, and IllegalArgumentException on
assignments which require data type conversions.
Diffstat (limited to 'ext/java/reflect.java')
-rw-r--r-- | ext/java/reflect.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/java/reflect.java b/ext/java/reflect.java index 348d89b3c9..0d6347cf84 100644 --- a/ext/java/reflect.java +++ b/ext/java/reflect.java @@ -45,7 +45,7 @@ public class reflect { private static native void setResultFromObject(long result, Object value); private static native void setResultFromArray(long result); private static native long nextElement(long array); - private static native void setException(long result, String value); + private static native void setException(long result, byte value[]); public static native void setEnv(); // @@ -94,7 +94,7 @@ public class reflect { if (t!=null) e=t; } - setException(result, e.toString()); + setException(result, e.toString().getBytes()); } // @@ -295,6 +295,7 @@ public class reflect { Method method; if (args!=null && args.length>0) { method=props[i].getWriteMethod(); + args = coerce(method.getParameterTypes(), args); } else { method=props[i].getReadMethod(); } @@ -307,6 +308,7 @@ public class reflect { for (int i=0; i<jfields.length; i++) { if (jfields[i].getName().equalsIgnoreCase(prop)) { if (args!=null && args.length>0) { + args = coerce(new Class[] {jfields[i].getType()}, args); jfields[i].set(object, args[0]); } else { setResult(result, jfields[i].get(object)); |