Wicket
  1. Wicket
  2. WICKET-4201

IPageProvider and its implementations need to be improved

    Details

    • Type: Task Task
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.5.0, 1.5.1, 1.5.2
    • Fix Version/s: None
    • Component/s: wicket
    • Labels:
      None

      Description

      During the development op 1.5, IPageProvider and its implementations have become a bit of a mess. The interface is not clearly defined. One of the biggest problems is that several methods can throw exceptions and there is no way of knowing which method will throw which exception and when. It should always be clear what exceptions to expect. For example, getPage can throw a PageExpiredException, but getPageClass cannot, it should return null if no page class is set. Perhaps, it's even better to never throw exceptions at all. Also, the various introspection methods are not very well defined and make it almost impossible to come up with an alternative implementation of the interface (which, IMHO is a sign of a broken API).

      Changing this interface is not an option for 1.5, but looking at the number of subtle bugs that came from this part of the code, it should really be considered for wicket.next.

        Activity

        Hide
        Andrea Del Bene added a comment -

        Another limit of the current implementation of getPageClass came out working on WICKET-4029. As side effect this method invokes AbstractPageManager.getPage(int id) making the page "touched". If we call getPageClass after request has been committed ( i.e. after IPageManage.commitRequest() ), the page is left locked.

        Show
        Andrea Del Bene added a comment - Another limit of the current implementation of getPageClass came out working on WICKET-4029 . As side effect this method invokes AbstractPageManager.getPage(int id) making the page "touched". If we call getPageClass after request has been committed ( i.e. after IPageManage.commitRequest() ), the page is left locked.

          People

          • Assignee:
            Unassigned
            Reporter:
            Emond Papegaaij
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development