https://docs.oracle.com/cd/B19306_01/java.102/b14355/apxermsg.htm#CEGCJFHJ https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64685/advanc4.htm