This may be operator error but with the Potions Panel (thank you!) requiring other changes I may be seeing an unexpected side effect.
Item Manager->Usable->Food
I expect the state of the checkboxes for "per full" and "by room" to persist when I shut down and restart mafia and then log in with the same character. What I see is that they are both unchecked after login/restart.
This happens with both Food and Booze.
When I have both boxes checked and I successfully consume the first item on the list and there is room remaining, I expect the list to resort so that the room required for the top item is less than or equal to the amount of room remaining. What I am seeing is that consumption does not trigger any resort or filtering constrained by available room.
This also happens with both Food and Booze. "per full" and "by room" are the only boxes checked.
r19326
Edit: So after seeing this for a day or two and posting, I went back to check and the sorting worked as expected for booze. The food failure had room 15, an epic food at 8 and an epic food at 7. I ate an 8 (ha ha) and expected the 7 to sort to the top. It didn't. The 8 was still present even though there was only 7 fullness left. The booze , on the other hand, only had two epic choices and the second one was "room" one. After I consumed the first, the only remaining epic booze sorted to the top.
Edit: Just noticed a debug log that may be related.
Item Manager->Usable->Food
I expect the state of the checkboxes for "per full" and "by room" to persist when I shut down and restart mafia and then log in with the same character. What I see is that they are both unchecked after login/restart.
This happens with both Food and Booze.
When I have both boxes checked and I successfully consume the first item on the list and there is room remaining, I expect the list to resort so that the room required for the top item is less than or equal to the amount of room remaining. What I am seeing is that consumption does not trigger any resort or filtering constrained by available room.
This also happens with both Food and Booze. "per full" and "by room" are the only boxes checked.
r19326
Edit: So after seeing this for a day or two and posting, I went back to check and the sorting worked as expected for booze. The food failure had room 15, an epic food at 8 and an epic food at 7. I ate an 8 (ha ha) and expected the 7 to sort to the top. It didn't. The 8 was still present even though there was only 7 fullness left. The booze , on the other hand, only had two epic choices and the second one was "room" one. After I consumed the first, the only remaining epic booze sorted to the top.
Edit: Just noticed a debug log that may be related.
Code:
Unexpected error, debug log printed.
class java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.base/java.util.TimSort.mergeLo(TimSort.java:781)
at java.base/java.util.TimSort.mergeAt(TimSort.java:518)
at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448)
at java.base/java.util.TimSort.sort(TimSort.java:245)
at java.base/java.util.Arrays.sort(Arrays.java:1515)
at java.base/java.util.ArrayList.sort(ArrayList.java:1749)
at java.base/java.util.Collections.sort(Collections.java:177)
at net.java.dev.spellcast.utilities.LockableListModel.sort(LockableListModel.java:150)
at net.sourceforge.kolmafia.swingui.panel.UseItemEnqueuePanel$ReSortListener.execute(UseItemEnqueuePanel.java:477)
at net.sourceforge.kolmafia.swingui.listener.ThreadedListener.run(ThreadedListener.java:239)
at net.sourceforge.kolmafia.RequestThread$SequencedRunnable.run(RequestThread.java:418)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Last edited: