You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cr...@apache.org on 2006/02/18 20:16:00 UTC
svn commit: r378760 - in /beehive/trunk/netui:
src/pageflow/org/apache/beehive/netui/pageflow/internal/
test/webapps/drt/src/bugs/j1059/ test/webapps/drt/testRecorder/config/
test/webapps/drt/testRecorder/tests/ test/webapps/drt/web/bugs/j1059/
Author: crogers
Date: Sat Feb 18 11:15:58 2006
New Revision: 378760
URL: http://svn.apache.org/viewcvs?rev=378760&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-1059 - ClassCastException when InternalUtils.addActionError() casts ActionMessages for the Global.ERROR_KEY attribute to a sub class, ActionErrors.
Added a test to cover this scenario.
tests: bvt in netui (WinXP)
Added:
beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/
beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java (with props)
beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties (with props)
beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml (with props)
beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/
beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp (with props)
Modified:
beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java?rev=378760&r1=378759&r2=378760&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java Sat Feb 18 11:15:58 2006
@@ -412,8 +412,8 @@
public static void addActionError( String propertyName, ActionMessage error, ServletRequest request )
{
- ActionErrors errors = ( ActionErrors ) request.getAttribute( Globals.ERROR_KEY );
- if ( errors == null ) request.setAttribute( Globals.ERROR_KEY, errors = new ActionErrors() );
+ ActionMessages errors = ( ActionMessages ) request.getAttribute( Globals.ERROR_KEY );
+ if ( errors == null ) request.setAttribute( Globals.ERROR_KEY, errors = new ActionMessages() );
errors.add( propertyName, error );
}
Added: beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java?rev=378760&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java Sat Feb 18 11:15:58 2006
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package bugs.j1059;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ messageBundles = {
+ @Jpf.MessageBundle(bundlePath="bugs.j1059.messages")
+ },
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
+public class Controller extends PageFlowController
+{
+ public static class MyFormBean implements java.io.Serializable {
+ String name;
+ public String getName() {
+ return name;
+ }
+ public void setName(String value) {
+ name = value;
+ }
+ }
+
+ public static class BogusException extends Exception {
+ Object[] messageArgs = null;
+ public BogusException(String msg) {
+ super(msg);
+ }
+ public void setMessageArgs(Object[] args) {
+ messageArgs = args;
+ }
+ public Object[] getMessageArgs() {
+ return messageArgs;
+ }
+ }
+
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(name="success", path="index.jsp")
+ },
+ catches = {
+ @Jpf.Catch(
+ type = Controller.BogusException.class,
+ method = "bogusExceptionHandler",
+ messageKey="messageKey_1")
+ }
+ )
+ protected Forward testAction(MyFormBean bean)
+ throws BogusException {
+ String name = bean.getName();
+ if (name != null && name.indexOf('X') != -1) {
+ BogusException ex2 =
+ new BogusException("testAction failed... BogusException msg.");
+ ex2.setMessageArgs(new Object[] {"name", "contains the character, 'X'"});
+ throw ex2;
+ }
+ return new Forward("success");
+ }
+
+ @Jpf.ExceptionHandler(
+ forwards = {
+ @Jpf.Forward(
+ name = "handleError",
+ path = "index.jsp")
+ })
+ protected Forward bogusExceptionHandler( Controller.BogusException ex,
+ String actionName,
+ String message, Object form ) {
+ Object[] args = ex.getMessageArgs();
+ addActionError("name", "messageKey_2", args);
+ return new Forward( "handleError" );
+ }
+}
Propchange: beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/Controller.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties?rev=378760&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties (added)
+++ beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties Sat Feb 18 11:15:58 2006
@@ -0,0 +1,3 @@
+messageKey_1=Caught Exception: '{0}'
+messageKey_2=Handled BogusException: field ''{0}'' - {1}.
+
Propchange: beehive/trunk/netui/test/webapps/drt/src/bugs/j1059/messages.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?rev=378760&r1=378759&r2=378760&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Sat Feb 18 11:15:58 2006
@@ -5093,6 +5093,16 @@
</features>
</test>
<test>
+ <name>J1059</name>
+ <description>Test the FlowController.addActionError() method, called from within an exception handler.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>bvt.struts11</category>
+ <category>jiraBugs</category>
+ </categories>
+ </test>
+ <test>
<name>JpfScopedFormsTest49</name>
<description>JpfScopedFormsTest49</description>
<webapp>coreWeb</webapp>
Added: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml?rev=378760&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml (added)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml Sat Feb 18 11:15:58 2006
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<recorderSession xmlns="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+<sessionName>J1059</sessionName>
+<tester>crogers</tester>
+<startDate>17 Feb 2006, 04:10:54.988 PM MST</startDate>
+<description>test of the FlowController.addActionError() method called from within an exception handler.</description>
+<tests>
+<test>
+<testNumber>1</testNumber>
+<request>
+<protocol>HTTP</protocol>
+<protocolVersion>1.1</protocolVersion>
+<host>localhost</host>
+<port>8080</port>
+<uri>/coreWeb/bugs/j1059/begin.do</uri>
+<method>GET</method>
+<parameters>
+</parameters>
+<cookies>
+<cookie>
+<name>JSESSIONID</name>
+<value>152D20BC8CD23EBF32DD0C8BBCBA006A</value>
+</cookie>
+</cookies>
+<headers>
+<header>
+<name>accept</name>
+<value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</value>
+</header>
+<header>
+<name>accept-charset</name>
+<value>UTF-8,*</value>
+</header>
+<header>
+<name>accept-encoding</name>
+<value>gzip,deflate</value>
+</header>
+<header>
+<name>accept-language</name>
+<value>en-us,en;q=0.5</value>
+</header>
+<header>
+<name>connection</name>
+<value>keep-alive</value>
+</header>
+<header>
+<name>cookie</name>
+<value>JSESSIONID=152D20BC8CD23EBF32DD0C8BBCBA006A</value>
+</header>
+<header>
+<name>host</name>
+<value>localhost:8080</value>
+</header>
+<header>
+<name>keep-alive</name>
+<value>300</value>
+</header>
+<header>
+<name>user-agent</name>
+<value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1</value>
+</header>
+</headers>
+</request>
+<response>
+<statusCode>200</statusCode>
+<reason></reason>
+<responseBody>
+<![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base href="http://localhost:8080/coreWeb/bugs/j1059/index.jsp">
+ </head>
+ <body>
+ <form action="/coreWeb/bugs/j1059/testAction.do" method="post">
+ <span>Name:</span>
+ <input type="text" name="{actionForm.name}">
+
+ <br>To throw the exception, enter a string that includes an X...
+ <br>
+ <input type="submit" name="actionOverride:testAction" value="Test Action">
+ </form>
+ <a href="/coreWeb/bugs/j1059/begin.do">begin</a>
+ <hr>
+ Errors:
+ <br>
+
+ </body>
+
+</html>]]>
+</responseBody>
+</response>
+</test>
+<test>
+<testNumber>2</testNumber>
+<request>
+<protocol>HTTP</protocol>
+<protocolVersion>1.1</protocolVersion>
+<host>localhost</host>
+<port>8080</port>
+<uri>/coreWeb/bugs/j1059/testAction.do</uri>
+<method>POST</method>
+<parameters>
+<parameter>
+<name>actionOverride:testAction</name>
+<value>Test Action</value>
+</parameter>
+<parameter>
+<name>{actionForm.name}</name>
+<value>eXception</value>
+</parameter>
+</parameters>
+<cookies>
+<cookie>
+<name>JSESSIONID</name>
+<value>152D20BC8CD23EBF32DD0C8BBCBA006A</value>
+</cookie>
+</cookies>
+<headers>
+<header>
+<name>accept</name>
+<value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</value>
+</header>
+<header>
+<name>accept-charset</name>
+<value>UTF-8,*</value>
+</header>
+<header>
+<name>accept-encoding</name>
+<value>gzip,deflate</value>
+</header>
+<header>
+<name>accept-language</name>
+<value>en-us,en;q=0.5</value>
+</header>
+<header>
+<name>connection</name>
+<value>keep-alive</value>
+</header>
+<header>
+<name>content-length</name>
+<value>71</value>
+</header>
+<header>
+<name>content-type</name>
+<value>application/x-www-form-urlencoded</value>
+</header>
+<header>
+<name>cookie</name>
+<value>JSESSIONID=152D20BC8CD23EBF32DD0C8BBCBA006A</value>
+</header>
+<header>
+<name>host</name>
+<value>localhost:8080</value>
+</header>
+<header>
+<name>keep-alive</name>
+<value>300</value>
+</header>
+<header>
+<name>referer</name>
+<value>http://localhost:8080/coreWeb/bugs/j1059/begin.do</value>
+</header>
+<header>
+<name>user-agent</name>
+<value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1</value>
+</header>
+</headers>
+</request>
+<response>
+<statusCode>200</statusCode>
+<reason></reason>
+<responseBody>
+<![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base href="http://localhost:8080/coreWeb/bugs/j1059/index.jsp">
+ </head>
+ <body>
+ <form action="/coreWeb/bugs/j1059/testAction.do" method="post">
+ <span>Name:</span>
+ <input type="text" name="{actionForm.name}" value="eXception">
+ Handled BogusException: field ''name'' - contains the character, 'X'.
+
+ <br>To throw the exception, enter a string that includes an X...
+ <br>
+ <input type="submit" name="actionOverride:testAction" value="Test Action">
+ </form>
+ <a href="/coreWeb/bugs/j1059/begin.do">begin</a>
+ <hr>
+ Errors:
+ <br>
+ Caught Exception: 'testAction failed... BogusException msg.'
+Handled BogusException: field ''name'' - contains the character, 'X'.
+
+ </body>
+
+</html>]]>
+</responseBody>
+</response>
+</test>
+</tests>
+<endDate>17 Feb 2006, 04:11:51.399 PM MST</endDate>
+<testCount>2</testCount>
+</recorderSession>
Propchange: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1059.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp?rev=378760&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp Sat Feb 18 11:15:58 2006
@@ -0,0 +1,25 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+
+<netui:html>
+ <head>
+ <netui:base/>
+ </head>
+ <netui:body>
+ <netui:form action="testAction">
+ <netui:span value="Name:"/>
+ <netui:textBox dataSource="actionForm.name"/>
+ <netui:error key="name"/>
+ <br>To throw the exception, enter a string that includes an X...
+ <br>
+ <netui:button type="submit" action="testAction" value="Test Action"/>
+ </netui:form>
+ <netui:anchor action="begin">begin</netui:anchor>
+ <hr>
+ Errors:
+ <br>
+ <netui:errors/>
+ </netui:body>
+</netui:html>
+
+
\ No newline at end of file
Propchange: beehive/trunk/netui/test/webapps/drt/web/bugs/j1059/index.jsp
------------------------------------------------------------------------------
svn:eol-style = native