SAT collision detection and calculating MTV - slick2d

Hi, I’m currently implementing SAT collision detection for my game using SAT, which correctly returns true when there is a collision and false when there is isn’t. However, I want to extend the code to return the MTV but I’m having difficulties trying to return the correct value. Below is the code:


	
	ArrayList<Vector2f> playerV = new ArrayList<Vector2f>();
	ArrayList<Vector2f> shape2V = new ArrayList<Vector2f>();

	 float playerMin = 0; 
	 float playerMax = playerMin;
     
	 float shapeMin = 0; 
	 float shapeMax = shapeMin;
	 Vector2f shapeNormal = new Vector2f(0,0);	
	
	for(int j = playerV.size()-1, i = 0; i < playerV.size(); j = i, i++){
		
		Vector2f playerCorner1 = new Vector2f(playerV.get(j));
		Vector2f playerCorner2 = new Vector2f(playerV.get(i));
		
		Vector2f shapeCorner1 = new Vector2f(shape2V.get(j));
		Vector2f shapeCorner2 = new Vector2f(shape2V.get(i));
				
		Vector2f playerNormal = new Vector2f (playerCorner2.sub(playerCorner1).getPerpendicular().normalise());
		
		playerMin = playerV.get(0).dot(playerNormal); 
		playerMax = playerMin;
		
			for(int v = 0; v < playerV.size(); v++){
					float dot = playerV.get(v).dot(playerNormal);
				if(dot < playerMin){
					playerMin = dot;
				}else if(dot > playerMax){
					playerMax = dot;
				}		
			 }
		
			 for(int u = 0; u < shape2V.size(); u++){
					float dot = shape2V.get(u).dot(playerNormal);
				if(dot < shapeMin){
					shapeMin = dot;
				}else if(dot > shapeMax){
					shapeMax = dot;
					}	    
			  }
			  	  
				if(playerMin > shapeMax ||   shapeMin >  playerMax){
					return false;
				}else{
                                copyaxis = playerNormal;
                                }
	}
        
         mtv.set((shapeMax-playerMin) *-copyaxis.x ,(shapeMax-playerMin)*-copyaxis.y);
	 return true;
	
	}


What would be the best way to calculate the MTV? This was the recourse that I had used http://rocketmandevelopment.com/2010/05/19/separation-of-axis-theorem-for-collision-detection/ , but the method used to calculate the MTV is giving odd results. The mtv returned with the method described in the article always returns a 0 value for the x part of the mtv, for example: (0.0,59.0). This does make sense since the normalized vector for the axis being tested is something like (0,1) on collision.