pcj
pcj copied to clipboard
Persistent Collections for Java
None of the types seem to have documentation, see for example [Transaction](https://github.com/pmem/pcj/blob/master/LLPL/src/main/java/lib/llpl/Transaction.java).
The code base has `printStackTrace` sprinkled over various places in place of proper error handling and logging. In cases where exceptions are wrapped the cause is not passed on. Interruption...
The library has `System.exit` sprinkled over the code base causing the shutdown of the entire application on error. This is considered bad practice, instead exceptions should be thrown.
Explicitly set the source and target language level used by javac. The project says the source level is 1.8 but it is not configured by javac.
Java 7 introduces the "[diamond operator](http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html)" that makes code with generics less verbose. The code base claims to be Java 8 but does not seem to make use of the...
Using a unit test framework is a common and established way to develop, organize and run unit tests.
It would be good to have a Jigsaw (Java 9) module for this library.
There seems `synchronized` sprinkled over the code base but I could not find any documented synchronization policy that specifies which objects can and can't be shared in which ways.
Java conventions and the recommendation from Oracle is to use [reverse DNS names](https://stackoverflow.com/questions/31916495/why-is-reverse-dns-notation-used-for-package-naming) for package names.
- I use K or V in place of Object in containers - It's not acceptable to have a System.exit(). I convert the code to throw a HeapCorruptedError exception. -...