Why have you got break in the loop?
You should not need break in a loop; you should be returning results. You should not need a loop in a recursive method at all.
The reason for the negative numbers is that you have an overflow error. You are also not calculating the numbers correctly; there are no Fibonacci numbers where index ≤ 100 beginning 104…. The reason is that you are not incrementing the “minus” numbers. (And minusX is a very poor name for those parameters.) If you did not get an error message, it means there was no Exception and your method exited normally without running out of stack space.
You can avoid the arithmetic overflow error by using
BigIntegers instead of longs.
BigInteger fib1 = BigInteger.ONE; // etc