Phoenix nanos > 999999999 or < 0

Phoniex execute JDBC inter with Calendar like below:

		Calendar cal = Calendar.getInstance();
		cal.setTimeZone(TimeZone.getDefault());
		
		Timestamp timestramp = new Timestamp(new java.util.Date().getTime());
		String sql = "UPSERT INTO \"NanosTest\" (\"ROW_ID\", \"q\") VALUES (?, ?)";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		
		pstmt.setString(1, "100");
		pstmt.setTimestamp(2, timestramp, cal);
		pstmt.addBatch();
		
		pstmt.executeBatch();

throw java.lang.IllegalArgumentException: nanos > 999999999 or < 0, the completed stacktrace like:

Exception in thread "main" java.lang.IllegalArgumentException: nanos > 999999999 or < 0
	at java.sql.Timestamp.setNanos(Timestamp.java:386)
	at org.apache.phoenix.util.DateUtil.getTimestamp(DateUtil.java:142)
	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.setTimestamp(PhoenixPreparedStatement.java:489)

note that, the create table DML like: CREATE TABLE IF NOT EXISTS “NanosTest” (“ROW_ID” VARCHAR PRIMARY KEY, “f”.”q” TIMESTAMP)