OrientedBoundingBox collision problem

I'm making a simple game where i want the player to walk around on the floor, and NOT walk through obstacles. My player is bounded by a OrientedBoundingBox, and the obstacle is a bounded by a BoundingBox. The simple solution would then be to check if the players next move brings him into the obstacle, and in that case refuse the move.

My problem is that sometimes the hasCollison() function returns false even though the player clearly collides. Have anyone else had this problem, or see if I have done anything wrong? 



If you try to run this test code,  move about inside the obstacle, rotate a bit.



import com.jme.bounding.BoundingBox;
import com.jme.bounding.OrientedBoundingBox;
import com.jme.input.NodeHandler;
import com.jme.input.action.KeyNodeBackwardAction;
import com.jme.input.action.KeyNodeForwardAction;
import com.jme.input.action.KeyNodeRotateLeftAction;
import com.jme.input.action.KeyNodeRotateRightAction;
import com.jme.math.Quaternion;
import com.jme.math.Vector3f;
import com.jme.renderer.Camera;
import com.jme.scene.Node;
import com.jme.scene.TriMesh;
import com.jme.scene.shape.Box;
import com.jmex.awt.applet.SimpleJMEApplet;

public class kollisjonstest extends SimpleJMEApplet {
    private static final long serialVersionUID = 1L;

    private TriMesh t;
    private TriMesh t2;
    private Quaternion rotQuat;
    private Vector3f axis;
    private Node scene;

    Camera cam;
   
   
    public void simpleAppletUpdate() {

        if(t2.hasCollision(scene, false)){
           System.out.print("Crashn");
           
        }
        else System.out.print("Were fine!n");
    }

    public void simpleAppletSetup() {
       
       scene = new Node();
        getLightState().setEnabled(false);
        rotQuat = new Quaternion();
        axis = new Vector3f(1, 1, 0.5f).normalizeLocal();

        Vector3f max = new Vector3f(20, 5, 20);
        Vector3f min = new Vector3f(-20, -5, -20);
        t = new Box("Box", min, max);
        t.setModelBound(new BoundingBox());
        t.updateModelBound();
        t.setLocalTranslation(new Vector3f(0, 0, -15));
        t.setRandomColors();
        Vector3f max2 = new Vector3f(5, 5, 5);
        Vector3f min2 = new Vector3f(-5, -5, -5);
       
        t2 = new Box("Box", min2, max2);
        t2.setModelBound(new OrientedBoundingBox());
        t2.updateModelBound();
        t2.setLocalTranslation(new Vector3f(30, 0, 0));
        t2.setRandomColors();      
        Vector3f opp = new Vector3f(0f, 1f, 0f);
        Vector3f origo = new Vector3f(0f, 0f, 0f);
       
        scene.attachChild(t);
        scene.attachChild(t2);  
        getRootNode().attachChild(scene);
       
        cam = getCamera();
        cam.setLocation(new Vector3f(-40f, 100.0f, 158f));
        cam.lookAt(origo, opp);
        cam.update();
       
        NodeHandler input = new NodeHandler(t2, 50, 10);
        input.removeAllActions();
        input.addAction(new KeyNodeForwardAction( t2, 50 ), "forward", true);
        input.addAction(new KeyNodeBackwardAction( t2, 50 ), "backward", true);      
        KeyNodeRotateRightAction rotateRight = new KeyNodeRotateRightAction( t2, 10 );
        rotateRight.setLockAxis( t2.getLocalRotation().getRotationColumn( 1 ) );
        input.addAction( rotateRight, "strafeRight", true );
        KeyNodeRotateLeftAction rotateLeft = new KeyNodeRotateLeftAction( t2, 10 );
        rotateLeft.setLockAxis( t2.getLocalRotation().getRotationColumn( 1 ) );
        input.addAction( rotateLeft, "strafeLeft", true );       
        this.setInputHandler(input);
       
       
       
    }
}

yes i had this problem when i started to make my Pong Game, then i used the jME2Physics instead of hasCollision(), it's slower, since it computes things more precisely than needed(such as materials and friction). but works and it's easy to implement. Well, when you know how it works!

Thanks, It works:)