You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Carlin Rogers (JIRA)" <ji...@apache.org> on 2007/05/12 01:34:15 UTC

[jira] Created: (BEEHIVE-1193) disabling netui:select tag with client side Javascript can cause an exception

disabling netui:select tag with client side Javascript can cause an exception
-----------------------------------------------------------------------------

                 Key: BEEHIVE-1193
                 URL: https://issues.apache.org/jira/browse/BEEHIVE-1193
             Project: Beehive
          Issue Type: Bug
    Affects Versions: 1.0.2, 1.0.1
            Reporter: Carlin Rogers
         Assigned To: Carlin Rogers
             Fix For: V.Next


An ArrayIndexOutOfBoundsException (or an AssertionError with asserts on) is thrown when client side Javascript disables the generated HTML select tag just before the form is submitted. The problem with this is that the additional hidden input element, <input type="hidden" ...>, used by the framework, provides form data that normally is not be present when the form is disabled via the NetUI tag attribute.

This hidden element is used by the framework and its name includes a special marker. So when the Javascript disables the select element, there is still a hidden <input> that gets processed. During the parameter processing the frameworks sees the input and determines that there should be select data to go with it but in this case there isn't because the Javascript disabled the select.

Need to make sure that parameter processing in the Select.SelectPrefixHandler class can handle this case correctly and treat as a null parameter value.

The stack trace for this issue is...
java.lang.ArrayIndexOutOfBoundsException
        at java.lang.reflect.Array.get(Native Method)
        at org.apache.beehive.netui.script.el.util.ParseUtils.convertType(ParseUtils.java:188)
        at org.apache.beehive.netui.script.el.tokens.ExpressionToken.beanUpdate(ExpressionToken.java:212)
        at org.apache.beehive.netui.script.el.tokens.IdentifierToken.write(IdentifierToken.java:97)
        at org.apache.beehive.netui.script.el.ExpressionTerm.update(ExpressionTerm.java:166)
        at org.apache.beehive.netui.script.el.ParsedExpression.update(ParsedExpression.java:141)
        at org.apache.beehive.netui.script.el.util.ParseUtils.update(ParseUtils.java:92)
        at org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl.update(ExpressionEvaluatorImpl.java:84)
        at org.apache.beehive.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:231)
        at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:329)
...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (BEEHIVE-1193) disabling netui:select tag with client side Javascript can cause an exception

Posted by "Julie Zhuo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEEHIVE-1193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Julie Zhuo closed BEEHIVE-1193.
-------------------------------


Close. See Russ's comment.

> disabling netui:select tag with client side Javascript can cause an exception
> -----------------------------------------------------------------------------
>
>                 Key: BEEHIVE-1193
>                 URL: https://issues.apache.org/jira/browse/BEEHIVE-1193
>             Project: Beehive
>          Issue Type: Bug
>    Affects Versions: 1.0.1, 1.0.2
>            Reporter: Carlin Rogers
>            Assignee: Julie Zhuo
>             Fix For: V.Next
>
>
> An ArrayIndexOutOfBoundsException (or an AssertionError with asserts on) is thrown when client side Javascript disables the generated HTML select tag just before the form is submitted. The problem with this is that the additional hidden input element, <input type="hidden" ...>, used by the framework, provides form data that normally is not be present when the form is disabled via the NetUI tag attribute.
> This hidden element is used by the framework and its name includes a special marker. So when the Javascript disables the select element, there is still a hidden <input> that gets processed. During the parameter processing the frameworks sees the input and determines that there should be select data to go with it but in this case there isn't because the Javascript disabled the select.
> Need to make sure that parameter processing in the Select.SelectPrefixHandler class can handle this case correctly and treat as a null parameter value.
> The stack trace for this issue is...
> java.lang.ArrayIndexOutOfBoundsException
>         at java.lang.reflect.Array.get(Native Method)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.convertType(ParseUtils.java:188)
>         at org.apache.beehive.netui.script.el.tokens.ExpressionToken.beanUpdate(ExpressionToken.java:212)
>         at org.apache.beehive.netui.script.el.tokens.IdentifierToken.write(IdentifierToken.java:97)
>         at org.apache.beehive.netui.script.el.ExpressionTerm.update(ExpressionTerm.java:166)
>         at org.apache.beehive.netui.script.el.ParsedExpression.update(ParsedExpression.java:141)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.update(ParseUtils.java:92)
>         at org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl.update(ExpressionEvaluatorImpl.java:84)
>         at org.apache.beehive.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:231)
>         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:329)
> ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (BEEHIVE-1193) disabling netui:select tag with client side Javascript can cause an exception

Posted by "Russ Baker (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEEHIVE-1193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Russ Baker updated BEEHIVE-1193:
--------------------------------


