Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java')
-rw-r--r--org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java56
1 files changed, 38 insertions, 18 deletions
diff --git a/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java b/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java
index 82112a7f..07f6b4a4 100644
--- a/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java
+++ b/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java
@@ -492,19 +492,29 @@ public class MojoParameterMetadataProvider {
private static Map<String, Type> getClassProperties(Class<?> clazz) {
Map<String, Type> props = new HashMap<>();
- for(Method m : clazz.getMethods()) {
- if((m.getModifiers() & Modifier.STATIC) != 0) {
- continue;
- }
+ Method[] methods;
+ try {
+ methods = clazz.getMethods();
+ } catch(Throwable e) {
+ log.debug("Cannot get methods of " + clazz.getName(), e);
+ methods = null;
+ }
+
+ if(methods != null) {
+ for(Method m : methods) {
+ if((m.getModifiers() & Modifier.STATIC) != 0) {
+ continue;
+ }
- String name = m.getName();
+ String name = m.getName();
- if((name.startsWith("add") || name.startsWith("set")) && m.getParameterTypes().length == 1) { //$NON-NLS-1$ //$NON-NLS-2$
- String prop = name.substring(3);
- if(!prop.isEmpty()) {
- prop = Character.toLowerCase(prop.charAt(0)) + prop.substring(1);
- if(!props.containsKey(prop)) {
- props.put(prop, m.getGenericParameterTypes()[0]);
+ if((name.startsWith("add") || name.startsWith("set")) && m.getParameterTypes().length == 1) { //$NON-NLS-1$ //$NON-NLS-2$
+ String prop = name.substring(3);
+ if(!prop.isEmpty()) {
+ prop = Character.toLowerCase(prop.charAt(0)) + prop.substring(1);
+ if(!props.containsKey(prop)) {
+ props.put(prop, m.getGenericParameterTypes()[0]);
+ }
}
}
}
@@ -513,17 +523,27 @@ public class MojoParameterMetadataProvider {
Class<?> pClazz = clazz;
while(pClazz != null && !pClazz.equals(Object.class)) {
- for(Field f : pClazz.getDeclaredFields()) {
- if((f.getModifiers() & (Modifier.STATIC | Modifier.FINAL)) != 0) {
- continue;
- }
+ Field[] fields;
+ try {
+ fields = pClazz.getDeclaredFields();
+ } catch(Throwable e) {
+ log.debug("Cannot get declared fields of " + pClazz.getName(), e);
+ fields = null;
+ }
- String prop = f.getName();
+ if(fields != null) {
+ for(Field f : fields) {
+ if((f.getModifiers() & (Modifier.STATIC | Modifier.FINAL)) != 0) {
+ continue;
+ }
+
+ String prop = f.getName();
- if(!props.containsKey(prop)) {
+ if(!props.containsKey(prop)) {
- props.put(prop, f.getGenericType());
+ props.put(prop, f.getGenericType());
+ }
}
}
pClazz = pClazz.getSuperclass();

Back to the top