Buggy code:
private static final int RIGHT_WALL_X_DEVIATION = 130 ; private static final int RIGHT_WALL_WIDTH = 130 ; private static final int CEILING_HEIGHT = 110 ; private static final float COUNT_IN_TIME = 3000.0F ; private static final float TIME_REMAINING_FACTOR = 0.01F ; private static final int MINIMUM_SPLIT_RADIUS = 20 ; private static final int PAUSE_FACTOR = 300 ; private static final int CEILING_DRAW_X_DEVIATION = 10 ; private static final int CEILING_DRAW_Y_DEVIATION = 25 ; private static final int LEVEL_STRING_X_DEVIATION = 270 ; private static final int LEVEL_STRING_Y_DEVIATION = 84 ; private static final int SCORE_STRING_Y_DEVIATION = 84 ; private static final int COUNTER_BAR_X_DEVIATION = 80 ; private static final int COUNTER_BAR_Y_DEVIATION = 60 ; private static final int COUNTER_BAR_PARTS_FACTOR = 5 ; private static final int COUNTER_BAR_X_FACTOR = 10 ; private static final int GATE_LEFT = 11 ; private static final int GATE_DOWN = 9 ; private static final int GATE_Y_DEVIATION = 15 ; private static final int GATE_Y_FACTOR = 348 ; private static final int GATE_UP = 9 ; private static final int GATE_LEFT_LOWER = 9 ; private static final int GATE_Y_FACTOR_LOWER = 347 ; private static final int CIRCLE_DRAW_OFFSET = 13 ; private static final int MINIMUM_RADIUS = 10 ; private static final int RADIUS_2 = 20 ; private static final int RADIUS_3 = 30 ; private static final int RADIUS_4 = 45 ; private static final int RADIUS_5 = 65 ; private static final int RADIUS_6 = 90 ; private static final int BALL_IMAGE_THREE = 3 ; private static final int BALL_IMAGE_FOUR = 4 ; private static final int BALL_IMAGE_FIVE = 5 ; private static final int HEALTH_IMAGE_THREE = 3 ; private static final int HEALTH_IMAGE_FOUR = 4 ; private static final int HEALTH_IMAGE_FIVE = 5 ; private static final float PAUSE_OVERLAY_COLOR_FACTOR = 0.5F ; private static final int PAUSED_RECT_Y_DEVIATION = 150 ; private static final int PAUSED_STRING_X_DEVIATION = 130 ; private static final int PAUSED_STRING_Y_DEVIATION = 53 ; private static final float COUNT_FACTOR = 15.0F ; private static final int STARTING_STRING_X_DEVIATION = 90 ; private static final int STARTING_COUNT_X_DEVIATION = 5 ; private static final int WHOLE_CIRCLE_DEGREES = 360 ; private static final int COUNT_IN_DEGREES = 15 ; private static final int COUNTER_BAR_ROTATION_X = 12 ; private static final int COUNTER_BAR_ROTATION_Y = 50 ; private static final int COUNTER_BAR_DRAW_X_DEVIATION = 10 ; private static final int COUNTER_BAR_DRAW_Y_DEVIATION = 91 ; private static final int AMOUNT_OF_BALLS = 6 ; private static final int FLOATING_SCORE_BRIGHTNESS = 1 ; private static final int POWERUP_CHANCE = 20 ; private static final int COIN_CHANCE = 30 ; private static final int POWERUP_IMAGE_OFFSET = 12 ; private static final int COIN_IMAGE_OFFSET = 3 ; private Random random ; public GameState ( MainGame mg ) { } @ Override public void enter ( GameContainer container , StateBasedGame arg1 ) throws SlickException { } public void init ( GameContainer container , StateBasedGame arg1 ) throws SlickException { loadImages ( ) ; loadButtons ( ) ; setFloor ( new MyRectangle ( 0 , ( ( container . getHeight ( ) ) - ( GameState . FLOOR_Y_DEVIATION ) ) , container . getWidth ( ) , GameState . FLOOR_HEIGHT ) ) ; setLeftWall ( new MyRectangle ( 0 , 0 , GameState . LEFT_WALL_WIDTH , container . getHeight ( ) ) ) ; setRightWall ( new MyRectangle ( ( ( container . getWidth ( ) ) - ( GameState . RIGHT_WALL_X_DEVIATION ) ) , 0 , GameState . RIGHT_WALL_WIDTH , container . getHeight ( ) ) ) ; setCeiling ( new MyRectangle ( 0 , 0 , container . getWidth ( ) , GameState . CEILING_HEIGHT ) ) ; levels = new LevelContainer ( mg ) ; Weapon weapon1 = null ; Weapon weapon2 = null ; <START_BUG> weaponList = new WeaponList ( weapon1 , mg , this ) ; <END_BUG> weaponList . add ( weapon2 ) ; } public void update ( GameContainer container , StateBasedGame sbg , int delta ) throws SlickException { } private void playGame ( GameContainer container , StateBasedGame sbg , int delta , long curTime ) { } private void processTime ( StateBasedGame sbg , long curTime ) { } private void processPauseButtons ( GameContainer container , StateBasedGame sbg ) { } private void processCircles ( GameContainer container , StateBasedGame sbg , float deltaFloat ) { } private void updateShotCircles ( ) { } private void removeCeilingCircles ( ArrayList < BouncingCircle > ceilingList ) { } private void updateActiveCircles ( GameContainer container , StateBasedGame sbg , float deltaFloat , ArrayList < BouncingCircle > ceilingList ) { } private void updateFloatingScores ( float deltaFloat ) { } private void updateGateExistence ( float deltaFloat ) { } private void endLevel ( StateBasedGame sbg ) { } private void processPause ( ) { } public ArrayList < Gate > getGateList ( ) { } public void render ( GameContainer container , StateBasedGame arg1 , Graphics graphics ) throws SlickException { } private void drawGates ( GameContainer container , Graphics graphics ) { } private void drawMiscellaneous ( GameContainer container , Graphics graphics ) { } private void drawItems ( Graphics graphics ) { } private void drawPowerups ( Graphics graphics ) { } private void drawCoins ( Graphics graphics ) { } private void drawCountdownBar ( GameContainer container , Graphics graphics ) { } private void drawActiveGates ( GameContainer container , Graphics graphics ) { } private void drawActiveCircles ( Graphics graphics ) { } private void drawFloatingScores ( ) { } private void drawHealth ( Graphics graphics ) { } private void drawPausedScreen ( GameContainer container , Graphics graphics ) { } private void drawCountIn ( GameContainer container , Graphics graphics ) { } @ Override public int getID ( ) { } private void loadImages ( ) throws SlickException { } private void loadButtons ( ) throws SlickException { } private void loadPowerupImages ( ) throws SlickException { } private void loadHealthAndBallImages ( ) throws SlickException { } public void setCeiling ( MyRectangle c ) { }

Fix:
weaponList = new WeaponList ( weapon1 , mg , this , false ) ;