// Path: src/main/java/org/t246osslab/easybuggy/core/utils/Closer.java
// public final class Closer {
// 
//     private static final Logger log = LoggerFactory.getLogger(Closer.class);
// 
//     // squid:S1118: Utility classes should not have public constructors
//     private Closer() {
//         throw new IllegalAccessError("Utility class");
//     }
// 
//     /**
//      * Close a Connection object.
//      * 
//      * @param conn Connection object.
//      */
//     public static void close(Connection conn) {
//         if (conn != null) {
//             try {
//                 conn.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close a Statement object.
//      * 
//      * @param stmt Statement object.
//      */
//     public static void close(Statement stmt) {
//         if (stmt != null) {
//             try {
//                 stmt.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close a ResultSet object.
//      * 
//      * @param rs ResultSet object.
//      */
//     public static void close(ResultSet rs) {
//         if (rs != null) {
//             try {
//                 rs.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close all Closeable objects.
//      * 
//      * @param closeables Closeable objects.
//      */
//     public static void close(Closeable... closeables) {
//         if (closeables != null) {
//             for (Closeable closeable : closeables) {
//                 try {
//                     if (closeable != null) {
//                         closeable.close();
//                     }
//                 } catch (IOException e) {
//                     log.error("IOException occurs: ", e);
//                 }
//             }
//         }
//     }
//     
// // for jdk 7 or later
// //    /**
// //     * Close all Closeable objects.
// //     *
// //     * @param closeables Closeable objects.
// //     */
// //    public static void close(AutoCloseable... closeables) {
// //        if (closeables != null) {
// //            for (AutoCloseable closeable : closeables) {
// //                try {
// //                    if(closeable != null){
// //                        closeable.close();
// //                    }
// //                } catch (IOException e) {
// //                    log.error("IOException occurs: ", e);
// //                } catch (Exception e) {
// //                    log.error("Exception occurs: ", e);
// //                }
// //            }
// //        }
// //    }
// }


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.t246osslab.easybuggy.core.utils.Closer;
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

            writer.write("<table style=\"width:100%;\">");
            writer.write("<tr><td>");
            writer.write("<h2>");
            writer.write("<span class=\"glyphicon glyphicon-globe\"></span>&nbsp;");
            if (htmlTitle != null) {
                writer.write(htmlTitle);
            }
            writer.write("</h2>");
            writer.write("</td>");
            if (userid != null && req.getServletPath().startsWith("/admins")) {
                writer.write("<td align=\"right\">");
                writer.write(getMsg("label.login.user.id", locale) + ": " + userid);
                writer.write("<br>");
                writer.write("<a href=\"/logout\">" + getMsg("label.logout", locale) + "</a>");
                writer.write("</td>");
            } else {
                writer.write("<td align=\"right\">");
                writer.write("<a href=\"/\">" + getMsg("label.go.to.main", locale) + "</a>");
                writer.write("</td>");
            }
            writer.write("</tr>");
            writer.write("</table>");
            writer.write("<hr style=\"margin-top:0px\">");
            writer.write(htmlBody);
            writer.write("</BODY>");
            writer.write("</HTML>");

        } catch (Exception e) {
            log.error("Exception occurs: ", e);
        } finally {

// Path: src/main/java/org/t246osslab/easybuggy/core/utils/Closer.java
// public final class Closer {
// 
//     private static final Logger log = LoggerFactory.getLogger(Closer.class);
// 
//     // squid:S1118: Utility classes should not have public constructors
//     private Closer() {
//         throw new IllegalAccessError("Utility class");
//     }
// 
//     /**
//      * Close a Connection object.
//      * 
//      * @param conn Connection object.
//      */
//     public static void close(Connection conn) {
//         if (conn != null) {
//             try {
//                 conn.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close a Statement object.
//      * 
//      * @param stmt Statement object.
//      */
//     public static void close(Statement stmt) {
//         if (stmt != null) {
//             try {
//                 stmt.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close a ResultSet object.
//      * 
//      * @param rs ResultSet object.
//      */
//     public static void close(ResultSet rs) {
//         if (rs != null) {
//             try {
//                 rs.close();
//             } catch (SQLException e) {
//                 log.error("IOException occurs: ", e);
//             }
//         }
//     }
// 
//     /**
//      * Close all Closeable objects.
//      * 
//      * @param closeables Closeable objects.
//      */
//     public static void close(Closeable... closeables) {
//         if (closeables != null) {
//             for (Closeable closeable : closeables) {
//                 try {
//                     if (closeable != null) {
//                         closeable.close();
//                     }
//                 } catch (IOException e) {
//                     log.error("IOException occurs: ", e);
//                 }
//             }
//         }
//     }
//     
// // for jdk 7 or later
// //    /**
// //     * Close all Closeable objects.
// //     *
// //     * @param closeables Closeable objects.
// //     */
// //    public static void close(AutoCloseable... closeables) {
// //        if (closeables != null) {
// //            for (AutoCloseable closeable : closeables) {
// //                try {
// //                    if(closeable != null){
// //                        closeable.close();
// //                    }
// //                } catch (IOException e) {
// //                    log.error("IOException occurs: ", e);
// //                } catch (Exception e) {
// //                    log.error("Exception occurs: ", e);
// //                }
// //            }
// //        }
// //    }
// }


// Path: src/main/java/org/t246osslab/easybuggy/core/servlets/AbstractServlet.java
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.owasp.esapi.ESAPI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.t246osslab.easybuggy.core.utils.Closer;
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

            writer.write("<table style=\"width:100%;\">");
            writer.write("<tr><td>");
            writer.write("<h2>");
            writer.write("<span class=\"glyphicon glyphicon-globe\"></span>&nbsp;");
            if (htmlTitle != null) {
                writer.write(htmlTitle);
            }
            writer.write("</h2>");
            writer.write("</td>");
            if (userid != null && req.getServletPath().startsWith("/admins")) {
                writer.write("<td align=\"right\">");
                writer.write(getMsg("label.login.user.id", locale) + ": " + userid);
                writer.write("<br>");
                writer.write("<a href=\"/logout\">" + getMsg("label.logout", locale) + "</a>");
                writer.write("</td>");
            } else {
                writer.write("<td align=\"right\">");
                writer.write("<a href=\"/\">" + getMsg("label.go.to.main", locale) + "</a>");
                writer.write("</td>");
            }
            writer.write("</tr>");
            writer.write("</table>");
            writer.write("<hr style=\"margin-top:0px\">");
            writer.write(htmlBody);
            writer.write("</BODY>");
            writer.write("</HTML>");

        } catch (Exception e) {
            log.error("Exception occurs: ", e);
        } finally {

            Closer.close(writer);
