PreparedStatement.setDate takes a java.sql.Date, not a java.util.Date.
(Out of interest, how come you're not actually seeing this as a compile-time error? Your life will become a lot easier if you can resolve compilation failures without having to get to that point in a test run...)