Uploaded image for project: 'REEF (Retired)'
  1. REEF (Retired)
  2. REEF-270

Missing @Inject annotation in NetworkService, GroupCommDriverImpl

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.11
    • REEF-IO
    • None

    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
      ...
      ...

      Attachments

        Activity

          People

            Unassigned Unassigned
            gwsshs22 Geon-Woo Kim
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: