Session session = (Session) p.readObject();
Session session = (Session) engine.deserialize(p);
    public void loadSessionData(File f) {        if (f == null) {            f = new File(app.dbDir, "sessions");        }        // compute session timeout value        int sessionTimeout = 30;        try {            sessionTimeout = Math.max(0,                                      Integer.parseInt(app.getProperty("sessionTimeout",                                                                         "30")));        } catch (Exception ignore) {            System.out.println(ignore.toString());        }        long now = System.currentTimeMillis();        try {            // load the stored data:            InputStream istream = new BufferedInputStream(new FileInputStream(f));            ObjectInputStream p = new ObjectInputStream(istream);            int size = p.readInt();            int ct = 0;            Hashtable newSessions = new Hashtable();            while (ct < size) {                Session session = (Session) p.readObject();                if ((now - session.lastTouched()) < (sessionTimeout * 60000)) {                    session.setApp(app);                    newSessions.put(session.getSessionId(), session);                }                ct++;            }            p.close();            istream.close();            sessions = newSessions;            app.logEvent("loaded " + newSessions.size() + " sessions from file");        } catch (FileNotFoundException fnf) {            // suppress error message if session file doesn't exist        } catch (Exception e) {            app.logError("error loading session data.", e);        }    }