add cause to throwing exception
fix javadoc