implement the java semantic for copy-by-value, and fix the java.io.File bug