I am going to use this issue to catalog and prioritize the potential modifications our analysis of the code reveals.
High Priority
Use of primitive wrapper constructors should be replaced by calls to .valueOf. These constructors are deprecated and the .valueOf methods are HotSpot Intrinsic Candidates.
Replace Vector with CopyOnWriteArrayList or ArrayList if not used in a multithreaded context.
If target compatibility for the current version is for 1.7 or above replace as much resource handling with try-with-resources. Moving to 1.8 in the next minor version would be recommended as APIs can be much richer.
Clean up Spotbugs and ErrorProne issues.
Add default cases to switch statements as opposed to falling through and returning null outside of the switch body.
Examine all cases of static mutable fields to insure they are truly required to be mutable and if so mark the truly mutable fields volatile.
Add basic Maven support
Add unit testing
Migrate directory layout to the standard Maven layout Maven layout
Medium Priority *
Standardize member order. Currently fields and methods are intermingled making it very difficult to read the code quickly and adding additional complexity to merge operations.
NOTE: This is WIP.
I am going to use this issue to catalog and prioritize the potential modifications our analysis of the code reveals.
High Priority
Use of primitive wrapper constructors should be replaced by calls to .valueOf. These constructors are deprecated and the .valueOf methods are HotSpot Intrinsic Candidates.
Replace Vector with CopyOnWriteArrayList or ArrayList if not used in a multithreaded context.
If target compatibility for the current version is for 1.7 or above replace as much resource handling with try-with-resources. Moving to 1.8 in the next minor version would be recommended as APIs can be much richer.
Clean up Spotbugs and ErrorProne issues.
Add default cases to switch statements as opposed to falling through and returning
null
outside of the switch body.Examine all cases of static mutable fields to insure they are truly required to be mutable and if so mark the truly mutable fields volatile.
Add basic Maven support
Add unit testing
Migrate directory layout to the standard Maven layout Maven layout
Medium Priority *
Standardize member order. Currently fields and methods are intermingled making it very difficult to read the code quickly and adding additional complexity to merge operations.
JavaDoc
Low Priority *
Add Modern Logging Support via Log4j2 or Slf4j.