Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

FIND THE ERROR IN THE JAVA CODE package mypkg; import java.io.*; import java.uti

ID: 3743364 • Letter: F

Question

 FIND THE ERROR IN THE JAVA CODE package mypkg;   import java.io.*; import java.util.logging.Logger; import javax.servlet.*; import javax.servlet.annotation.*; import javax.servlet.http.*;   @WebFilter(urlPatterns={"/*"}) public class RequestTimerFilter implements Filter {    private static final Logger logger            = Logger.getLogger(RequestTimerFilter.class.getName());      @Override    public void init(FilterConfig config) throws ServletException {       logger.info("RequestTimerFilter initialized");    }      @Override    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain)            throws IOException, ServletException {       long before = System.currentTimeMillis();       chain.doFilter(request, response);       long after = System.currentTimeMillis();       String path = ((HttpServletRequest)request).getRequestURI();       logger.info(path + ": " + (after - before) + " msec");    }      Override    public void destroy() {       logger.info("RequestTimerFilter destroyed");    } }

Explanation / Answer

Error: ------- Override should be @Override before "public voide destroy()" method. Fixed code: -------------- package mypkg; import java.io.*; import java.util.logging.Logger; import javax.servlet.*; import javax.servlet.annotation.*; import javax.servlet.http.*; @WebFilter(urlPatterns={"/*"}) public class RequestTimerFilter implements Filter { private static final Logger logger = Logger.getLogger(RequestTimerFilter.class.getName()); @Override public void init(FilterConfig config) throws ServletException { logger.info("RequestTimerFilter initialized"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { long before = System.currentTimeMillis(); chain.doFilter(request, response); long after = System.currentTimeMillis(); String path = ((HttpServletRequest)request).getRequestURI(); logger.info(path + ": " + (after - before) + " msec"); } @Override public void destroy() { logger.info("RequestTimerFilter destroyed"); } }