Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-1739

DisableXxx() method is always called while hideXxx() returns true

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.15.0
    • 1.16.0
    • Viewer Wicket
    • None

    Description

      I have a contributed action that must be rendered on the first parameter's page (OrderAbstract) on top of the page but shouldn't be rendered on the other parameter's page.

      public Blob downloadDealerQuotationAsPdf(final OrderAbstract order, final Contact recipient)

      { Blob quotation = ... return quotation; }

      public String disableDownloadDealerQuotationAsPdf(final OrderAbstract order, final Contact recipient){
      if(order.getOrderLines().isEmpty())

      { return "No orderline added yet"); }

      return null;
      }
      public boolean hideDownloadDealerQuotationAsPdf(final OrderAbstract order, final Contact recipient)

      { return order == null || !order.getCompany().hasDealer(); }

      As far as I can see the disableXXX method wouldn't be called in Apache Isis 1.14.x when the Contact page was rendered, because this was suppressed by the fact that the action was already hidden by the hiddenXXX method. But now they're both called but when rendering the
      Contact page it will fail due to a NPE on the first line of the disableXXX method so I have to change this method to

      public String disableDownloadDealerQuotationAsPdf(final OrderAbstract order, final Contact recipient){
      if(order == null)

      { return "Some dummy reason"; }

      // actual disable conditions
      ...
      }

      Attachments

        Activity

          People

            danhaywood Daniel Keir Haywood
            erikdehair Erik de Hair
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: