summaryrefslogtreecommitdiff
path: root/ext/java/reflect.java
diff options
context:
space:
mode:
authorSam Ruby <rubys@php.net>2000-06-30 04:48:46 +0000
committerSam Ruby <rubys@php.net>2000-06-30 04:48:46 +0000
commit2d8b72535f7b065143997d27c3baedf63b9caff2 (patch)
tree24ac7a8d178475c5e41f4956d9ae8cc9e05c07f6 /ext/java/reflect.java
parent3def9079fd6992b24827ce0b6e563c624a5ab41b (diff)
downloadphp-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.java6
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));