Verified that setting the disable attribute true does not cause the AssertionError. Verified against a build post 538018. I recommend that this bug be closed.

> disabling netui:select tag with client side Javascript can cause an exception
> -----------------------------------------------------------------------------
>
>                 Key: BEEHIVE-1193
>                 URL: https://issues.apache.org/jira/browse/BEEHIVE-1193
>             Project: Beehive
>          Issue Type: Bug
>    Affects Versions: 1.0.1, 1.0.2
>            Reporter: Carlin Rogers
>            Assignee: Julie Zhuo
>             Fix For: V.Next
>
>
> An ArrayIndexOutOfBoundsException (or an AssertionError with asserts on) is thrown when client side Javascript disables the generated HTML select tag just before the form is submitted. The problem with this is that the additional hidden input element, <input type="hidden" ...>, used by the framework, provides form data that normally is not be present when the form is disabled via the NetUI tag attribute.
> This hidden element is used by the framework and its name includes a special marker. So when the Javascript disables the select element, there is still a hidden <input> that gets processed. During the parameter processing the frameworks sees the input and determines that there should be select data to go with it but in this case there isn't because the Javascript disabled the select.
> Need to make sure that parameter processing in the Select.SelectPrefixHandler class can handle this case correctly and treat as a null parameter value.
> The stack trace for this issue is...
> java.lang.ArrayIndexOutOfBoundsException
>         at java.lang.reflect.Array.get(Native Method)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.convertType(ParseUtils.java:188)
>         at org.apache.beehive.netui.script.el.tokens.ExpressionToken.beanUpdate(ExpressionToken.java:212)
>         at org.apache.beehive.netui.script.el.tokens.IdentifierToken.write(IdentifierToken.java:97)
>         at org.apache.beehive.netui.script.el.ExpressionTerm.update(ExpressionTerm.java:166)
>         at org.apache.beehive.netui.script.el.ParsedExpression.update(ParsedExpression.java:141)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.update(ParseUtils.java:92)
>         at org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl.update(ExpressionEvaluatorImpl.java:84)
>         at org.apache.beehive.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:231)
>         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:329)
> ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (BEEHIVE-1193) disabling netui:select tag with client side Javascript can cause an exception

Posted by "Carlin Rogers (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEEHIVE-1193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carlin Rogers resolved BEEHIVE-1193.
------------------------------------

    Resolution: Fixed
      Assignee: Julie Zhuo  (was: Carlin Rogers)

This is fixed with SVN revision 538018. The revision includes a new TestRecorder test case, J1193JsDisableSelect.

> disabling netui:select tag with client side Javascript can cause an exception
> -----------------------------------------------------------------------------
>
>                 Key: BEEHIVE-1193
>                 URL: https://issues.apache.org/jira/browse/BEEHIVE-1193
>             Project: Beehive
>          Issue Type: Bug
>    Affects Versions: 1.0.1, 1.0.2
>            Reporter: Carlin Rogers
>         Assigned To: Julie Zhuo
>             Fix For: V.Next
>
>
> An ArrayIndexOutOfBoundsException (or an AssertionError with asserts on) is thrown when client side Javascript disables the generated HTML select tag just before the form is submitted. The problem with this is that the additional hidden input element, <input type="hidden" ...>, used by the framework, provides form data that normally is not be present when the form is disabled via the NetUI tag attribute.
> This hidden element is used by the framework and its name includes a special marker. So when the Javascript disables the select element, there is still a hidden <input> that gets processed. During the parameter processing the frameworks sees the input and determines that there should be select data to go with it but in this case there isn't because the Javascript disabled the select.
> Need to make sure that parameter processing in the Select.SelectPrefixHandler class can handle this case correctly and treat as a null parameter value.
> The stack trace for this issue is...
> java.lang.ArrayIndexOutOfBoundsException
>         at java.lang.reflect.Array.get(Native Method)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.convertType(ParseUtils.java:188)
>         at org.apache.beehive.netui.script.el.tokens.ExpressionToken.beanUpdate(ExpressionToken.java:212)
>         at org.apache.beehive.netui.script.el.tokens.IdentifierToken.write(IdentifierToken.java:97)
>         at org.apache.beehive.netui.script.el.ExpressionTerm.update(ExpressionTerm.java:166)
>         at org.apache.beehive.netui.script.el.ParsedExpression.update(ParsedExpression.java:141)
>         at org.apache.beehive.netui.script.el.util.ParseUtils.update(ParseUtils.java:92)
>         at org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl.update(ExpressionEvaluatorImpl.java:84)
>         at org.apache.beehive.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:231)
>         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:329)
> ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.