Author: ehillenius Date: Sat Feb 10 00:26:19 2007 New Revision: 505655 URL: http://svn.apache.org/viewvc?view=rev&rev=505655 Log: check the actual value rather than the reference. Still doesn't work though; turns out be a bit naive. Investigate using ObjectStreamClass and friends to more closely resemble actual serialization. Also, though the cycle check works fine for simply detecting which class offends, it is probably to simplistic currently. I opened up WICKET-265 to work on this some more.
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/protocol/http/FilePageStore.java Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/protocol/http/FilePageStore.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/protocol/http/FilePageStore.java?view=diff&rev=505655&r1=505654&r2=505655 ============================================================================== --- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/protocol/http/FilePageStore.java (original) +++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/protocol/http/FilePageStore.java Sat Feb 10 00:26:19 2007 @@ -90,7 +90,7 @@ */ public Page getPage(String sessionId, int id, int versionNumber, int ajaxVersionNumber) { - testMap(sessionId, id, versionNumber,ajaxVersionNumber); + testMap(sessionId, id, versionNumber, ajaxVersionNumber); File sessionDir = new File(getWorkDir(), sessionId); if (sessionDir.exists()) { @@ -188,7 +188,8 @@ */ public void pageAccessed(String sessionId, Page page) { - testMap(sessionId, page.getNumericId(), page.getCurrentVersionNumber(), page.getAjaxVersionNumber()); + testMap(sessionId, page.getNumericId(), page.getCurrentVersionNumber(), page + .getAjaxVersionNumber()); } @@ -202,7 +203,8 @@ private void testMap(String sessionId, int id, int versionNumber, int ajaxVersionNumber) { - SessionPageKey curentKey = new SessionPageKey(sessionId, id, versionNumber,ajaxVersionNumber); + SessionPageKey curentKey = new SessionPageKey(sessionId, id, versionNumber, + ajaxVersionNumber); Object key = storePageMap.get(curentKey); while (key != null) { @@ -260,13 +262,14 @@ /** * @param id * @param versionNumber - * @param ajaxVersionNumber + * @param ajaxVersionNumber * @param sessionDir * @return The file pointing to the page */ private File getPageFile(int id, int versionNumber, int ajaxVersionNumber, File sessionDir) { - return new File(sessionDir, appName + "-page-" + id + "-version-" + versionNumber + "-ajax-" + ajaxVersionNumber); + return new File(sessionDir, appName + "-page-" + id + "-version-" + versionNumber + + "-ajax-" + ajaxVersionNumber); } private class SessionPageKey @@ -282,7 +285,8 @@ this(sessionId, id, versionNumber, ajaxVersionNumber, false); } - SessionPageKey(String sessionId, int id, int versionNumber, int ajaxVersionNumber, boolean remove) + SessionPageKey(String sessionId, int id, int versionNumber, int ajaxVersionNumber, + boolean remove) { this.sessionId = sessionId; this.id = id; @@ -466,8 +470,8 @@ { File sessionDir = new File(getWorkDir(), sessionId); sessionDir.mkdirs(); - File pageFile = getPageFile(page.getNumericId(), page.getCurrentVersionNumber(), - page.getAjaxVersionNumber(), sessionDir); + File pageFile = getPageFile(page.getNumericId(), page.getCurrentVersionNumber(), page + .getAjaxVersionNumber(), sessionDir); FileOutputStream fos = null; long t1 = System.currentTimeMillis(); @@ -493,18 +497,23 @@ } catch (Exception e) { + // TODO as long as our extended info isn't accurate, at least + // print the stack trace + log.error(e.getMessage(), e); + + // TODO doesn't work yet. // trigger serialization again, but this time gather some more // info - try - { - Objects.checkSerializable(page); - } - catch (Exception e1) - { - log.error("Error saving page " + page.getClass() + "[" + page.getId() + "," - + page.getCurrentVersionNumber() + "] for the sessionid " + sessionId - + ": " + e1.getMessage(), e1); - } +// try +// { +// Objects.checkSerializable(page); +// } +// catch (Exception e1) +// { +// log.error("Error saving page " + page.getClass() + "[" + page.getId() + "," +// + page.getCurrentVersionNumber() + "] for the sessionid " + sessionId +// + ": " + e1.getMessage(), e1); +// } } finally {