Example usage for org.hibernate SessionFactory close

List of usage examples for org.hibernate SessionFactory close

Introduction

In this page you can find the example usage for org.hibernate SessionFactory close.

Prototype

void close() throws HibernateException;

Source Link

Document

Destroy this SessionFactory and release all resources (caches, connection pools, etc).

Usage

From source file:submitaction.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//from w  w w.jav  a 2 s.com
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    String username = (String) session.getAttribute("username");
    String dpimage = (String) session.getAttribute("dpimage");

    if (username == null)
        response.sendRedirect("login.jsp");
    else {

        String problemcode = (String) request.getParameter("q");
        String contestcode = (String) request.getParameter("c");
        String contestpath = Path.getArgPath("contests", contestcode);
        String userpath = Path.getArgPath("users", username);

        /* =========================== user not registered : redirect to index page ====================*/
        Connection con = null;
        Config c = new Config();
        int check = 0;
        Timestamp sdate = null, edate = null, ts = null;
        try {

            con = c.getcon();
            Statement stmt7 = con.createStatement();
            Statement stmt8 = con.createStatement();

            String sq = "Select count(*) as col from " + contestcode + "ranking where userid='" + username
                    + "'";
            String sq2 = "Select * from ContestInfo where contestcode='" + contestcode + "'";
            ResultSet rs8 = stmt8.executeQuery(sq2);
            if (rs8.next()) {
                sdate = rs8.getTimestamp("starttime");
                edate = rs8.getTimestamp("endtime");
            }
            java.util.Date date = new java.util.Date();
            ts = new Timestamp(date.getTime());

            //out.println(sq);
            ResultSet rs7 = stmt7.executeQuery(sq);
            if (rs7.next())
                check = Integer.parseInt(rs7.getString("col"));

        } catch (Exception e) {
        }

        if (!(ts.compareTo(sdate) > 0 && ts.compareTo(edate) < 0))
            response.sendRedirect("contestshow.jsp?c=PRACTICE");
        else if (check == 0)
            response.sendRedirect("index.jsp?register=True");
        else {
            /* ========================== get browsefile or editorfile  ==================== */

            Part filePart = null;
            String browsefile = null, ext = null, editorfile = null, language = null;
            int l = 0;
            try {
                MultipartRequest m = new MultipartRequest(request, userpath);
                filePart = request.getPart("test2");
                browsefile = (String) m.getFilesystemName("test2");

                editorfile = (String) m.getParameter("test1");

                language = (String) m.getParameter("language");

                HashMap<String, String> map = new HashMap<String, String>();
                map.put("AWK", "awk");
                map.put("Bash", "sh");
                map.put("C++", "cpp");
                map.put("C", "c");
                map.put("C#", "cs");
                map.put("Java", "java");
                map.put("Haskell", "hs");
                map.put("Perl", "pl");
                map.put("Pike", "pike");
                map.put("Python2.7", "py");
                map.put("Python3", "py");
                map.put("PHP", "php");
                map.put("Pascal", "pas");
                map.put("Ruby", "rb");
                ext = (String) map.get(language);
                l = editorfile.length();
            } catch (Exception e) {
                out.print("hi");
                out.flush();
            }

            if (l == 0 && browsefile == null) {
                //no file selected 
                response.sendRedirect("submit.jsp?q=" + problemcode + "&c=" + contestcode);
            } else {

                BufferedReader br = null;
                BufferedWriter bout = null;

                SessionFactory factory = new ConnectionProvider().getSessionFactory();
                Session s = factory.openSession();
                String id = "", st = "";
                Query q = null;
                Object[] ob = null;
                Transaction t = null;
                /* ==================== unique name : get from id table ============= */

                try {

                    st = "FROM Id id";
                    q = s.createQuery(st);
                    List<Id> users = q.list();
                    ob = users.toArray();
                    int preid = ((Id) ob[0]).getId();
                    id = "" + (preid + 1);
                    t = s.beginTransaction();
                    s.delete((Id) ob[0]);
                    s.saveOrUpdate(new Id(preid + 1));
                    t.commit();
                } catch (Exception e) {
                }

                /* ================== rename filenames and create folder and copy files in env =========== */
                //out.print(browsefile);out.flush();
                String browsefilepath = userpath + browsefile;
                String problempath = Path.getArgPath("contests", contestcode, problemcode); // for stdin.txt

                String codefilename = "Main" + id;

                //       rename procedure
                File file = new File(browsefilepath);
                // File (or directory) with new name
                File file2 = new File(userpath + codefilename + "." + ext);
                // Rename file (or directory)
                boolean success = file.renameTo(file2);

                //creating new folder for each sumission in env dir.

                String envPath = Path.getArgPath("env", codefilename);
                File dir = new File(envPath);
                if (!dir.exists()) {
                    dir.mkdir();
                }

                // copy file to env folder inside mkdir folder
                String userfilepath = userpath + codefilename + "." + ext;
                envPath = envPath + ("Main" + id + "." + ext);

                try {

                    if (editorfile.length() != 0) {
                        //out.print("this running");
                        bout = new BufferedWriter(new FileWriter(userfilepath), 10000);
                        bout.write(editorfile);
                        bout.close();

                        bout = new BufferedWriter(new FileWriter(envPath), 10000);
                        bout.write(editorfile);
                        bout.close();

                    } else {
                        br = new BufferedReader(new FileReader(userfilepath));
                        bout = new BufferedWriter(new FileWriter(envPath), 10000);
                        String line = "";
                        while ((line = br.readLine()) != null) {
                            bout.write(line + "\n");
                            bout.flush();
                        }
                        bout.flush();
                        bout.close();
                        br.close();
                    }

                } catch (Exception e) {
                }

                /* ======================= Running judge now  | ranking update  | status update ============ */

                // out.print((String)m.getParameter("language"));out.flush();
                Problems now = null;
                Date d = null;
                try {
                    st = "FROM Problems S WHERE S.problemcode='" + (String) request.getParameter("q") + "'";
                    q = s.createQuery(st);
                    List<Problems> ques = q.list();
                    ob = ques.toArray();
                    now = (Problems) ob[0];
                    d = new Date();
                    //out.print(now.toString());out.flush();

                } catch (Exception e) {
                    out.print("msg1=" + e.getMessage());
                }

                try {
                    Timestamp tmp = new Timestamp(d.getTime());

                    //out.println(language);
                    Q queue = new Q(codefilename, username, language, ext, problempath, "unjudge",
                            Double.parseDouble(now.getTimelimit()), "null", tmp, 0, 0, contestcode, 0,
                            problemcode, now.getTestfiles());
                    //do the judge work ;
                    t = s.beginTransaction();
                    s.saveOrUpdate(queue);
                    t.commit();
                } catch (Exception ex) {
                    out.print("msg2=" + ex.getMessage());
                } finally {
                    s.close();
                    factory.close();
                }

                // Show exit code of process
                //         out.println("Procefdsfdsfdsss exited with code = ");
                try {

                    //judge the solution         
                    //out.print("judge process starts "); out.flush();
                    final String[] cmd = { "/bin/bash", "-c", "cd " + Path.getPath() + " ; python judge.py" };
                    Runtime.getRuntime().exec(cmd);
                    //p.waitFor();

                    // inner class to run process without wait  outside main thread
                    /*  new Thread(new Runnable() {
                           public void run() {
                             try
                             {
                                 Runtime.getRuntime().exec(cmd);
                                 //p.waitFor();
                             }catch(Exception e){}
                       }
                     }).start(); 
                            
                    */
                    String problemid = (String) request.getParameter("q");
                    response.sendRedirect(
                            "status.jsp?q=" + problemid + "&c=" + contestcode + "&code=" + codefilename);
                    /* int chk = 0;   
                     while(chk == 0)
                     {
                            Thread.sleep(1);   
                            String query="Select count(*) as ch , status from " + contestcode+"submissions where username='"+username + "' and codefilename='"+codefilename+"'";
                            //out.println(query);
                                   
                            String pid = ""+problemid.charAt(problemid.length()-1);
                            //out.println(query);
                            ResultSet rs = stmt.executeQuery(query);
                            if(rs.next()){
                                chk = Integer.parseInt(rs.getString("ch"));
                                if(chk == 0)
                                 continue;
                                        
                                out.print("<style>#loading{visibility: hidden;</style>");              
                                out.println(rs.getString("status"));
                                        
                                if(rs.getString("status").compareTo("Accepted")==0)
                                {
                                    String sq = "Select * from "+contestcode+"ranking where userid='"+username+"'";
                                    //out.println(sq);
                                    ResultSet rs6 = stmt6.executeQuery(sq);
                                    if(rs6.next())
                                    {
                                        //out.println("hhhdsffsdkbhn");
                                        if(rs6.getString(pid+"score").compareTo("0") == 0)
                                        {
                    query = "UPDATE "+contestcode+"ranking SET "+pid+"score=100.0, "+pid+"time="+tc+" where userid='"+username+"'"; 
                    //out.println(query);
                    stmt2.executeUpdate(query);
                                        }
                                    }
                                }
                                else{
                                    String sql = "Select * from "+contestcode+"ranking where userid='"+username+"'";
                                    //out.println(sql);
                                    ResultSet rs3 = stmt2.executeQuery(sql);
                                    if(rs3.next())
                                    {
                                        //out.println("hhhdsffsdkbhn");
                                        if(rs3.getString(pid+"score").compareTo("0") == 0)
                                        {
                    int penalty = Integer.parseInt(rs3.getString(pid+"penalty"));
                    penalty += 1;
                    query = "UPDATE "+contestcode+"ranking SET "+pid+"penalty="+penalty+" where userid='"+username+"'";
                     //out.println(query);
                    stmt3.executeUpdate(query);
                                        }
                                    }
                                                
                                }
                                        
                                String sql = "Select * from "+contestcode+"ranking where userid='"+username+"'";
                                ResultSet rs5 = stmt5.executeQuery(sql);
                                //out.println("hi"+nop);
                                int total_penalty = 0;
                                Double total_score=0.0;
                                long total_time = 0;
                                char ch='A';
                                if(rs5.next())
                                {
                                    //out.println(rs5.getString("Apenalty"));
                            
                                    for(int i=0;i<nop;i++,ch++)
                                    {
                                        //out.println(ch);
                                        total_penalty += Integer.parseInt(rs5.getString(ch+"penalty"));
                                        total_score += Double.parseDouble(rs5.getString(ch+"score"));
                                        total_time += Long.parseLong(rs5.getString(ch+"time"));
                                        //out.println(total_penalty+" "+total_score+" "+total_time);
                                    }
                                    //out.println("hello");
                                    total_time += total_penalty * 20000*60;
                                    //Timestamp nt = new Timestamp(total_time);
                                    query = "UPDATE "+contestcode+"ranking SET penalty="+total_penalty+", score="+total_score+", time="+total_time+" where userid='"+username+"'";
                                    //out.println(query);
                                    stmt4.executeUpdate(query);
                                    out.flush();
                                }
                            }
                     }//while
                    */
                    con.close();
                    //  response.sendRedirect("index.jsp");
                } catch (Exception e) {
                } finally {
                    out.close();
                }

                /*
                        
                    out.print("<style>#loading{visibility: hidden;</style>");
                }
                          
                */
            }
        } //inner else due to sendRedirect
    } //else due to sendRedirect
}

