diff options
2 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeView.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeView.java index d55385fc2..ae6b4efbc 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeView.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeView.java @@ -199,13 +199,15 @@ public class SynchronizeView extends PageBookView implements ISynchronizeView, I public void dispose() { super.dispose(); TeamUI.getSynchronizeManager().removeSynchronizeParticipantListener(this); + // Pin action is hooked up to listeners, must call dispose to un-register. + fPinAction.dispose(); + // Remember the last active participant if(activeParticipantRef != null) { IDialogSettings section = getDialogSettings(); section.put(KEY_LAST_ACTIVE_PARTICIPANT, activeParticipantRef.getId()); } fParticipantToPart = null; - fPartToParticipant = null; - + fPartToParticipant = null; } /* (non-Javadoc) diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/PinParticipantAction.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/PinParticipantAction.java index 54926649e..bc77ad46d 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/PinParticipantAction.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/PinParticipantAction.java @@ -76,4 +76,10 @@ public class PinParticipantAction extends Action implements IPropertyChangeListe updateState(); } } + + public void dispose() { + if (participant != null) { + participant.removePropertyChangeListener(this); + } + } } |