I stopped passing scanner to each function and created a new one inside each function instead. That fixed the problem. So, I figured out that problem.. but, I want to know why..
If you posted an SSCE, we could probably answer that. Unfortunately, the behaviour you are describing involves code that you haven't shown us.
is this a bug in Java or normal?
It is highly unlikely that this is a Java bug. The Scanner code has been in Java for a few years, and any significant bugs are likely to have been encountered before and fixed.
On the other hand, I can think of no reason why passing a Scanner to a method would make any difference per se.
But the bottom line is that without an SSCE it is not possible to figure out what your code is really doing ... and explain the root cause.
If I can understand why this is a problem then I can avoid it in future with other classes too.. unless this only happens with Scanner?
Without an SSCE we can't help you understand.