Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-2422

The Exception report will itself throw an exception if the exception being reported contains a write-only property

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.11
    • 5.0.13
    • None
    • None

    Description

      when displayed exception contains at least one write-only property tapestry failing to render error page.
      java.lang.UnsupportedOperationException: Class ui.Exception_detail does not provide an accessor ('getter') method for property 'faultCode'
      at org.apache.tapestry.ioc.internal.services.PropertyAdapterImpl.get(PropertyAdapterImpl.java:81)
      at org.apache.tapestry.ioc.internal.services.ClassPropertyAdapterImpl.get(ClassPropertyAdapterImpl.java:81)
      at org.apache.tapestry.ioc.internal.services.ExceptionAnalyzerImpl.extractInfo(ExceptionAnalyzerImpl.java:105)
      at org.apache.tapestry.ioc.internal.services.ExceptionAnalyzerImpl.analyze(ExceptionAnalyzerImpl.java:50)

      it seems like error in extractInfo method, which does not analyze can it read property or not before invoking adapter.get(). So, it is simple to patch
      Instead of

      Object value = adapter.get(t, name);
      if (value == null) continue;

      Use

      PropertyAdapter pa = adapter.getPropertyAdapter(name);
      if (!pa.isRead()) continue;

      Object value = pa.get(t);
      if (value == null) continue;

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            lucker Alexander Gavrilov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 5m
                5m
                Remaining:
                Remaining Estimate - 5m
                5m
                Logged:
                Time Spent - Not Specified
                Not Specified