projects
/
jpf-core.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c9acde0
)
Testing for all 3 new method implementations.
author
Rahmadi Trimananda
<rtrimana@uci.edu>
Wed, 19 Jun 2019 08:35:03 +0000
(
01:35
-0700)
committer
Rahmadi Trimananda
<rtrimana@uci.edu>
Wed, 19 Jun 2019 08:35:03 +0000
(
01:35
-0700)
examples/Reflection.java
patch
|
blob
|
history
src/main/gov/nasa/jpf/vm/ClassInfo.java
patch
|
blob
|
history
src/main/gov/nasa/jpf/vm/MethodInfo.java
patch
|
blob
|
history
src/peers/gov/nasa/jpf/vm/JPF_java_lang_reflect_Method.java
patch
|
blob
|
history
diff --git
a/examples/Reflection.java
b/examples/Reflection.java
index 0ce09bb28f90a6a593beb4462cf928cbf20e18d0..88f41d555257c6e0fbae9fe898f9225fb289d3b8 100644
(file)
--- a/
examples/Reflection.java
+++ b/
examples/Reflection.java
@@
-26,12
+26,12
@@
public class Reflection {
return test;
}
return test;
}
- /*
- public String getSampleField() {
+
+
/*
public String getSampleField() {
return sampleField;
return sampleField;
- }
+ }
*/
- public void setSampleField(String sampleField) {
+
/*
public void setSampleField(String sampleField) {
this.sampleField = sampleField;
}
this.sampleField = sampleField;
}
@@
-43,28
+43,29
@@
public class Reflection {
public static void main(String[] args) {
Method[] methods = SampleClass.class.getMethods();
public static void main(String[] args) {
Method[] methods = SampleClass.class.getMethods();
-
/*
Type[] parameters = methods[0].getGenericParameterTypes();
+ Type[] parameters = methods[0].getGenericParameterTypes();
//Type[] parameters = methods[0].getGenericParameterTypes();
for (int i = 0; i < parameters.length; i++) {
System.out.println(parameters[i]);
}
//Type[] parameters = methods[0].getGenericParameterTypes();
for (int i = 0; i < parameters.length; i++) {
System.out.println(parameters[i]);
}
- System.out.println();
*/
+ System.out.println();
/*Class[] parameterTypes = methods[0].getParameterTypes();
for(Class parameterType: parameterTypes){
System.out.println(parameterType.getName());
}
System.out.println();*/
/*Class[] parameterTypes = methods[0].getParameterTypes();
for(Class parameterType: parameterTypes){
System.out.println(parameterType.getName());
}
System.out.println();*/
-
/*TypeVariable[] typeParameters = GenericShort
.class.getTypeParameters();
+
TypeVariable[] typeParameters = Generic
.class.getTypeParameters();
//TypeVariable[] typeParameters = SampleClass.class.getTypeParameters();
for(TypeVariable typeVar: typeParameters){
System.out.println(typeVar);
//TypeVariable[] typeParameters = SampleClass.class.getTypeParameters();
for(TypeVariable typeVar: typeParameters){
System.out.println(typeVar);
- }
*/
+ }
System.out.println();
Type returnType = methods[0].getGenericReturnType();
System.out.println(returnType);
System.out.println();
Type returnType = methods[0].getGenericReturnType();
System.out.println(returnType);
+
}
}
}
}
diff --git
a/src/main/gov/nasa/jpf/vm/ClassInfo.java
b/src/main/gov/nasa/jpf/vm/ClassInfo.java
index 09d59ec4e1d412456e1b7d09e3dc37aeaaf1fbbf..3d5ff58145eeaecb92e5d5c57b7a12baac959a94 100644
(file)
--- a/
src/main/gov/nasa/jpf/vm/ClassInfo.java
+++ b/
src/main/gov/nasa/jpf/vm/ClassInfo.java
@@
-2602,7
+2602,7
@@
public class ClassInfo extends InfoObject implements Iterable<MethodInfo>, Gener
// TODO: Fix for Groovy's model-checking
public String[] getGenericTypeVariableNames () {
// To accommodate methods that do not have generic types
// TODO: Fix for Groovy's model-checking
public String[] getGenericTypeVariableNames () {
// To accommodate methods that do not have generic types
- if (genericSignature == null)
+ if (genericSignature == null
|| genericSignature.equals("")
)
return new String[0];
return Types.getGenericTypeVariableNames(genericSignature);
}
return new String[0];
return Types.getGenericTypeVariableNames(genericSignature);
}
diff --git
a/src/main/gov/nasa/jpf/vm/MethodInfo.java
b/src/main/gov/nasa/jpf/vm/MethodInfo.java
index ce7828183e7e0873baa648bf06cc0eed0b090678..4c904b732caaec2cf089e69f67de487acc309c03 100644
(file)
--- a/
src/main/gov/nasa/jpf/vm/MethodInfo.java
+++ b/
src/main/gov/nasa/jpf/vm/MethodInfo.java
@@
-506,7
+506,7
@@
public class MethodInfo extends InfoObject implements GenericSignatureHolder {
// TODO: Fix for Groovy's model-checking
public String[] getArgumentGenericTypeNames () {
// To accommodate methods that do not have generic types
// TODO: Fix for Groovy's model-checking
public String[] getArgumentGenericTypeNames () {
// To accommodate methods that do not have generic types
- if (genericSignature == null)
+ if (genericSignature == null
|| genericSignature.equals("")
)
return getArgumentTypeNames();
return Types.getArgumentTypeNames(genericSignature);
}
return getArgumentTypeNames();
return Types.getArgumentTypeNames(genericSignature);
}
@@
-589,6
+589,8
@@
public class MethodInfo extends InfoObject implements GenericSignatureHolder {
}
public String getGenericReturnTypeName () {
}
public String getGenericReturnTypeName () {
+ if (genericSignature == null || genericSignature.equals(""))
+ return Types.getReturnTypeName(signature);
return Types.getGenericReturnTypeName(genericSignature);
}
return Types.getGenericReturnTypeName(genericSignature);
}
diff --git
a/src/peers/gov/nasa/jpf/vm/JPF_java_lang_reflect_Method.java
b/src/peers/gov/nasa/jpf/vm/JPF_java_lang_reflect_Method.java
index 0fcc83077183e0db0cbeaf21215274a5a5d60ae7..5b9144164addd3dc9b2f82c41a6452d36ee85caf 100644
(file)
--- a/
src/peers/gov/nasa/jpf/vm/JPF_java_lang_reflect_Method.java
+++ b/
src/peers/gov/nasa/jpf/vm/JPF_java_lang_reflect_Method.java
@@
-199,12
+199,11
@@
public class JPF_java_lang_reflect_Method extends NativePeer {
MethodInfo mi = getMethodInfo(env, objRef);
ThreadInfo ti = env.getThreadInfo();
MethodInfo mi = getMethodInfo(env, objRef);
ThreadInfo ti = env.getThreadInfo();
- String returnTypeName = mi.getGenericReturnTypeName();
int retRef;
int retRef;
- if (Types.isGenericSignature(
returnTypeName
)) {
-
retRef = getParameterizedTypeImplObj(returnTypeName
, env);
+ if (Types.isGenericSignature(
mi.getGenericReturnTypeName()
)) {
+
retRef = getParameterizedTypeImplObj(mi.getGenericReturnTypeName()
, env);
} else {
} else {
- ClassInfo ci = ClassLoaderInfo.getCurrentResolvedClassInfo(
returnTypeName
);
+ ClassInfo ci = ClassLoaderInfo.getCurrentResolvedClassInfo(
mi.getReturnTypeName()
);
if (!ci.isRegistered()) {
ci.registerClass(ti);
}
if (!ci.isRegistered()) {
ci.registerClass(ti);
}