There are 4 main categories extended the class of Transaction, when the user inputs a typical type to record the transaction in. It goes to the wrong one.
The bug was reproduced by creating new transaction record with User.addTransaction(...). Consider studying the condition checking/ switching on the Transaction object creation step in addTransaction(...), may need a better type checking procedure.
This bug happened when the user trying to record expense transactions to the transaction records. It will inherit the wrong type as income transaction, thus I changed the type recognize methods in User.java to correctly recorded the transaction with the corresponding type.