From source file:aa.webapp.servlet.hibernate.listener.HibernateSessionFactoryListener.java

@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
    SessionFactory sessionFactory = (SessionFactory) servletContextEvent.getServletContext()
            .getAttribute("SessionFactory");
    if (sessionFactory != null && !sessionFactory.isClosed()) {
        logger.info("Closing sessionFactory");
        sessionFactory.close();
    }/*w  w w  .  j  a va2s.c o  m*/
    logger.info("Released Hibernate sessionFactory resource");
}

From source file:Api.GetTest.java

/**
 * Retrieves representation of an instance of Api.GetTest
 *
 * @return an instance of java.lang.String
 *///from  ww  w  . j a v a  2 s.  c o m
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getJson() {
    SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    Session s = sessionFactory.openSession();
    Criteria cr = s.createCriteria(FirstSubcategory.class);
    List results = cr.list();
    JSONSerializer serializer = new JSONSerializer();
    sessionFactory.close();
    return serializer.exclude("*.class").serialize(results);
}

From source file:app.Ejer1.java

public static void main(String[] args) {
    // Insertar un seguro
    Seguro seguro1 = new Seguro(3, "200P", "Edgar", "S.", "Hurtado", 26, 0, new Date());

    readSeguro(2);/* ww w . j  a  v a  2  s .c o  m*/

    // EL cierre de la SessionFactory ha de hacerse al final del programa debido a que en
    // HibernateUtils slo se instancia una vez, con lo que si lo cerramos durante la ejecucin
    // del programa, luego nos dar error al intentar volver a obtener el SessionFactory
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    sessionFactory.close();

}

