Revert 2 commits merged in RC2 freeze This reverts commit bcac1f07d503acbaff72cae696d1bc6d871bbbfc and 0b85841cbaaacb2baa54aab25114eb285e2dc70e. Change-Id: I9fe3bea433978822388bcdafcfa1a22ab672d84e Signed-off-by: Michael Keppler <michael.keppler@gmx.de>
diff --git a/bundles/org.eclipse.e4.core.di/src/org/eclipse/e4/core/internal/di/InjectorImpl.java b/bundles/org.eclipse.e4.core.di/src/org/eclipse/e4/core/internal/di/InjectorImpl.java index 3d7d239..440c402 100644 --- a/bundles/org.eclipse.e4.core.di/src/org/eclipse/e4/core/internal/di/InjectorImpl.java +++ b/bundles/org.eclipse.e4.core.di/src/org/eclipse/e4/core/internal/di/InjectorImpl.java
@@ -722,9 +722,7 @@ /** * Make the processor visit all declared methods on the given class. */ - private boolean processMethods(final Object userObject, PrimaryObjectSupplier objectSupplier, - PrimaryObjectSupplier tempSupplier, Class<?> objectsClass, ArrayList<Class<?>> classHierarchy, - boolean track, List<Requestor<?>> requestors) { + private boolean processMethods(final Object userObject, PrimaryObjectSupplier objectSupplier, PrimaryObjectSupplier tempSupplier, Class<?> objectsClass, ArrayList<Class<?>> classHierarchy, boolean track, List<Requestor<?>> requestors) { boolean injectedStatic = false; Method[] methods = getDeclaredMethods(objectsClass); for (Method method : methods) { @@ -732,9 +730,10 @@ Boolean isOverridden = null; Map<Method, Boolean> methodMap = null; Class<?> originalClass = userObject.getClass(); - methodMap = isOverriddenCache.get(originalClass); - if (methodMap != null) { - isOverridden = methodMap.get(method); + if (isOverriddenCache.containsKey(originalClass)) { + methodMap = isOverriddenCache.get(originalClass); + if (methodMap.containsKey(method)) + isOverridden = methodMap.get(method); } if (isOverridden == null) { isOverridden = isOverridden(method, classHierarchy); @@ -745,18 +744,15 @@ methodMap.put(method, isOverridden); } - if (isOverridden) { + if (isOverridden) continue; // process in the subclass - } if (Modifier.isStatic(method.getModifiers())) { - if (hasInjectedStatic(objectsClass)) { + if (hasInjectedStatic(objectsClass)) continue; - } injectedStatic = true; } - if (!isAnnotationPresent(method, Inject.class)) { + if (!isAnnotationPresent(method, Inject.class)) continue; - } requestors.add(new MethodRequestor(method, this, objectSupplier, tempSupplier, userObject, track)); } return injectedStatic;