Buggy code:
public class RosterViewContentProvider implements IStructuredContentProvider , ITreeContentProvider { private final RosterView rosterView ; RosterViewContentProvider ( RosterView rosterView ) { } private RosterParent invisibleRoot ; private RosterParent root ; public void inputChanged ( Viewer v , Object oldInput , Object newInput ) { } public void dispose ( ) { } public RosterBuddy findBuddyWithUserID ( ID userID ) { } public Object [ ] getElements ( Object parent ) { } public Object getParent ( Object child ) { } public Object [ ] getChildren ( Object parent ) { } public boolean hasChildren ( Object parent ) { } public RosterBuddy fillPresence ( RosterBuddy obj , IPresence presence ) { obj . setPresence ( presence ) ; obj . removeChildren ( ) ; <START_BUG> obj . addChild ( new RosterObject ( ( "XMPPID:<seq2seq4repair_space>" + ( obj . getID ( ) . getName ( ) ) ) ) ) ; <END_BUG> obj . addChild ( new RosterObject ( ( "Type:<seq2seq4repair_space>" + ( presence . getType ( ) . toString ( ) ) ) ) ) ; obj . addChild ( new RosterObject ( ( "Mode:<seq2seq4repair_space>" + ( presence . getMode ( ) . toString ( ) ) ) ) ) ; String status = presence . getStatus ( ) ; if ( ( status != null ) && ( ! ( status . equals ( "" ) ) ) ) obj . addChild ( new RosterObject ( ( "Status:<seq2seq4repair_space>" + status ) ) ) ; Map props = presence . getProperties ( ) ; for ( Iterator i = props . keySet ( ) . iterator ( ) ; i . hasNext ( ) ; ) { String key = ( ( String ) ( i . next ( ) ) ) ; String value = ( ( String ) ( props . get ( key ) ) ) ; if ( ( key != null ) && ( value != null ) ) obj . addChild ( new RosterObject ( ( ( key + ":<seq2seq4repair_space>" ) + value ) ) ) ; } return obj ; } public RosterBuddy createBuddy ( ID svcID , RosterBuddy oldBuddy , IRosterEntry entry ) { } public RosterGroup findGroup ( RosterParent parent , String name ) { } public RosterGroup findGroup ( RosterParent parent , ID id ) { } public String [ ] getAllGroupNamesForAccount ( ID accountID ) { } public RosterBuddy findBuddy ( RosterParent parent , IRosterEntry entry ) { } public RosterBuddy findBuddy ( RosterParent parent , ID entryID ) { } public void replaceEntry ( ID svcID , RosterParent parent , IRosterEntry entry ) { } protected void addBuddyWithGroupName ( RosterParent parent , ID serviceID , String groupName , RosterBuddy newBuddy ) { } public void addAccount ( ID accountID , String name ) { } protected RosterGroup findAccount ( String accountName ) { } protected RosterGroup findAccount ( ID acct ) { } public void addGroup ( ID svcID , String name ) { } public void addGroup ( ID svcID , RosterParent parent , String name ) { } public void removeGroup ( RosterParent parent , String name ) { } public void removeGroup ( String name ) { } public void replaceEntry ( ID serviceID , IRosterEntry entry ) { } public void removeRosterEntry ( ID entry ) { } public void removeEntry ( RosterParent parent , ID entry ) { } protected void removeChildren ( RosterParent parent , ID svcID ) { } public void removeAllEntriesForAccount ( RosterUserAccount account ) { } }

Fix:
obj . addChild ( new RosterObject ( ( "ID:<seq2seq4repair_space>" + ( obj . getID ( ) . getName ( ) ) ) ) ) ;