I am using .toString to return a string representation of an object, i.e.
jcb.engineMove(move.toString());
will produce e2e4.
What
I hope this is not code of toString() method in Move class. The reason of my fear is that you are creating Move object inside of it and invoke recursively toString() method by s+="" + move; (this is same as s+=move.toString()).
toString()
Move
s+="" + move;
s+=move.toString()