Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Find better solution for guice circular proxy problem #2430

Closed
cdietrich opened this issue Jun 7, 2022 · 10 comments
Closed

Find better solution for guice circular proxy problem #2430

cdietrich opened this issue Jun 7, 2022 · 10 comments

Comments

@cdietrich
Copy link
Member

we have seen the guice 5 circular proxy problem again
the workaround does not seem to work in all cases
so we should find a permanent solution

google/guice#1510
eclipse/xtext-core#393 (comment)

cdietrich referenced this issue in eclipse/xtext-core Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
@cdietrich
Copy link
Member Author

cdietrich commented Jun 7, 2022

java.util.concurrent.ExecutionException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IContextFinder, and circular dependencies are disabled.
  while locating ContextFinder
  at AssignmentFinder.contextFinder(AssignmentFinder.java:47)
      \_ for field contextFinder
  while locating AssignmentFinder
  at ContextFinder.assignmentFinder(ContextFinder.java:49)
      \_ for field assignmentFinder
  while locating ContextFinder
  at Serializer.contextFinder(Serializer.java:57)
      \_ for field contextFinder
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

1 error

======================
Full classname legend:
======================
AssignmentFinder:    "org.eclipse.xtext.serializer.sequencer.AssignmentFinder"
ContextFinder:       "org.eclipse.xtext.serializer.sequencer.ContextFinder"
IContextFinder:      "org.eclipse.xtext.serializer.sequencer.IContextFinder"
LazyLinkingResource: "org.eclipse.xtext.linking.lazy.LazyLinkingResource"
Serializer:          "org.eclipse.xtext.serializer.impl.Serializer"
XtextResource:       "org.eclipse.xtext.resource.XtextResource"
========================
End of classname legend:
========================

	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at org.xtext.example.mydsl.tests.DullyTest.testIt(DullyTest.java:33)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:95)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:91)
	at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:60)
	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:74)
	at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.start(CoreTestApplication.java:28)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IContextFinder, and circular dependencies are disabled.
  while locating ContextFinder
  at AssignmentFinder.contextFinder(AssignmentFinder.java:47)
      \_ for field contextFinder
  while locating AssignmentFinder
  at ContextFinder.assignmentFinder(ContextFinder.java:49)
      \_ for field assignmentFinder
  while locating ContextFinder
  at Serializer.contextFinder(Serializer.java:57)
      \_ for field contextFinder
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

1 error

======================
Full classname legend:
======================
AssignmentFinder:    "org.eclipse.xtext.serializer.sequencer.AssignmentFinder"
ContextFinder:       "org.eclipse.xtext.serializer.sequencer.ContextFinder"
IContextFinder:      "org.eclipse.xtext.serializer.sequencer.IContextFinder"
LazyLinkingResource: "org.eclipse.xtext.linking.lazy.LazyLinkingResource"
Serializer:          "org.eclipse.xtext.serializer.impl.Serializer"
XtextResource:       "org.eclipse.xtext.resource.XtextResource"
========================
End of classname legend:
========================

	at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1103)
	at org.eclipse.xtext.resource.XtextResourceFactory.createResource(XtextResourceFactory.java:28)
	at org.xtext.example.mydsl.tests.DullyTest.lambda$0(DullyTest.java:30)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)


java.util.concurrent.ExecutionException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IConcreteSyntaxDiagnosticProvider, and circular dependencies are disabled.
  while locating ConcreteSyntaxDiagnosticProvider
  at AssignmentQuantityAllocator.diagnosticProvider(AssignmentQuantityAllocator.java:44)
      \_ for field diagnosticProvider
  while locating AssignmentQuantityAllocator
  at ConcreteSyntaxDiagnosticProvider.quantityAllocator(ConcreteSyntaxDiagnosticProvider.java:43)
      \_ for field quantityAllocator
  while locating ConcreteSyntaxDiagnosticProvider
  at ConcreteSyntaxValidator.diagnosticProvider(ConcreteSyntaxValidator.java:45)
      \_ for field diagnosticProvider
  while locating ConcreteSyntaxValidator
  at Serializer.validator(Serializer.java:57)
      \_ for field validator
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

