Uploaded image for project: 'Cubby'
  1. Cubby
  2. CUBBY-104

プロパティではないゲッターメソッドがActionにあると、FormTagでIllegalPropertyRuntimeExceptionが発生する

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Won't Fix
    • Priority: Icon: Major Major
    • None
    • Affects Version/s: 1.0.1
    • Component/s: None
    • None

      以下のActionをFormタグのvalueとして使用した場合に、エラーが発生する

      
      

      @Path("/")
      public class WikiAction extends Action {

      public JdbcManager jdbcManager;

      public String name;

      public String content;

      @Path("

      {name}")
      public ActionResult index() {
      Page page = jdbcManager.from(Page.class).where("name=?", this.name).getSingleResult();
      if (page == null) { return new Redirect("/" + this.name + "/edit"); }
      Beans.copy(page, this).execute();
      return new Forward("show.jsp");
      }

      @Path("{name}

      /edit")
      public ActionResult edit() {
      Page page = jdbcManager.from(Page.class).where("name=?", this.name).getSingleResult();
      if (page != null)

      { Beans.copy(page, this).execute(); }

      return new Forward("edit.jsp");
      }

      @Path("

      {name}

      /save")
      public ActionResult save()

      { Page old = jdbcManager.from(Page.class).where("name=?", this.name).getSingleResult(); Beans.copy(this, old).includes("content").execute(); jdbcManager.update(old).execute(); return new Redirect("/" + this.name); }

      public String getWikiContent()

      { String s = this.content; s = s.replaceAll("\n", "<br/>\n"); s = s.replaceAll("('')([^']+)('')", "<b>$2</b>"); s = s.replaceAll("(\\[\\[)(.+)(\\]\\])", "<a href=\"$2\">$2</a>"); return s; }

      }

      {/code}

      org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(org.seasar.cubby.wiki.action.WikiAction$$EnhancedByS2AOP$$6d6f28)のプロパティ(wikiContent)の設定に失敗しました。理由はjava.lang.NullPointerException
      org.seasar.framework.beans.impl.PropertyDescImpl.getValue(PropertyDescImpl.java:234)
      org.seasar.extension.dxo.util.SimpleExpression$ConversionRule.evaluate(SimpleExpression.java:157)
      org.seasar.extension.dxo.util.SimpleExpression.evaluate(SimpleExpression.java:78)
      org.seasar.extension.dxo.command.impl.BeanToMapDxoCommand.convertScalar(BeanToMapDxoCommand.java:119)
      org.seasar.extension.dxo.command.impl.BeanToMapDxoCommand.convertScalar(BeanToMapDxoCommand.java:136)
      org.seasar.extension.dxo.command.impl.AbstractDxoCommand$ScalarConversionHelper.convert(AbstractDxoCommand.java:223)
      org.seasar.extension.dxo.command.impl.AbstractDxoCommand.execute(AbstractDxoCommand.java:78)
      org.seasar.cubby.dxo.impl.FormDxoImpl.convert(FormDxoImpl.java:114)
      org.seasar.cubby.tags.FormTag.bindFormToOutputValues(FormTag.java:116)
      org.seasar.cubby.tags.FormTag.doStartTag(FormTag.java:92)
      org.apache.jsp.edit_jsp._jspx_meth_t_form_0(edit_jsp.java:110)
      org.apache.jsp.edit_jsp._jspService(edit_jsp.java:83)
      org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      org.seasar.cubby.controller.impl.ActionProcessorImpl.process(ActionProcessorImpl.java:96)
      org.seasar.cubby.filter.CubbyFilter.doFilter(CubbyFilter.java:89)
      org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:75)
      org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
      org.seasar.cubby.action.Forward.execute(Forward.java:103)
      org.seasar.cubby.controller.impl.ActionProcessorImpl.process(ActionProcessorImpl.java:91)
      org.seasar.cubby.filter.CubbyFilter.doFilter(CubbyFilter.java:89)
      org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:75)
      org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
      org.seasar.cubby.filter.RequestRoutingFilter.doFilter(RequestRoutingFilter.java:150)
      org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
      org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
      org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)

            Assignee:
            Unassigned Unassigned
            Reporter:
            agata agata
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: