Buggy code:
protected void handleChatMessage ( Message mess ) throws IOException { } protected void handleContainerMessage ( ContainerMessage mess ) throws IOException { } protected void handleIQMessageWithExtension ( IQ mess ) throws IOException { } protected void handleIQMessage ( IQ mess ) throws IOException { } protected void handlePresenceMessageWithExtension ( Presence mess ) throws IOException { } protected void handlePresenceMessage ( Presence mess ) throws IOException { } protected void handleXMPPMessage ( Packet aPacket ) throws IOException { } protected void initializeSharedObject ( ) throws Exception { } public void connect ( ID remote , IConnectContext joinContext ) throws ContainerConnectException { } public void disconnect ( ) { } protected SOContext makeSharedObjectContext ( SOConfig soconfig , IQueueEnqueue queue ) { } protected void processAsynch ( AsynchConnectionEvent e ) { } public void sendMessage ( ID target , String message ) throws IOException { } protected Presence makePresenceFromIPresence ( IPresence presence ) { } protected void sendPresenceUpdate ( ID target , Presence presence ) throws IOException { } protected void sendRosterAdd ( String user , String name , String [ ] groups ) throws IOException { } protected void sendRosterRemove ( String user ) throws IOException { } public Object getAdapter ( Class clazz ) { if ( clazz . equals ( IPresenceContainer . class ) ) { return new IPresenceContainer ( ) { public Object getAdapter ( Class clazz ) { return null ; } public void addPresenceListener ( IPresenceListener listener ) { sharedObject . addPresenceListener ( listener ) ; } public void addMessageListener ( IMessageListener listener ) { sharedObject . addMessageListener ( listener ) ; } public IMessageSender getMessageSender ( ) { return new IMessageSender ( ) { public void sendMessage ( ID fromID , ID toID , Type type , String subject , String message ) { try { XMPPClientSOContainer . this . sendMessage ( toID , message ) ; } catch ( IOException e ) { dumpStack ( ( ( ( "Exception<seq2seq4repair_space>in<seq2seq4repair_space>sendmessage<seq2seq4repair_space>to<seq2seq4repair_space>" + toID ) + "<seq2seq4repair_space>with<seq2seq4repair_space>message<seq2seq4repair_space>" ) + message ) , e ) ; } } } ; } public IPresenceSender getPresenceSender ( ) { return new IPresenceSender ( ) { public void sendPresenceUpdate ( ID fromID , ID toID , IPresence presence ) { try { Presence newPresence = makePresenceFromIPresence ( presence ) ; XMPPClientSOContainer . this . sendPresenceUpdate ( toID , newPresence ) ; } catch ( IOException e ) { dumpStack ( ( ( ( "Exception<seq2seq4repair_space>in<seq2seq4repair_space>sendPresenceUpdate<seq2seq4repair_space>to<seq2seq4repair_space>" + toID ) + "<seq2seq4repair_space>with<seq2seq4repair_space>presence<seq2seq4repair_space>" ) + presence ) , e ) ; } } public void sendRosterAdd ( ID fromID , String user , String name , String [ ] groups ) { try { XMPPClientSOContainer . this . sendRosterAdd ( user , name , groups ) ; } catch ( IOException e ) { dumpStack ( "Exception<seq2seq4repair_space>in<seq2seq4repair_space>sendRosterAdd" , e ) ; } } public void sendRosterRemove ( ID fromID , ID userID ) { try { if ( userID == null ) return ; XMPPClientSOContainer . this . sendRosterRemove ( userID . getName ( ) ) ; } catch ( IOException e ) { dumpStack ( "Exception<seq2seq4repair_space>in<seq2seq4repair_space>sendRosterAdd" , e ) ; } } } ; } public IAccountManager getAccountManager ( ) { return new IAccountManager ( ) { public void changePassword ( String newpassword ) throws ECFException { sharedObject . changePassword ( newpassword ) ; } public void createAccount ( String username , String password , Map attributes ) throws ECFException { sharedObject . createAccount ( username , password , attributes ) ; } public void deleteAccount ( ) throws ECFException { sharedObject . deleteAccount ( ) ; } public String getAccountInstructions ( ) { return sharedObject . getAccountInstructions ( ) ; } public String [ ] getAccountAttributeNames ( ) { return sharedObject . getAccountAttributeNames ( ) ; } public Object getAccountAttribute ( String name ) { return sharedObject . getAccountAttribute ( name ) ; } public boolean supportsCreation ( ) { return sharedObject . supportsCreation ( ) ; } } ; } public void addSubscribeListener ( ISubscribeListener listener ) { sharedObject . addSubscribeListener ( listener ) ; } public IChatRoomManager getChatRoomManager ( ) { return new IChatRoomManager ( ) { public ID [ ] getChatRooms ( ) { return XMPPClientSOContainer . this . getChatRooms ( ) ; } public IRoomInfo getChatRoomInfo ( ID roomID ) { return XMPPClientSOContainer . this . getChatRoomInfo ( roomID ) ; } public IChatRoomContainer makeChatRoomContainer ( ) throws ContainerInstantiationException { IChatRoomContainer chatContainer = null ; try { <START_BUG> chatContainer = new XMPPGroupChatSOContainer ( sharedObject . getConnection ( ) , getConnectNamespace ( ) ) ; <END_BUG> } catch ( IDInstantiationException e ) { ContainerInstantiationException newExcept = new ContainerInstantiationException ( ( "Exception<seq2seq4repair_space>creating<seq2seq4repair_space>chat<seq2seq4repair_space>container<seq2seq4repair_space>for<seq2seq4repair_space>presence<seq2seq4repair_space>container<seq2seq4repair_space>" + ( getID ( ) ) ) , e ) ; newExcept . setStackTrace ( e . getStackTrace ( ) ) ; throw newExcept ; } chats . add ( chatContainer ) ; return chatContainer ; } public IRoomInfo [ ] getChatRoomsInfo ( ) { ID [ ] chatRooms = getChatRooms ( ) ; if ( chatRooms == null ) return null ; IRoomInfo [ ] res = new IRoomInfo [ chatRooms . length ] ; int count = 0 ; for ( int i = 0 ; i < ( chatRooms . length ) ; i ++ ) { IRoomInfo infoResult = getChatRoomInfo ( chatRooms [ i ] ) ; if ( infoResult != null ) { res [ ( count ++ ) ] = infoResult ; } } IRoomInfo [ ] results = new IRoomInfo [ count ] ; for ( int i = 0 ; i < count ; i ++ ) { results [ i ] = res [ i ] ; } return results ; } } ; } } ; } else { return super . getAdapter ( clazz ) ; } } protected Collection getHostedRoomForService ( String svc ) throws XMPPException { } protected ID makeIDFromHostedRoom ( HostedRoom room ) { } protected ID [ ] getChatRooms ( ) { } class ECFRoomInfo implements IRoomInfo { RoomInfo info ;

Fix:
chatContainer = new XMPPGroupChatSOContainer ( XMPPClientSOContainer . this . getConnection ( ) , sharedObject . getConnection ( ) , getConnectNamespace ( ) ) ;