1 error

======================
Full classname legend:
======================
AssignmentQuantityAllocator:       "org.eclipse.xtext.validation.impl.AssignmentQuantityAllocator"
ConcreteSyntaxDiagnosticProvider:  "org.eclipse.xtext.validation.impl.ConcreteSyntaxDiagnosticProvider"
ConcreteSyntaxValidator:           "org.eclipse.xtext.validation.impl.ConcreteSyntaxValidator"
IConcreteSyntaxDiagnosticProvider: "org.eclipse.xtext.validation.IConcreteSyntaxDiagnosticProvider"
LazyLinkingResource:               "org.eclipse.xtext.linking.lazy.LazyLinkingResource"
Serializer:                        "org.eclipse.xtext.serializer.impl.Serializer"
XtextResource:                     "org.eclipse.xtext.resource.XtextResource"
========================
End of classname legend:
========================

	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at org.xtext.example.mydsl.tests.DullyTest.testIt(DullyTest.java:33)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:95)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:91)
	at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:60)
	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:74)
	at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.start(CoreTestApplication.java:28)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IConcreteSyntaxDiagnosticProvider, and circular dependencies are disabled.
  while locating ConcreteSyntaxDiagnosticProvider
  at AssignmentQuantityAllocator.diagnosticProvider(AssignmentQuantityAllocator.java:44)
      \_ for field diagnosticProvider
  while locating AssignmentQuantityAllocator
  at ConcreteSyntaxDiagnosticProvider.quantityAllocator(ConcreteSyntaxDiagnosticProvider.java:43)
      \_ for field quantityAllocator
  while locating ConcreteSyntaxDiagnosticProvider
  at ConcreteSyntaxValidator.diagnosticProvider(ConcreteSyntaxValidator.java:45)
      \_ for field diagnosticProvider
  while locating ConcreteSyntaxValidator
  at Serializer.validator(Serializer.java:57)
      \_ for field validator
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

1 error

======================
Full classname legend:
======================
AssignmentQuantityAllocator:       "org.eclipse.xtext.validation.impl.AssignmentQuantityAllocator"
ConcreteSyntaxDiagnosticProvider:  "org.eclipse.xtext.validation.impl.ConcreteSyntaxDiagnosticProvider"
ConcreteSyntaxValidator:           "org.eclipse.xtext.validation.impl.ConcreteSyntaxValidator"
IConcreteSyntaxDiagnosticProvider: "org.eclipse.xtext.validation.IConcreteSyntaxDiagnosticProvider"
LazyLinkingResource:               "org.eclipse.xtext.linking.lazy.LazyLinkingResource"
Serializer:                        "org.eclipse.xtext.serializer.impl.Serializer"
XtextResource:                     "org.eclipse.xtext.resource.XtextResource"
========================
End of classname legend:
========================

	at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1103)
	at org.eclipse.xtext.resource.XtextResourceFactory.createResource(XtextResourceFactory.java:28)
	at org.xtext.example.mydsl.tests.DullyTest.lambda$0(DullyTest.java:30)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)


1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IValueConverterService, and circular dependencies are disabled.
  while locating PartialSerializationTestLanguageValueConverter
  at QualifiedNameValueConverter.valueConverterService(QualifiedNameValueConverter.java:32)
      \_ for field valueConverterService
  at QualifiedNameValueConverter.class(QualifiedNameValueConverter.java:32)
  at PartialSerializationTestLanguageValueConverter.fqnc(PartialSerializationTestLanguageValueConverter.java:20)
      \_ for field fqnc
  while locating PartialSerializationTestLanguageValueConverter
  at LinkingHelper.valueConverter(LinkingHelper.java:33)
      \_ for field valueConverter
  at TokenDiagnosticProvider.linkingHelper(TokenDiagnosticProvider.java:32)
      \_ for field linkingHelper
  while locating TokenDiagnosticProvider
  at CrossReferenceSerializer.diagnostics(CrossReferenceSerializer.java:41)
      \_ for field diagnostics
  while locating CrossReferenceSerializer
  at AssignmentFinder.crossRefSerializer(AssignmentFinder.java:47)
      \_ for field crossRefSerializer
  while locating AssignmentFinder
  at ContextFinder.assignmentFinder(ContextFinder.java:49)
      \_ for field assignmentFinder
  while locating ContextFinder
  at Serializer.contextFinder(Serializer.java:57)
      \_ for field contextFinder
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

