Tapestry
  1. Tapestry
  2. TAPESTRY-481

Enhancement Workers that create read-only properties should flag setter methods as an error

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 4.0
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Windows XP, JDK 1.5_04, Tomcat 5.5.9, Tapestry 4.0 Beta 3, Spring 1.2.2

      Description

      I used the following Wiki link to configure Spring and Tapestry (via Hivemind).

      http://wiki.apache.org/jakarta-tapestry/Tapestry31Spring

      My Page looks like this:
      public abstract class ProductCategory extends BasePage {

      @InjectObject("spring:productFacade")
      public abstract ProductFacade getProductFacadeObject();
      public abstract void setProductFacadeObject(ProductFacade inProductFacade);

      private static transient Logger theLogger;

      static

      { theLogger = Logger.getLogger(ProductCategory.class); }

      public List getProductCategories()

      { return getProductFacadeObject().getTopLevelProductCategorys(); }

      public void doFoo()

      { theLogger.debug("You made it to doFoo!"); }

      }

      When I execute the page I get the error below. The issue appears to be similar to http://issues.apache.org/jira/browse/TAPESTRY-363, however that issue was closed as a duplicate which does not appear related to my issue. Also, I tried the workaround and different scenarios (two pages) outlined in this bug with no success. I am stuck.

      — Error Message Below —

      org.apache.hivemind.ApplicationRuntimeException
      Error at context:/WEB-INF/pages/ProductCategory.page, line 6, column 63: Method 'public abstract void com.tsg.web.pages.ProductCategory.setProductFacadeObject(com.tsg.service.ProductFacade)' (declared in class com.tsg.web.pages.ProductCategory) has no implementation in class com.tsg.web.pages.ProductCategory (or enhanced subclass $ProductCategory_3).
      location: context:/WEB-INF/pages/ProductCategory.page, line 6, column 63
      1 <?xml version="1.0" encoding="UTF-8"?>
      2
      5
      6 <page-specification class="com.tsg.web.pages.ProductCategory">
      7 <description>Product Category</description>
      8 </page-specification>
      Stack Trace:

      • org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39)
      • org.apache.hivemind.impl.ErrorLogImpl.error(ErrorLogImpl.java:40)
      • org.apache.tapestry.enhance.EnhancedClassValidatorImpl.validate(EnhancedClassValidatorImpl.java:60)
      • $EnhancedClassValidator_10562d21d5e.validate($EnhancedClassValidator_10562d21d5e.java)
      • org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:85)
      • $ComponentConstructorFactory_10562d21d49.getComponentConstructor($ComponentConstructorFactory_10562d21d49.java)
      • org.apache.tapestry.pageload.PageLoader.instantiatePage(PageLoader.java:611)
      • org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:639)
      • $IPageLoader_10562d21d45.loadPage($IPageLoader_10562d21d45.java)
      • $IPageLoader_10562d21d46.loadPage($IPageLoader_10562d21d46.java)
      • org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:118)
      • $IPageSource_10562d21cb5.getPage($IPageSource_10562d21cb5.java)
      • org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:252)
      • org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:235)
      • org.apache.tapestry.engine.RequestCycle.activate(RequestCycle.java:596)
      • org.apache.tapestry.engine.PageService.service(PageService.java:67)
      • $IEngineService_10562d21d37.service($IEngineService_10562d21d37.java)
      • org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:65)
      • org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
      • org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
      • $WebRequestServicer_10562d21d15.service($WebRequestServicer_10562d21d15.java)
      • $WebRequestServicer_10562d21d11.service($WebRequestServicer_10562d21d11.java)
      • org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
      • $ServletRequestServicer_10562d21cf5.service($ServletRequestServicer_10562d21cf5.java)
      • org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
      • $ServletRequestServicerFilter_10562d21cf1.service($ServletRequestServicerFilter_10562d21cf1.java)
      • $ServletRequestServicer_10562d21cf7.service($ServletRequestServicer_10562d21cf7.java)
      • org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
      • $ServletRequestServicerFilter_10562d21cef.service($ServletRequestServicerFilter_10562d21cef.java)
      • $ServletRequestServicer_10562d21cf7.service($ServletRequestServicer_10562d21cf7.java)
      • org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
      • $ServletRequestServicerFilter_10562d21cf3.service($ServletRequestServicerFilter_10562d21cf3.java)
      • $ServletRequestServicer_10562d21cf7.service($ServletRequestServicer_10562d21cf7.java)
      • $ServletRequestServicer_10562d21ce9.service($ServletRequestServicer_10562d21ce9.java)
      • org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:145)
      • org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:101)
      • javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
      • javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      • org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      • org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      • org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      • org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      • org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      • org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      • org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
      • org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
      • org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      • org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
      • org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      • java.lang.Thread.run(Thread.java:595)

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Andrew Wellman
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development