Weird bug with world bounds?

I've got collisions with walls working pretty well right now -  I modified the forward, backward, strafe right and strafe left key handlers in FirstPersonHandler to make a sphere with the new loc as the center, and test to see if the sphere intersects with the walls.  If it does, nothing happens, if it doesn't, the camera's location is moved to the new loc.  Here's the actionPerformed method of my modified Forward key handler:

public void performAction(InputActionEvent evt) {
       boolean intersects = false;
        Vector3f loc = new Vector3f ();
        Platform currentPlatform;
        Sphere camSphere;
        float camY = loc.y;
        loc.addLocal(camera.getDirection ().mult(speed * evt.getTime(), tempVa));
        camSphere = new Sphere ("Temp Sphere", loc, 25, 25, 3f);
        camSphere.setModelBound (new BoundingSphere ());
        camSphere.updateModelBound ();
        currentPlatform = firstPlatform;
      while (currentPlatform != null) {
         System.out.println ( () + "tt" + camSphere.getWorldBound ());
         if ( ().intersects (camSphere.getWorldBound ())) {
            intersects = true;
         currentPlatform = currentPlatform.nextPlatform;
      if (!intersects) {
         loc.y = camY;

The problem is when either the x or z coordinates of two boxes are very close together, the test fails and for some reason it doesn't think the sphere ever intersects - even when I'm standing in the box!  Here's an example of what the world bounds were of the two boxes and the sphere when I was inside one of the boxes:

center=(40.904854, 1.331747, 21.776215), extents=(4.0, 4.0, 4.0)      center=(40.874653, 8.720009, 19.955605), r=3.000041
center=(40.952576, 0.8174896, 27.45005), extents=(4.0, 4.0, 4.0)      center=(40.874653, 8.720009, 19.955605), r=3.000041

So you can see the x coordinates of the boxes were within .1 units, and the center of the sphere was inside the boxes.  Yet the intersects () method fails to see that they are intersecting.  Is this a bug with my code?  Or is it a problem with JME?