Click
  1. Click
  2. CLK-599

Support private and protected bindable variables

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.0 RC1
    • Fix Version/s: 2.1.0
    • Component/s: core
    • Labels:
      None

      Description

      A common complaint against Apache Click is its use of public bindable variables.

      Would be good if Click supports binding of private and protected variables as well.

        Activity

        Bob Schellink created issue -
        Malcolm Edgar made changes -
        Field Original Value New Value
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Malcolm Edgar added a comment -

        Have updated examples and documentation to use protected visibility bindable fields

        Show
        Malcolm Edgar added a comment - Have updated examples and documentation to use protected visibility bindable fields
        Malcolm Edgar made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Bob Schellink added a comment - - edited

        I received the following exception when trying to edit a customer in the advanced-table example:

        java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of class org.apache.click.examples.page.EditCustomer with modifiers "protected"
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
        at java.lang.reflect.Field.doSecurityCheck(Field.java:960)
        at java.lang.reflect.Field.getFieldAccessor(Field.java:896)
        at java.lang.reflect.Field.set(Field.java:657)
        at ognl.OgnlRuntime.setFieldValue(OgnlRuntime.java:1154)
        at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:76)
        at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
        at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1670)
        at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
        at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
        at ognl.SimpleNode.setValue(SimpleNode.java:246)
        at ognl.Ognl.setValue(Ognl.java:476)
        at org.apache.click.util.PropertyUtils.setValueOgnl(PropertyUtils.java:170)
        at org.apache.click.ClickServlet.processPageRequestParams(ClickServlet.java:1167)
        at org.apache.click.ClickServlet.initPage(ClickServlet.java:1107)
        at org.apache.click.ClickServlet.createPage(ClickServlet.java:928)
        at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:347)
        at org.apache.click.ClickServlet.doGet(ClickServlet.java:261)

        Show
        Bob Schellink added a comment - - edited I received the following exception when trying to edit a customer in the advanced-table example: java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of class org.apache.click.examples.page.EditCustomer with modifiers "protected" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65) at java.lang.reflect.Field.doSecurityCheck(Field.java:960) at java.lang.reflect.Field.getFieldAccessor(Field.java:896) at java.lang.reflect.Field.set(Field.java:657) at ognl.OgnlRuntime.setFieldValue(OgnlRuntime.java:1154) at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:76) at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131) at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1670) at ognl.ASTProperty.setValueBody(ASTProperty.java:101) at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177) at ognl.SimpleNode.setValue(SimpleNode.java:246) at ognl.Ognl.setValue(Ognl.java:476) at org.apache.click.util.PropertyUtils.setValueOgnl(PropertyUtils.java:170) at org.apache.click.ClickServlet.processPageRequestParams(ClickServlet.java:1167) at org.apache.click.ClickServlet.initPage(ClickServlet.java:1107) at org.apache.click.ClickServlet.createPage(ClickServlet.java:928) at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:347) at org.apache.click.ClickServlet.doGet(ClickServlet.java:261)
        Bob Schellink made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Bob Schellink added a comment -

        Fix checked in.

        @Malcolm, you might want to double check this fix for thread safety. You can view the changes here:

        http://svn.apache.org/viewvc/incubator/click/trunk/click/framework/src/org/apache/click/ClickServlet.java?r1=900775&r2=902382&diff_format=h

        I've also made a slight change to XmlConfigService to only load parent classes up to but excluding Page.class.

        http://svn.apache.org/viewvc/incubator/click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java?r1=893922&r2=902382&diff_format=h

        Show
        Bob Schellink added a comment - Fix checked in. @Malcolm, you might want to double check this fix for thread safety. You can view the changes here: http://svn.apache.org/viewvc/incubator/click/trunk/click/framework/src/org/apache/click/ClickServlet.java?r1=900775&r2=902382&diff_format=h I've also made a slight change to XmlConfigService to only load parent classes up to but excluding Page.class. http://svn.apache.org/viewvc/incubator/click/trunk/click/framework/src/org/apache/click/service/XmlConfigService.java?r1=893922&r2=902382&diff_format=h
        Hide
        Bob Schellink added a comment -

        fixed in trunk

        Show
        Bob Schellink added a comment - fixed in trunk
        Bob Schellink made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        3h 15m 1 Malcolm Edgar 28/Dec/09 08:54
        In Progress In Progress Resolved Resolved
        14h 32m 1 Malcolm Edgar 28/Dec/09 23:27
        Resolved Resolved Reopened Reopened
        22d 12h 46m 1 Bob Schellink 20/Jan/10 12:13
        Reopened Reopened Resolved Resolved
        16d 1h 1m 1 Bob Schellink 05/Feb/10 13:15

          People

          • Assignee:
            Malcolm Edgar
            Reporter:
            Bob Schellink
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development