Description
I found an error when I executed the BroadcastREEF example. It seems to be caused by removing @Inject annotation in NetworkService and GroupCommDriverImpl. The constructors who have a parameter annotated by @Parameter must have @Inject annotation. We can easily fix the bug by bringing back @Inject annotation.
– java -cp ... BroadcastREEF -dim 2 -receivers 10 —
...
...
java.lang.Exception: Fatal exception while executing the clock
at org.apache.reef.runtime.common.launch.LaunchClass.fail(LaunchClass.java:181)
at org.apache.reef.runtime.common.launch.LaunchClass.run(LaunchClass.java:163)
at org.apache.reef.runtime.common.Launcher.main(Launcher.java:111)
Caused by: java.lang.RuntimeException: Unable to instantiate the clock
at org.apache.reef.runtime.common.launch.LaunchClass.getClock(LaunchClass.java:149)
at org.apache.reef.runtime.common.launch.LaunchClass.run(LaunchClass.java:161)
... 1 more
Caused by: org.apache.reef.tang.exceptions.ClassHierarchyException: public org.apache.reef.io.network.group.impl.driver.GroupCommDriverImpl(org.apache.reef.tang.formats.ConfigurationSerializer,java.lang.String,int) is not injectable, but it has an @Parameter annotation.
at org.apache.reef.tang.implementation.java.JavaNodeFactory.createConstructorDef(JavaNodeFactory.java:318)
at org.apache.reef.tang.implementation.java.JavaNodeFactory.createClassNode(JavaNodeFactory.java:99)
at org.apache.reef.tang.implementation.java.ClassHierarchyImpl.buildPathToNode(ClassHierarchyImpl.java:209)
at org.apache.reef.tang.implementation.java.ClassHierarchyImpl.registerClass(ClassHierarchyImpl.java:390)
at org.apache.reef.tang.implementation.java.ClassHierarchyImpl.register(ClassHierarchyImpl.java:330)
at org.apache.reef.tang.implementation.java.ClassHierarchyImpl.getNode(ClassHierarchyImpl.java:257)
at org.apache.reef.tang.implementation.java.InjectorImpl.parseDefaultImplementation(InjectorImpl.java:373)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:446)
at org.apache.reef.tang.implementation.java.InjectorImpl.filterCandidateConstructors(InjectorImpl.java:192)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildClassNodeInjectionPlan(InjectorImpl.java:279)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:449)
at org.apache.reef.tang.implementation.java.InjectorImpl.filterCandidateConstructors(InjectorImpl.java:192)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildClassNodeInjectionPlan(InjectorImpl.java:279)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:449)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:417)
at org.apache.reef.tang.implementation.java.InjectorImpl.filterCandidateConstructors(InjectorImpl.java:192)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildClassNodeInjectionPlan(InjectorImpl.java:279)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:449)
at org.apache.reef.tang.implementation.java.InjectorImpl.filterCandidateConstructors(InjectorImpl.java:192)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildClassNodeInjectionPlan(InjectorImpl.java:279)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:449)
at org.apache.reef.tang.implementation.java.InjectorImpl.buildInjectionPlan(InjectorImpl.java:417)
at org.apache.reef.tang.implementation.java.InjectorImpl.getInjectionPlan(InjectorImpl.java:469)
at org.apache.reef.tang.implementation.java.InjectorImpl.getInstance(InjectorImpl.java:512)
at org.apache.reef.tang.implementation.java.InjectorImpl.getNamedInstance(InjectorImpl.java:544)
at org.apache.reef.tang.InjectionFuture.get(InjectionFuture.java:116)
at org.apache.reef.tang.implementation.java.InjectorImpl.getInstance(InjectorImpl.java:519)
at org.apache.reef.tang.implementation.java.InjectorImpl.getNamedInstance(InjectorImpl.java:544)
at org.apache.reef.tang.InjectionFuture.get(InjectionFuture.java:116)
at org.apache.reef.tang.implementation.java.InjectorImpl.getInstance(InjectorImpl.java:519)
at org.apache.reef.tang.implementation.java.InjectorImpl.getInstance(InjectorImpl.java:531)
at org.apache.reef.runtime.common.launch.LaunchClass.getClock(LaunchClass.java:146)
... 2 more
...
...