Buggy code:
public abstract class FrameContainer < T extends Window > { protected Color notification = Color . BLACK ; protected final ListenerList listeners = new ListenerList ( ) ; protected final IRCDocument document ; protected final Collection < FrameContainer < ? > > children = new CopyOnWriteArrayList < FrameContainer < ? > > ( ) ; protected final Collection < T > windows = new CopyOnWriteArrayList < T > ( ) ; protected final Class < T > windowClass ; protected FrameContainer < ? > parent ; private String icon ; private String name ; private String title ; private final StringTranscoder transcoder ; private final ConfigManager config ; private final FrameContainer < T > . IconChanger changer = new IconChanger ( ) ; private final Styliser styliser ; protected FrameContainer ( final String icon , final String name , final String title , final Class < T > windowClass , final ConfigManager config ) { } @ Deprecated public final T getFrame ( ) { } public Collection < FrameContainer < ? > > getChildren ( ) { } public boolean isChild ( final FrameContainer < ? > target ) { } public void addChild ( final FrameContainer < ? > child ) { } public void removeChild ( final FrameContainer < ? > child ) { } public synchronized void setParent ( final FrameContainer < ? > parent ) { } public FrameContainer < ? > getParent ( ) { } public IRCDocument getDocument ( ) { } public StringTranscoder getTranscoder ( ) { } @ Override public String toString ( ) { } public String getName ( ) { } protected void setName ( final String name ) { } public String getTitle ( ) { } public void setTitle ( final String title ) { this . title = title ; for ( FrameInfoListener listener : listeners . get ( FrameInfoListener . class ) ) { <START_BUG> listener . titleChanged ( this , name ) ; <END_BUG> } } public void close ( ) { } public abstract Server getServer ( ) { } public final void setIcon ( final String icon ) { } private void iconUpdated ( ) { } public final String getIcon ( ) { } public ConfigManager getConfigManager ( ) { } public Styliser getStyliser ( ) { } public void activateFrame ( ) { } protected void clearNotification ( ) { } public void sendNotification ( final Color colour ) { } public Color getNotification ( ) { } @ SuppressWarnings ( "element-type-mismatch" ) public boolean ownsFrame ( final Window target ) { } @ Deprecated public void windowOpened ( ) { } public abstract void windowClosing ( ) { } public abstract void windowClosed ( ) { } public void windowActivated ( ) { } @ Deprecated public void windowDeactivated ( ) { } public void addLine ( final String type , final Date timestamp , final Object ... args ) { } public void addLine ( final String type , final Object ... args ) { } public void addLine ( final StringBuffer type , final Date timestamp , final Object ... args ) { } public void addLine ( final StringBuffer type , final Object ... args ) { } public void addLine ( final String line , final boolean timestamp ) { } public void addLine ( final String line , final Date timestamp ) { } public void addNotificationListener ( final NotificationListener listener ) { } public void removeNotificationListener ( final NotificationListener listener ) { } public void addSelectionListener ( final SelectionListener listener ) { } public void removeSelectionListener ( final SelectionListener listener ) { } public void addFrameInfoListener ( final FrameInfoListener listener ) { } public void removeFrameInfoListener ( final FrameInfoListener listener ) { } public void addWindow ( T window ) { } public void removeWindow ( T window ) { } public Collection < T > getWindows ( ) { } public Class < T > getWindowClass ( ) { } private class IconChanger implements ConfigChangeListener { @ Override public void configChanged ( final String domain , final String key ) { } } }

Fix:
listener . titleChanged ( this , title ) ;