Bug 374421 - Infinite recursion if context provider is not set
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ContextInjectionTest.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ContextInjectionTest.java
index eac0fe7..0a5c884 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ContextInjectionTest.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ContextInjectionTest.java
@@ -20,6 +20,7 @@
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.EclipseContextFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.contexts.RunAndTrack;
/**
* Tests for the basic context injection functionality
@@ -307,5 +308,20 @@
assertEquals(testDouble, userObject.inputDouble);
assertTrue(userObject.finishOverrideCalled);
}
+
+ public void testBug374421() {
+ try {
+ IEclipseContext context = EclipseContextFactory.create();
+ context.runAndTrack(new RunAndTrack() {
+ public boolean changed(IEclipseContext context) {
+ IEclipseContext staticContext = EclipseContextFactory.create();
+ ContextInjectionFactory.make(Object.class, context, staticContext);
+ return true;
+ }
+ });
+ } catch (StackOverflowError e) {
+ fail("See bug 374421 for details.");
+ }
+ }
}