Feature request #135: Slight changes to access modifiers in AbstractMappingStrategy to make it more extensible.
Release 5.2 - 5/16/2020
Better support for streams while reading. Previously, even if CsvToBean.stream() was used, opencsv processed all of the input and created all beans before passing them downstream to whatever was waiting for the stream. Now beans are pulled off the assembly line as they are finished and passed to the next station in the stream. This should increase efficiency of CPU usage slightly as user code can continue to process while beans are still being created, and it should also lower memory usage if the beans are thrown away immediately following processing.
Feature request #122: It is now possible to define arbitrary behavior for error handling while creating beans (on reading) or output strings (on writing). For more information, please read the Javadoc for CsvExceptionHandler.
Bug #207: Validators were not run for the first line of data when using a position-based mapping strategy.
Bug #209: CSVReaderHeaderAware.readMap() could not take null values, which happened when using CSVReaderNullFieldIndicator.EMPTY_SEPARATORS.
Feature request #124: More detailed error message from CSVReaderHeaderAware upon encountering an unexpected number of headers. Thanks to Andrew M for the patch!
Feature request #126: Automatic conversion of enumeration types is now possible. Conversion on reading is case-insensitive. In addition, EnumSet is now supported as a collection type for the "splitting" annotations, and is the default implementation if a variable is declared as only a Set and the element type is an enumeration type. This is all in the interest of slightly increased performance for enumeration types.
Bug #212: Escaped separators were still treated as separators.
Merge Request #26 - memory optimization when there are no validators. Thanks to Zack Young!