Buggy code:
public void activated ( org . eclipse . ecf . core . identity . ID [ ] others ) { } public void chatException ( Exception e , String text ) { } public void chatGUIDestroy ( ) { } public void deactivated ( ) { } public void destroySelf ( ) { } public String getDownloadDirectory ( String dir ) { } public SharedObjectEventListener getSharedObjectEventListener ( ) { } public String getLocalFullProjectPath ( ) { } public String getLocalFullDownloadPath ( ) { } protected void createOutputView ( ) { } public IResource getResource ( ) { } protected ReplicaSharedObjectDescription getReplicaDescription ( org . eclipse . ecf . core . identity . ID remoteID ) { } public org . eclipse . ecf . core . identity . ID getServerID ( ) { } public String getTreeTopLabel ( ) { } public IUser getUser ( ) { } public IUser getUserForID ( final org . eclipse . ecf . core . identity . ID user ) { } public String getUserName ( ) { } public String getVersionString ( ) { } public String getWindowTitle ( ) { } protected void handleCreateObject ( ReplicaSharedObjectDescription cons ) { } public void handleNotifyUserAdded ( IUser user ) { } protected void handleRequestUserUpdate ( org . eclipse . ecf . core . identity . ID requestor ) { } protected void handleShowPrivateTextMsg ( IUser remote , String aString ) { } protected void handleShowTextMsg ( org . eclipse . ecf . core . identity . ID remote , String aString ) { } protected void handleUserUpdate ( final IUser ud ) { } protected void handleUserMessage ( final IUser sender , String msg ) { } protected synchronized void handleStartedTyping ( IUser user ) { } public void sendStartedTyping ( ) { } public void inputText ( String aString ) { } public void disconnect ( ) { } public Object getObject ( org . eclipse . ecf . core . identity . ID obj ) { } public void memberAdded ( org . eclipse . ecf . core . identity . ID member ) { } public void memberRemoved ( final org . eclipse . ecf . core . identity . ID member ) { } public void messageProxyObject ( org . eclipse . ecf . core . identity . ID target , String classname , String meth , Object [ ] args ) { } public void otherActivated ( org . eclipse . ecf . core . identity . ID object ) { } public void otherDeactivated ( org . eclipse . ecf . core . identity . ID object ) { } public void refreshProject ( ) { } public void sendNotifyUserAdded ( ) { } public void sendPrivateMessageToUser ( org . eclipse . ecf . core . identity . ID toId , String msg ) { } public void sendPrivateMessageToUser ( IUser touser , String msg ) { } public void sendRegisterProxy ( org . eclipse . ecf . core . identity . ID toID , String proxyClass , String name ) { } public void sendRequestUserUpdate ( org . eclipse . ecf . core . identity . ID requestTarget ) { } public void sendRingMessageToUser ( IUser user , String msg ) { } public void sendImage ( org . eclipse . ecf . core . identity . ID toID , ImageData imageData ) { } Map shells = new HashMap ( ) ; protected void handleShowImageStart ( final org . eclipse . ecf . core . identity . ID id , final String fromUser , final ImageWrapper imageWrapper ) { final Display display = localGUI . getTextControl ( ) . getDisplay ( ) ; display . asyncExec ( new Runnable ( ) { public void run ( ) { ShowImageShell showImageShell = ( ( ShowImageShell ) ( shells . get ( id ) ) ) ; if ( showImageShell == null ) { showImageShell = new ShowImageShell ( display , id , new DisposeListener ( ) { public void widgetDisposed ( DisposeEvent e ) { shells . remove ( id ) ; } } ) ; shells . put ( id , showImageShell ) ; } <START_BUG> showImageShell . initialize ( Messages . bind ( EclipseCollabSharedObject_SCREEN_CAPTURE_FROM , fromUser ) , imageWrapper ) ; <END_BUG> showImageShell . open ( ) ; } } ) ; } protected void handleShowImageData ( final org . eclipse . ecf . core . identity . ID id , final byte [ ] data , final Boolean done ) { } public void sendShowTextMsg ( String msg ) { } public void sendUnregisterProxy ( org . eclipse . ecf . core . identity . ID toID , String proxyClass ) { } public void sendUserUpdate ( org . eclipse . ecf . core . identity . ID target ) { } public void setListener ( SharedObjectEventListener l ) { } public void setServerID ( org . eclipse . ecf . core . identity . ID server ) { } public void setVersionString ( String ver ) { } public void setWindowTitle ( String title ) { } protected void activateView ( ) { } public void showLineOnGUI ( final org . eclipse . ecf . core . identity . ID remote , final String line ) { } public void showRawLine ( final org . eclipse . ecf . core . identity . ID sender , final String line , final Runnable onClick ) { } public static class SharedMarker implements Serializable { private static final long serialVersionUID = 7419507867486828728L ; String message = null ; Integer offset = null ; Integer length = null ; public SharedMarker ( String message , Integer offset , Integer length ) { } public String getMessage ( ) { } public Integer getOffset ( ) { } public Integer getLength ( ) { } public String toString ( ) { } }

Fix:
showImageShell . initialize ( NLS . bind ( EclipseCollabSharedObject_SCREEN_CAPTURE_FROM , fromUser ) , imageWrapper ) ;