From source file:app.Ejer2.java

public static void main(String[] args) {
    // Insertar un seguro
    SeguroAnotaciones seguro1 = new SeguroAnotaciones(3, "200P", "Edgar", "S.", "Hurtado", 26, 0, new Date());

    readSeguro(2);/*w ww .  j  a va2 s.co  m*/

    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    sessionFactory.close();

}

From source file:app.ui.Main.java

License:Open Source License

@Override
public void start(Stage primaryStage) {
    //Analizar parmetros de entrada
    verParametros(getParameters().getRaw());

    //Inicializar parametros
    this.primaryStage = primaryStage;
    this.presentador = new PresentadorVentanas();

    //Iniciar el stage en el centro de la pantalla
    this.primaryStage.centerOnScreen();

    //Setear icono y titulo de aplicacion
    primaryStage.getIcons().add(new IconoAplicacion());

    //Setear accin de cierre
    primaryStage.setOnCloseRequest((e) -> {
        //Borrar archivos temporales
        File pdfFile = new File(GestorEmail.URL_RESERVA);
        if (pdfFile.exists()) {
            pdfFile.delete();/*ww w .  ja v  a2  s . c  om*/
        }
        pdfFile = new File(VerPDFController.URL_PDF);
        if (pdfFile.exists()) {
            pdfFile.delete();
        }

        //Cerrar hibernate
        SessionFactory sessionFact = (SessionFactory) appContext.getBean("sessionFactory");
        sessionFact.close();
    });

    iniciarHibernate();
}

