Program: 1617
Project: 1617
Buggy source:
@Override public void onInstall(){
  registerDecorator(SessionComponent.class,new SessionComponent(container));
  register(Singleton.class,new Factory<Services>(Services.class){
    @Override public Services create(){
      return new GWTServices();
    }
  }
);
  register(Singleton.class,new Factory<Connection>(Connection.class){
    @Override public Connection create(){
      return new BoshConnection($(Services.class));
    }
  }
,new Factory<IMSessionManager>(IMSessionManager.class){
    @Override public IMSessionManager create(){
      return new IMSessionManager($(Connection.class));
    }
  }
,new Factory<Session>(Session.class){
    @Override public Session create(){
      GWT.log("String_Node_Str");
      final SessionImpl session=new SessionImpl($(Connection.class),$(SASLManager.class),$(ResourceBindingManager.class),$(IMSessionManager.class));
      return session;
    }
    @Override public void onAfterCreated(    final Session session){
      GWT.log("String_Node_Str");
      $(SessionComponent.class).init();
    }
  }
,new Factory<ResourceBindingManager>(ResourceBindingManager.class){
    @Override public ResourceBindingManager create(){
      return new ResourceBindingManager($(Connection.class));
    }
  }
,new Factory<SASLManager>(SASLManager.class){
    @Override public SASLManager create(){
      return new SASLManager($(Connection.class));
    }
  }
);
  register(SessionComponent.class,new Factory<SessionReady>(SessionReady.class){
    @Override public SessionReady create(){
      return new SessionReady($(Session.class));
    }
  }
);
}

Fixed version (ground truth):
@Override public void onInstall(){
  registerDecorator(SessionComponent.class,new SessionComponent(container));
  register(Singleton.class,new Factory<Services>(Services.class){
    @Override public Services create(){
      return new GWTServices();
    }
  }
);
  register(Singleton.class,new Factory<Connection>(Connection.class){
    @Override public Connection create(){
      return new BoshConnection($(Services.class));
    }
  }
,new Factory<IMSessionManager>(IMSessionManager.class){
    @Override public IMSessionManager create(){
      return new IMSessionManager($(Connection.class));
    }
  }
,new Factory<Session>(Session.class){
    @Override public Session create(){
      GWT.log("String_Node_Str");
      final SessionImpl session=new SessionImpl($(Connection.class),$(SASLManager.class),$(ResourceBindingManager.class),$(IMSessionManager.class));
      return session;
    }
    @Override public void onAfterCreated(    final Session session){
      GWT.log("String_Node_Str");
      $(SessionComponent.class).init();
    }
  }
,new Factory<ResourceBindingManager>(ResourceBindingManager.class){
    @Override public ResourceBindingManager create(){
      return new ResourceBindingManager($(Connection.class));
    }
  }
,new Factory<DecoderRegistry>(DecoderRegistry.class){
    @Override public DecoderRegistry create(){
      return new DecoderRegistry();
    }
  }
,new Factory<SASLManager>(SASLManager.class){
    @Override public SASLManager create(){
      return new SASLManager($(Connection.class),$(DecoderRegistry.class));
    }
  }
);
  register(SessionComponent.class,new Factory<SessionReady>(SessionReady.class){
    @Override public SessionReady create(){
      return new SessionReady($(Session.class));
    }
  }
);
}