@cdietrich
Copy link
Member Author

unfortunately QualifiedNameValueConverter seems to be api.

cdietrich referenced this issue in eclipse/xtext-core Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
@cdietrich
Copy link
Member Author

cdietrich commented Jun 7, 2022

com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IValueConverterService, and circular dependencies are disabled.
  while locating ParametersTestLanguageRuntimeModule$Converters
  at KeywordAlternativeConverter.delegateService(KeywordAlternativeConverter.java:33)
      \_ for field delegateService
  at ParametersTestLanguageRuntimeModule$Converters.converter(ParametersTestLanguageRuntimeModule.java:27)
      \_ for field converter
  while locating ParametersTestLanguageRuntimeModule$Converters
  at LinkingHelper.valueConverter(LinkingHelper.java:33)
      \_ for field valueConverter
  at TokenDiagnosticProvider.linkingHelper(TokenDiagnosticProvider.java:32)
      \_ for field linkingHelper
  while locating TokenDiagnosticProvider
  at CrossReferenceSerializer.diagnostics(CrossReferenceSerializer.java:41)
      \_ for field diagnostics
  while locating CrossReferenceSerializer
  at AssignmentFinder.crossRefSerializer(AssignmentFinder.java:47)
      \_ for field crossRefSerializer
  while locating AssignmentFinder
  at ContextFinder.assignmentFinder(ContextFinder.java:49)
      \_ for field assignmentFinder
  while locating ContextFinder
  at Serializer.contextFinder(Serializer.java:57)
      \_ for field contextFinder
  while locating Serializer
  at XtextResource.serializer(XtextResource.java:490)
      \_ for field serializer
  while locating LazyLinkingResource
  while locating XtextResource

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

1 error

======================
Full classname legend:
======================
AssignmentFinder:                               "org.eclipse.xtext.serializer.sequencer.AssignmentFinder"
ContextFinder:                                  "org.eclipse.xtext.serializer.sequencer.ContextFinder"
CrossReferenceSerializer:                       "org.eclipse.xtext.serializer.tokens.CrossReferenceSerializer"
IValueConverterService:                         "org.eclipse.xtext.conversion.IValueConverterService"
KeywordAlternativeConverter:                    "org.eclipse.xtext.conversion.impl.KeywordAlternativeConverter"
LazyLinkingResource:                            "org.eclipse.xtext.linking.lazy.LazyLinkingResource"
LinkingHelper:                                  "org.eclipse.xtext.linking.impl.LinkingHelper"
ParametersTestLanguageRuntimeModule$Converters: "org.eclipse.xtext.parser.parameters.ParametersTestLanguageRuntimeModule$Converters"
Serializer:                                     "org.eclipse.xtext.serializer.impl.Serializer"
TokenDiagnosticProvider:                        "org.eclipse.xtext.serializer.diagnostic.TokenDiagnosticProvider"
XtextResource:                                  "org.eclipse.xtext.resource.XtextResource"
========================
End of classname legend:
========================
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving IJvmModelAssociations, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at JvmModelCompleter.associations(JvmModelCompleter.java:58)
      \_ for field associations
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at XbaseValidator.associations(XbaseValidator.java:159)
      \_ for field associations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating XbaseValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

2) [Guice/CircularProxyDisabled]: Found a circular dependency involving IJvmModelAssociations, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at JvmModelCompleter.associations(JvmModelCompleter.java:58)
      \_ for field associations
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at UniqueClassNameValidator.associations(UniqueClassNameValidator.java:41)
      \_ for field associations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating UniqueClassNameValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

