Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java =================================================================== *** jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (revision 724306) --- jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (working copy) *************** *** 1475,1478 **** --- 1475,1489 ---- { return sequence++; } + + /** + * Retrieves the next available session-unique value for the supplied Component + * + * @param component + * the component which requests the generation of a markup identifier + * @return session-unique value + */ + public Object getMarkupId(Component component) { + return new Integer(nextSequenceValue()); + } } Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java =================================================================== *** jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java (revision 724306) --- jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java (working copy) *************** *** 1426,1437 **** return null; } ! final int generatedMarkupId = storedMarkupId instanceof Integer ! ? ((Integer)storedMarkupId).intValue() : Session.get().nextSequenceValue(); ! ! if (storedMarkupId == null) ! { ! setMarkupIdImpl(new Integer(generatedMarkupId)); } // try to read from markup --- 1426,1445 ---- return null; } ! String markupIdPostfix; ! if (!(storedMarkupId instanceof Integer)) { ! Object markupIdFromSession = Session.get().getMarkupId(this); ! if (storedMarkupId == null && markupIdFromSession != null) { ! setMarkupIdImpl(markupIdFromSession); ! } ! storedMarkupId = markupIdFromSession; ! } ! if (storedMarkupId instanceof Integer) { ! markupIdPostfix = Integer.toHexString(((Integer) storedMarkupId).intValue()).toLowerCase(); ! } else if (storedMarkupId instanceof String) { ! return (String) storedMarkupId; ! } else { ! markupIdPostfix = storedMarkupId.toString(); } // try to read from markup *************** *** 1449,1455 **** markupIdPrefix = getId(); } - String markupIdPostfix = Integer.toHexString(generatedMarkupId).toLowerCase(); markupIdPostfix = RequestContext.get().encodeMarkupId(markupIdPostfix); String markupId = markupIdPrefix + markupIdPostfix; --- 1457,1462 ----