Buggy code:
public class RPG implements ActionListener { RPGDriver driver ; private Timer frameTimer ; private int ticks ; private int nextEnemyID ; private Floor floor ; private Hashtable < Integer , Player > players ; private ArrayList < Unit > units ; private ArrayList < GameObject > objects ; private ArrayList < Level > levels ; private ArrayList < Unit > unitsToAdd ; private ArrayList < Unit > unitsToRemove ; private HumanPlayer humanPlayer ; private DepthTree depthTree ; private Posn cameraPosn ; private Random RNG ; private GameWindow gameWindow ; private SoundPlayer soundPlayer ; private InputHandler inputHandler ; private int levelIndex ; private boolean redrawFloor ; public RPG ( GameWindow gameWindow ) { } public void start ( Hashtable < Color , Color > playerUnitPaletteSwaps ) { } public void start ( ) { Hashtable < Color , Color > emptyPaletteSwaps = new Hashtable < Color , Color > ( ) ; <START_BUG> start ( ) ; <END_BUG> } public void actionPerformed ( ActionEvent e ) { } public void doBlockUpkeep ( ) { } public Player addHumanPlayer ( ) { } public void incrementTicks ( ) { } public void addPlayer ( int playerNumber , Player player ) { } public void addUnit ( Unit u ) { } public void removeUnit ( Unit u ) { } public Posn gridToPixel ( Posn posn ) { } public Posn gridToPixel ( int x , int y ) { } public Posn pixelToGrid ( Posn pixel ) { } public Posn pixelToGrid ( int x , int y ) { } public void centerCamera ( Posn p ) { } public void centerCamera ( ) { } public void drawAll ( Graphics g ) { } public double distance ( Posn p , Posn q ) { } public double distance ( GameObject p , GameObject q ) { } public int distance2 ( Posn p , Posn q ) { } public int distance2 ( GameObject x , GameObject y ) { } public void doLeftClick ( Posn pixel ) { } public void doRightClick ( Posn pixel , String activity ) { } public void doAttackOrder ( Posn pixel ) { } public void doBashOrder ( Posn pixel ) { } public void moveCamera ( int x , int y ) { } public void moveCamera ( Posn posn ) { } public String coordsToDir ( int x , int y ) { } public String coordsToDir ( Posn posn ) { } public void addObject ( GameObject obj ) { } public void removeObject ( GameObject obj ) { } public ArrayList < Posn > getAdjacentSquares ( Posn p ) { } public ArrayList < Posn > getAdjacentDirections ( Posn p ) { } public Posn rotateClockwise ( Posn p ) { } public Posn rotateCounterclockwise ( Posn p ) { } public LinkedList < Posn > findPath ( Posn p1 , Posn p2 ) { } public LinkedList < Posn > findPath ( GameObject x , GameObject y ) { } public DepthTree getDepthTree ( ) { } public int getCameraX ( ) { } public int getCameraY ( ) { } public void setCameraPos ( Posn posn ) { } public void setCameraPos ( int x , int y ) { } public HumanPlayer getHumanPlayer ( ) { } public Unit getPlayerUnit ( ) { } public int getTicks ( ) { } public void setTicks ( int ticks ) { } public Floor getFloor ( ) { } public void setFloor ( Floor floor ) { } public Player getPlayer ( int index ) { } public ArrayList < Unit > getUnits ( ) { } public void setUnits ( ArrayList < Unit > units ) { } public Random getRNG ( ) { } public void doBlockOrder ( Posn posn ) { } public boolean ctrlIsDown ( ) { } public boolean shiftIsDown ( ) { } public boolean isObstacle ( Posn p ) { } public Posn getMousePosn ( ) { } public JFrame getGameWindow ( ) { } public void openLevel ( ) { } public void playSound ( String string ) { } public void queueRemoveUnit ( Unit unit ) { } public void queueAddUnit ( Unit unit ) { } public int nextEnemyID ( ) { } public ArrayList < GameObject > getObjects ( ) { } public void loadLevels ( ) { } public InputHandler getInputHandler ( ) { } public void killAllEnemies ( ) { } }

Fix:
start ( emptyPaletteSwaps ) ;