I have some problem with code ending up in the left over because it's
reached from a split point, while it shouldn't be reached through that
split point.
Why?

Details:
Below a snippet from the Soyc report that shows why the Login component is
alive from a split point in the app Ztoeslag.
The Login component shouldn't be alive through this split point, but it
occurs because controller ProfileControllerDefault is shown in the soyc
snippet below.

I don't understand why controller "ProfileControllerDefault" appears in the
alive-list below, as it is created in a RunAsync GeneralSplitPoint10 (the
same as the Login component).
The only place in the whole code where "ProfileControllerDefault" appears
is at the place it's created, which is called in the
GeneralSplitPoint10 split point, that calls the following method in the
ProfileFacade:

public ProfileController createController() {
   return new ProfileControllerDefault();
}
Because the Split points work method-based, that should be fine, however it
shouldn't be touched/reached in the soyc snippet below.

Some more method flow:
The LazyProfileController.showProfile is listed below. The call findActor()
will return the ProfileControllerDefault instance if already loaded. If not
loaded yet, it will start loading and in the mean while the showProfile()
action in put on the queue through the method below:
GeneralActionQueueFacade.showProfile(). When the ProfileControllerDefault
is created, the queue is emptied.

So can you please tell me why the ProfileControllerDefault appears in the
list below that shows why the Login component is alive.
How can I further analyze this? How can I confirm this is a bug ? (I hope
not :(

- Ed

---------- Snippet of why the Login component is alive.
.......
- com.profile.impl.ProfileControllerDefault::$getEnsureView
- com.profile.impl.ProfileControllerDefault::$beforeShow
- com.actionqueue.GeneralActionQueueFacade::$showProfile
- com.profile.impl.LazyProfileController::$showProfile
- com.profile.impl.ProfileFacade::$showProfile
- com.profile.ProfileHistory::runIntern
......

   -
   com.ztoeslag.ZtoeslagLazyLoaderDefault::$createCodeSplitZtoeslagGeneral10

----------

------------ The LazyProfileController.showProfile() method:

public void showProfile(final FlexShowContext context) {
   if (!isCommandPresentAndEnsureLoadingStarted(getShowProfileId())) { //
will check the queued command isn't present yet, and ensure the will be
loaded if not present.
     getGeneralActionQueueFacade().showProfile(findActor(), this,
getShowProfileId(), context); // (findActor(): will return the
ProfileControllerDefault if loaded)
   }
}
------------

------------------- The GeneralActionQueueFacade.showProfile() method:

public final <T extends HasShowProfile, Q extends
HasAddToQueue<ActionCommand<T>>> T showProfile(final T item, final Q queue,
final String id, final FlexShowContext context) {
 if (isNull(item)) { // buffer the action
     queue.addToQueue(new ActionCommandBase<T>(id) {
         public void execute(final T controller) {
                  controller.showProfile(context);
          }
    });
}
else {
   item.showProfile(context);
}
return item;
}

-------------------


​

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to