3) [Guice/CircularProxyDisabled]: Found a circular dependency involving IJvmModelAssociations, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at JvmModelCompleter.associations(JvmModelCompleter.java:58)
      \_ for field associations
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at JvmTypeReferencesValidator.jvmModelAssociations(JvmTypeReferencesValidator.java:49)
      \_ for field jvmModelAssociations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating JvmTypeReferencesValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

3 errors

======================
Full classname legend:
======================
IJvmModelAssociations:      "org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations"
JvmModelAssociator:         "org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator"
JvmModelCompleter:          "org.eclipse.xtext.xbase.jvmmodel.JvmModelCompleter"
JvmTypeReferencesValidator: "org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator"
MethodBasedModule:          "org.eclipse.xtext.service.MethodBasedModule"
UniqueClassNameValidator:   "org.eclipse.xtext.xbase.validation.UniqueClassNameValidator"
XbaseValidator:             "org.eclipse.xtext.xbase.validation.XbaseValidator"
========================
End of classname legend:
========================

	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:568)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
	at com.google.inject.Guice.createInjector(Guice.java:87)
	at com.google.inject.Guice.createInjector(Guice.java:69)
	at com.google.inject.Guice.createInjector(Guice.java:59)
	at org.eclipse.xtext.xbase.tests.typesystem.XbaseShufflingInjectorProvider$XbaseShufflingTestStandaloneSetup.createInjector(XbaseShufflingInjectorProvider.java:42)
	at org.eclipse.xtext.xbase.XbaseStandaloneSetupGenerated.createInjectorAndDoEMFRegistration(XbaseStandaloneSetupGenerated.java:25)
	at org.eclipse.xtext.xbase.XbaseStandaloneSetup.createInjectorAndDoEMFRegistration(XbaseStandaloneSetup.java:28)
	at org.eclipse.xtext.xbase.tests.typesystem.XbaseShufflingInjectorProvider.internalCreateInjector(XbaseShufflingInjectorProvider.java:36)
	at org.eclipse.xtext.xbase.tests.XbaseInjectorProvider.getInjector(XbaseInjectorProvider.java:53)
	at org.eclipse.xtext.xbase.tests.XbaseInjectorProvider.setupRegistry(XbaseInjectorProvider.java:73)
	at org.eclipse.xtext.testing.XtextRunner.methodBlock(XtextRunner.java:44)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)


cdietrich referenced this issue in eclipse/xtext-core Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
cdietrich referenced this issue in eclipse/xtext-extras Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
@cdietrich
Copy link
Member Author

com.google.inject.CreationException: Unable to create injector, see the following errors:

1) [Guice/CircularProxyDisabled]: Found a circular dependency involving ILogicalContainerProvider, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at DefaultImportsConfiguration.logicalContainerProvider(DefaultImportsConfiguration.java:56)
      \_ for field logicalContainerProvider
  while locating DefaultImportsConfiguration
  at XImportSectionNamespaceScopeProvider.importsConfiguration(XImportSectionNamespaceScopeProvider.java:58)
      \_ for field importsConfiguration
  while locating XImportSectionNamespaceScopeProvider
  at XbaseBatchScopeProvider.delegate(XbaseBatchScopeProvider.java:69)
      \_ for field delegate
  while locating XbaseBatchScopeProvider
  at AbstractBatchTypeResolver.scopeProvider(AbstractBatchTypeResolver.java:35)
      \_ for field scopeProvider
  while locating CachingBatchTypeResolver
  at ElementIssueProvider$Factory.typeResolver(ElementIssueProvider.java:69)
      \_ for field typeResolver
  while locating ElementIssueProvider$Factory
  at ErrorSafeExtensions.issueProviderFactory(ErrorSafeExtensions.java:32)
      \_ for field issueProviderFactory
  at JvmModelGenerator._errorSafeExtensions(JvmModelGenerator.java:120)
      \_ for field _errorSafeExtensions
  at JvmModelCompleter.generator(JvmModelCompleter.java:59)
      \_ for field generator
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at XbaseValidator.associations(XbaseValidator.java:159)
      \_ for field associations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating XbaseValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

