We use packer to pack more jars in cycle. Heap size grows and data are never released by gc. I checked heap dump and found out that pack uses static hash maps to store its internal data (ConstantPool). Such behavior is not good as it does not allow releasing data when pack is not already used. Perhaps it does not matter for usage in command line tool when only one jar is processed at given time but it is not good when API is used in any more complex application.