From source file:app.ui.Main.java

License:Open Source License

private void iniciarHibernate() {
    //Crear ventana de espera
    VentanaEsperaBaseDeDatos ventanaEspera = presentador.presentarEsperaBaseDeDatos(primaryStage.getOwner());

    //Crear tarea para iniciar hibernate y el coordinador de la aplicacion
    Task<Boolean> task = new Task<Boolean>() {
        @Override/*from w  ww .  ja  v  a  2  s  . c  om*/
        public Boolean call() throws Exception {
            appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            coordinador = appContext.getBean(CoordinadorJavaFX.class);
            return true;
        }
    };

    //mientras se muestra una ventana de espera
    task.setOnRunning((event) -> {
        ventanaEspera.showAndWait();
    });

    //que se cierra al terminar.
    task.setOnSucceeded((event) -> {
        ventanaEspera.getDialogPane().getButtonTypes().add(ButtonType.CANCEL);
        ventanaEspera.hide();
        crearPrimeraVentana();
    });

    //Si falla, informa al usuario del error y cierra la aplicacion
    task.setOnFailed((event) -> {
        try {
            throw task.getException();
        } catch (Throwable e) {
            e.printStackTrace();
            if (appContext != null) {
                SessionFactory sessionFact = (SessionFactory) appContext.getBean("sessionFactory");
                sessionFact.close();
            }
            presentador.presentarExcepcionInesperada(new Exception(e), primaryStage);
            System.exit(1);
        }
    });

    //Iniciar tarea
    Thread hiloHibernate = new Thread(task);
    hiloHibernate.setDaemon(false);
    hiloHibernate.start();
}

From source file:appHibernateSebastianLeonte.Main.java

public static void insertar() {
    SessionFactory session = SessionFactoryUtil.getSessionFactory();
    Session s = session.openSession();/*  ww w  . j a v  a  2s. co  m*/
    Transaction transaction = s.beginTransaction();
    System.out.println("Insertando");
    Vuelos vuelos = new Vuelos();
    vuelos.setCodVuelo("AB-BY-4811");
    vuelos.setHoraSalida("02/04/99-14:30");
    vuelos.setDestino("Paris");
    vuelos.setProcedencia("Madrid");
    vuelos.setPlazasFumador(100);
    vuelos.setPlazasNoFumador(100);
    vuelos.setPlazasPrimera(100);
    vuelos.setPlazasTurista(100);
    s.save(vuelos);
    transaction.commit();
    s.close();
    session.close();
}

From source file:appHibernateSebastianLeonte.Main.java

public static void eliminar() {
    SessionFactory session = SessionFactoryUtil.getSessionFactory();
    Session s = session.openSession();/*from   ww  w  . ja v a 2s . c  o m*/
    Transaction transaction = s.beginTransaction();
    System.out.println("Elimiando");
    Vuelos vuelos = (Vuelos) s.load(Vuelos.class, (String) "AB-BY-4811");
    s.delete(vuelos);
    transaction.commit();
    s.close();
    session.close();
}

From source file:appHibernateSebastianLeonte.Main.java

public static void modificar() {
    SessionFactory session = SessionFactoryUtil.getSessionFactory();
    Session s = session.openSession();/*from  w  w w .  j a  v  a  2s  . c o  m*/
    Transaction transaction = s.beginTransaction();
    System.out.println("Modificando");
    Vuelos vuelos = (Vuelos) s.load(Vuelos.class, (String) "AB-BY-4811");
    vuelos.setProcedencia("Hola");
    s.update(vuelos);
    s.save(vuelos);
    transaction.commit();
    s.close();
    session.close();
}