2) [Guice/CircularProxyDisabled]: Found a circular dependency involving ILogicalContainerProvider, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at DefaultImportsConfiguration.logicalContainerProvider(DefaultImportsConfiguration.java:56)
      \_ for field logicalContainerProvider
  while locating DefaultImportsConfiguration
  at XImportSectionNamespaceScopeProvider.importsConfiguration(XImportSectionNamespaceScopeProvider.java:58)
      \_ for field importsConfiguration
  while locating XImportSectionNamespaceScopeProvider
  at XbaseBatchScopeProvider.delegate(XbaseBatchScopeProvider.java:69)
      \_ for field delegate
  while locating XbaseBatchScopeProvider
  at AbstractBatchTypeResolver.scopeProvider(AbstractBatchTypeResolver.java:35)
      \_ for field scopeProvider
  while locating CachingBatchTypeResolver
  at ElementIssueProvider$Factory.typeResolver(ElementIssueProvider.java:69)
      \_ for field typeResolver
  while locating ElementIssueProvider$Factory
  at ErrorSafeExtensions.issueProviderFactory(ErrorSafeExtensions.java:32)
      \_ for field issueProviderFactory
  at JvmModelGenerator._errorSafeExtensions(JvmModelGenerator.java:120)
      \_ for field _errorSafeExtensions
  at JvmModelCompleter.generator(JvmModelCompleter.java:59)
      \_ for field generator
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at JvmTypeReferencesValidator.jvmModelAssociations(JvmTypeReferencesValidator.java:49)
      \_ for field jvmModelAssociations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating JvmTypeReferencesValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

3) [Guice/CircularProxyDisabled]: Found a circular dependency involving ILogicalContainerProvider, and circular dependencies are disabled.
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at DefaultImportsConfiguration.logicalContainerProvider(DefaultImportsConfiguration.java:56)
      \_ for field logicalContainerProvider
  while locating DefaultImportsConfiguration
  at XImportSectionNamespaceScopeProvider.importsConfiguration(XImportSectionNamespaceScopeProvider.java:58)
      \_ for field importsConfiguration
  while locating XImportSectionNamespaceScopeProvider
  at XbaseBatchScopeProvider.delegate(XbaseBatchScopeProvider.java:69)
      \_ for field delegate
  while locating XbaseBatchScopeProvider
  at AbstractBatchTypeResolver.scopeProvider(AbstractBatchTypeResolver.java:35)
      \_ for field scopeProvider
  while locating CachingBatchTypeResolver
  at ElementIssueProvider$Factory.typeResolver(ElementIssueProvider.java:69)
      \_ for field typeResolver
  while locating ElementIssueProvider$Factory
  at ErrorSafeExtensions.issueProviderFactory(ErrorSafeExtensions.java:32)
      \_ for field issueProviderFactory
  at JvmModelGenerator._errorSafeExtensions(JvmModelGenerator.java:120)
      \_ for field _errorSafeExtensions
  at JvmModelCompleter.generator(JvmModelCompleter.java:59)
      \_ for field generator
  at JvmModelAssociator.completer(JvmModelAssociator.java:81)
      \_ for field completer
  at JvmModelAssociator.class(JvmModelAssociator.java:60)
  while locating JvmModelAssociator
  at UniqueClassNameValidator.associations(UniqueClassNameValidator.java:41)
      \_ for field associations
  at MethodBasedModule.configure(MethodBasedModule.java:58)
  while locating UniqueClassNameValidator

Learn more:
  https://github.com/google/guice/wiki/CIRCULAR_PROXY_DISABLED

3 errors

