* fixed https://sonarcloud.io/project/issues?id=org.xmage%3Amage-root&issues=AWIlv32RgrzAwlaaQ7rP&open=AWIlv32RgrzAwlaaQ7rP
* ensure closing of scanner if it was opened
* Refactored method in EmpyrialArchAngel to not always return same value.
* Refactored method in FalkenrathAristocrat to not always return same value.
* Refactored method in GilderBairn to not always return the same value.
* fixed left open resources, ensured quiet closing of the streams
* Refactored method in IceCave to not always return same value.
* Refactored method in KjeldoranRoyalGuard to not always return same value.
* Refactored method in LegionsInitiative to not always return same value.
* Refactored method in NaturesWill to not always return same value.
* added quiet closing method in new streamutils class, used to clean up the connectdialog
* Fix small typo
* added quiet closing to saveobjectutil
* closed resources in savegame method of gamecontroller
* properly close resources in loadGame method of GameReplay class
* further proper resource closing in ServerMessagesUtil
* fixed unclosed resources in copy method in mage framework Copier
* closed unclosed resources in copyCompressed method in Copier
* ensure closing of filewriter in manasymbols
* ensure proper closing of Stream in arcane UI
* ensure closing of datagram socket in arcane Util
* ensure resource closing in deckimport from clipboard
* ensure closing of plugin classloader
* ensured closing of zipinputstream resource
* ensure closing of fileoutputstream in ScryfallSymbolsSource
* ensure closing resources after finishing/canceling download of pictures
* remove commented code
* move locks to try block to ensure unlocking along all execution paths
* remove dangerous instance of double-checked locking
* removed dangerous instance of double checked locking in settingsmanager
* Removed dangerous instance of double-checked locking in ThemePluginImpl
* close resource which did not happen certainly
* close another stream
* ensure closing of inputstream
"b" + "r" now changed to 'b' + 'w'. It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
I used Intellij IDEA to automatically refactor code to achive 3 goals.
1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog).
2) make effectively final variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible.
3) Get rid of unused imports (most of the changes) in whole project classes.
We shouldn't create new arraylist with default size and no element in it to show that no elements found in database. It's one more object in heap, which will be never used. There is special method Collections.emptyList() - it's more readeable and returns empty immutable list