[SOLVED]Collision Detection Crash Bug [Slick-2D Game]

I have a strange bug in my collision detection. Everytime I go to move in general the game crashes and gives me this error.

Sun Apr 06 16:42:03 CDT 2014 INFO:Slick Build #237
Sun Apr 06 16:42:03 CDT 2014 INFO:LWJGL Version: 2.9.1
Sun Apr 06 16:42:03 CDT 2014 INFO:OriginalDisplayMode: 1366 x 768 x 32 @60Hz
Sun Apr 06 16:42:03 CDT 2014 INFO:TargetDisplayMode: 800 x 600 x 0 @0Hz
Sun Apr 06 16:42:04 CDT 2014 INFO:Starting display 800x600
Sun Apr 06 16:42:04 CDT 2014 INFO:Use Java PNG Loader = true
Sun Apr 06 16:42:04 CDT 2014 INFO:Controllers not available
Sun Apr 06 16:42:05 CDT 2014 ERROR:720
java.lang.ArrayIndexOutOfBoundsException: 720
	at org.newdawn.slick.tiled.Layer.getTileID(Layer.java:148)
	at org.newdawn.slick.tiled.TiledMap.getTileId(TiledMap.java:261)
	at ml.ardamax.epik.Game.update(Game.java:86)
	at org.newdawn.slick.state.StateBasedGame.update(StateBasedGame.java:266)
	at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:663)
	at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
	at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
	at ml.ardamax.epik.Main.main(Main.java:30)
Sun Apr 06 16:42:05 CDT 2014 ERROR:Game.update() failure - check the game code.
org.newdawn.slick.SlickException: Game.update() failure - check the game code.
	at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:669)
	at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
	at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
	at ml.ardamax.epik.Main.main(Main.java:30)

I’m not really sure whats going on…? Here is the source code for the Main Game State in my slick2d game.

Game.java:

package ml.ardamax.epik;

import java.util.ArrayList;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.Input;
import org.newdawn.slick.Music;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.Color;
import org.newdawn.slick.SpriteSheet;
import org.newdawn.slick.geom.Rectangle;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.GameState;
import org.newdawn.slick.state.StateBasedGame;
import org.newdawn.slick.tiled.TiledMap;

@SuppressWarnings("unused")
public class Game extends BasicGameState {
	private SpriteSheet sprites;
	private Music main;
	private TiledMap level1;
    private Image wizard;
    private Image archer;
    public int x;
    public int y;
    public int mx;
    public int my;
    public int objectLayer;
    
    
	
	@Override
	public void init(GameContainer gc, StateBasedGame game)
			throws SlickException {
		x = 736;
		y = 526;
		sprites = new SpriteSheet("/res/sprites.png", 16, 16);
		wizard = sprites.getSubImage(64, 96, 16, 16);
		archer = sprites.getSubImage(80, 96, 16, 16);
		level1 = new TiledMap("/res/level1.tmx");
	}

	
	@SuppressWarnings("static-access")
	@Override
	public void render(GameContainer gc, StateBasedGame game, Graphics g)
			throws SlickException {
		Input input = gc.getInput();
		//wizard.draw(736, 526, 2.0f);
		archer.draw(x, y, 2.0f);
		level1.render(0, 0);
		
		if (input.isMouseButtonDown(input.MOUSE_LEFT_BUTTON)){
			mx = input.getAbsoluteMouseX();
			my = input.getAbsoluteMouseY();
			g.drawString("X: "+mx+" Y:" +my, 0, 0);
		}
		
	}

	@Override
	public void update(GameContainer gc, StateBasedGame game, int delta)
			throws SlickException {
		objectLayer = level1.getLayerIndex("Objects");
		
		
		Input input = gc.getInput();
		
		if (input.isKeyPressed(input.KEY_Q)){
			gc.exit();
		}
		if (input.isKeyPressed(input.KEY_D) || input.isKeyDown(input.KEY_D)|| input.isKeyDown(input.KEY_RIGHT)|| input.isKeyPressed(input.KEY_RIGHT)){
			if (level1.getTileId(x, y+16, objectLayer) == 33 || level1.getTileId(x, y+16, objectLayer) == 40 || level1.getTileId(x, y+16, objectLayer) == 90){
				y +=5;
			}
			x+=16;
		}else if (input.isKeyPressed(input.KEY_W) || input.isKeyDown(input.KEY_W)|| input.isKeyDown(input.KEY_UP)|| input.isKeyPressed(input.KEY_UP)){
			if (level1.getTileId(x, y+16, objectLayer) == 33 || level1.getTileId(x, y+16, objectLayer) == 40 || level1.getTileId(x, y+16, objectLayer) == 90){
				y +=5;
			}
			y-=16;
			
		}else if (input.isKeyPressed(input.KEY_A) || input.isKeyDown(input.KEY_A) || input.isKeyDown(input.KEY_LEFT)|| input.isKeyPressed(input.KEY_LEFT)){
			if (level1.getTileId(x-16, y, objectLayer) == 33 || level1.getTileId(x-16, y, objectLayer) == 40 || level1.getTileId(x-16, y, objectLayer) == 90){
				x -=5;
			}
			x-=16;
		}
	}

	@Override
	public int getID() {
		// TODO Auto-generated method stub
		return 1;
	}

}

Sorry for the really messy code.