======================
Full classname legend:
======================
AbstractBatchTypeResolver:            "org.eclipse.xtext.xbase.typesystem.internal.AbstractBatchTypeResolver"
CachingBatchTypeResolver:             "org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver"
DefaultImportsConfiguration:          "org.eclipse.xtext.xbase.imports.DefaultImportsConfiguration"
ElementIssueProvider$Factory:         "org.eclipse.xtext.xbase.compiler.ElementIssueProvider$Factory"
ErrorSafeExtensions:                  "org.eclipse.xtext.xbase.compiler.ErrorSafeExtensions"
ILogicalContainerProvider:            "org.eclipse.xtext.xbase.jvmmodel.ILogicalContainerProvider"
JvmModelAssociator:                   "org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator"
JvmModelCompleter:                    "org.eclipse.xtext.xbase.jvmmodel.JvmModelCompleter"
JvmModelGenerator:                    "org.eclipse.xtext.xbase.compiler.JvmModelGenerator"
JvmTypeReferencesValidator:           "org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator"
MethodBasedModule:                    "org.eclipse.xtext.service.MethodBasedModule"
UniqueClassNameValidator:             "org.eclipse.xtext.xbase.validation.UniqueClassNameValidator"
XImportSectionNamespaceScopeProvider: "org.eclipse.xtext.xbase.scoping.XImportSectionNamespaceScopeProvider"
XbaseBatchScopeProvider:              "org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider"
XbaseValidator:                       "org.eclipse.xtext.xbase.validation.XbaseValidator"
========================
End of classname legend:
========================

	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:568)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
	at com.google.inject.Guice.createInjector(Guice.java:87)
	at com.google.inject.Guice.createInjector(Guice.java:69)
	at com.google.inject.Guice.createInjector(Guice.java:59)
	at org.eclipse.xtext.xbase.tests.typesystem.XbaseShufflingInjectorProvider$XbaseShufflingTestStandaloneSetup.createInjector(XbaseShufflingInjectorProvider.java:42)
	at org.eclipse.xtext.xbase.XbaseStandaloneSetupGenerated.createInjectorAndDoEMFRegistration(XbaseStandaloneSetupGenerated.java:25)
	at org.eclipse.xtext.xbase.XbaseStandaloneSetup.createInjectorAndDoEMFRegistration(XbaseStandaloneSetup.java:28)
	at org.eclipse.xtext.xbase.tests.typesystem.XbaseShufflingInjectorProvider.internalCreateInjector(XbaseShufflingInjectorProvider.java:36)
	at org.eclipse.xtext.xbase.tests.XbaseInjectorProvider.getInjector(XbaseInjectorProvider.java:53)
	at org.eclipse.xtext.xbase.tests.XbaseInjectorProvider.setupRegistry(XbaseInjectorProvider.java:73)
	at org.eclipse.xtext.testing.XtextRunner.methodBlock(XtextRunner.java:44)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)


cdietrich referenced this issue in eclipse/xtext-extras Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
@cdietrich
Copy link
Member Author

  • many many more the assiciator area :(

cdietrich referenced this issue in eclipse/xtext-eclipse Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
cdietrich referenced this issue in eclipse/xtext-xtend Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
cdietrich referenced this issue in eclipse/xtext-xtend Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
cdietrich referenced this issue in eclipse/xtext-extras Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
cdietrich referenced this issue in eclipse/xtext-core Jun 7, 2022
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
@cdietrich
Copy link
Member Author

potential pattern to solve cycle using "Provider" and stay api compatible

	@Inject
	private Provider<IAssignmentQuantityAllocator> quantityAllocatorProvider;
	
	protected IAssignmentQuantityAllocator quantityAllocator = new IAssignmentQuantityAllocator() {

		@Override
		public IQuantities getAssignmentQuantities(EObject obj, ISyntaxConstraint rule,
				List<IConcreteSyntaxDiagnostic> acceptor) {
			return quantityAllocatorProvider.get().getAssignmentQuantities(obj, rule, acceptor);
		}

		@Override
		public int getFeatureQuantity(EObject obj, EStructuralFeature feat) {
			return quantityAllocatorProvider.get().getFeatureQuantity(obj, feat);
		}
		
	};

@szarnekow
Copy link
Contributor

I’d think this is a treacherous compatibility. Users who inject a specialized implementation might potentially attempt to cast the value which is available as a protected field.

I don’t think there is a safe solution to this without API breakage.

@cdietrich
Copy link
Member Author

upstream pr still is open

@cdietrich
Copy link
Member Author

no update

@szarnekow szarnekow transferred this issue from eclipse/xtext-core Apr 17, 2023
@cdietrich
Copy link
Member Author

oom is fixed in upstream guice. thus will close this one with reference to #2056

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants