java.sql.ResultSet rset = pstmt.executeQuery("SELECT DISTINCT payment_mode, transaction_type, credit FROM ac_cash_collection WHERE shift_no = '" + shiftNumber + "'");
java.sql.ResultSet rset2 = pstmt.executeQuery("select debit from ac_cash_book where shift_no='"+shiftNumber+"'");
आपका दूसरा कॉल पहले वाले द्वारा उत्पन्न संसाधनों को रिलीज़ करता है, इसलिए परिणामसेट बंद है।