Buggy code:
public class CoreClient { public interface Iface { public void accept ( int gNumber , Set < Extension > exts ) throws C4Exception { } public void startGame ( String p1 , String p2 ) throws C4Exception { } public void requestMove ( String player ) throws C4Exception { } public void doneMove ( String player , int col ) throws C4Exception { } public void gameEnd ( String player ) throws C4Exception { } public void error ( int eCode , String message ) throws C4Exception { } } public static class Client extends C4Client implements CoreClient . Iface { public Client ( BufferedWriter out ) { } public void accept ( int gNumber , Set < Extension > exts ) throws C4Exception { } public void startGame ( String p1 , String p2 ) throws C4Exception { } public void requestMove ( String player ) throws C4Exception { } public void doneMove ( String player , int col ) throws C4Exception { } public void gameEnd ( String player ) throws C4Exception { } public void error ( int eCode , String message ) throws C4Exception { } private void sendAccept ( int gNumber , Set < Extension > exts ) throws C4Exception { } private void sendStartGame ( String p1 , String p2 ) throws C4Exception { } private void sendRequestMove ( String player ) throws C4Exception { } private void sendDoneMove ( String player , int col ) throws C4Exception { } private void sendGameEnd ( String player ) throws C4Exception { } private void sendError ( int eCode , String message ) throws C4Exception { } } public static class Processor < I extends CoreClient . Iface > extends C4Processor < I > { public Processor ( I interf ) { } @ Override protected Map < String , C4ProcessFunction < I , ? extends C4Args > > getProcessMap ( ) { } } public static class Accept < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . AcceptArgs > { @ Override public CoreClient . AcceptArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . AcceptArgs args , I iface ) throws C4Exception { } } public static class StartGame < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . StartGameArgs > { @ Override public CoreClient . StartGameArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . StartGameArgs args , I iface ) throws C4Exception { } } public static class RequestMove < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . RequestMoveArgs > { @ Override public CoreClient . RequestMoveArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . RequestMoveArgs args , I iface ) throws C4Exception { } } public static class DoneMove < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . DoneMoveArgs > { @ Override public CoreClient . DoneMoveArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . DoneMoveArgs args , I iface ) throws C4Exception { } } public static class GameEnd < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . GameEndArgs > { @ Override public CoreClient . GameEndArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . GameEndArgs args , I iface ) throws C4Exception { } } public static class Error < I extends CoreClient . Iface > extends C4ProcessFunction < I , CoreClient . ErrorArgs > { @ Override public CoreClient . ErrorArgs getEmptyArgsInstance ( ) { } @ Override protected void perform ( CoreClient . ErrorArgs args , I iface ) throws C4Exception { } } public static class AcceptArgs extends C4Args { private GroupNumber groupNumber ; private ExtensionList extensionList ; public AcceptArgs ( ) { } public AcceptArgs ( int gNumber , Set < Extension > exts ) throws InvalidParameterError { } @ Override public String [ ] getArgArray ( ) { String [ ] result ; <START_BUG> if ( ( ( extensionList . getValue ( ) ) != null ) && ( ( extensionList . getValue ( ) . size ( ) ) > 1 ) ) { <END_BUG> result = new String [ ] { groupNumber . serialize ( ) , extensionList . serialize ( ) } ; } else { result = new String [ ] { groupNumber . serialize ( ) } ; } return result ; } @ Override public void read ( String argString ) throws C4Exception { } @ Override public void validate ( ) throws SyntaxError { } } public static class StartGameArgs extends C4Args { private PlayerName player1 ; private PlayerName player2 ; public StartGameArgs ( ) { } public StartGameArgs ( String p1 , String p2 ) throws InvalidParameterError { } @ Override public String [ ] getArgArray ( ) { return new String [ ] { player1 . serialize ( ) , player2 . serialize ( ) } ; } @ Override public void read ( String argString ) throws C4Exception { } @ Override public void validate ( ) throws SyntaxError { } } public static class RequestMoveArgs extends C4Args { private PlayerName player ; public RequestMoveArgs ( ) { } public RequestMoveArgs ( String p ) throws InvalidParameterError { } @ Override public String [ ] getArgArray ( ) { return new String [ ] { player . serialize ( ) } ; } @ Override public void read ( String argString ) throws C4Exception { } @ Override public void validate ( ) throws SyntaxError { } } public static class DoneMoveArgs extends C4Args { private PlayerName player ; private Column column ; public DoneMoveArgs ( ) { } public DoneMoveArgs ( String pName , int col ) throws InvalidParameterError { }

Fix:
if ( ( ( extensionList . getValue ( ) ) != null ) && ( ( extensionList . getValue ( ) . size ( ) ) > 0 ) ) {