You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Morten Solberg <mo...@uniweb.no> on 2009/08/03 11:11:02 UTC

Casting ActionSupport

Hi,

I'm having problems casting inherited classes of ActionSupport to 
ActionSupport. I haven't had any problems with this until now. I'm 
running struts 2.1.8-snapshot

Example:

public class ActionSupportTest {
	@Test
	public void testCastSDWebActionSupport() {
		ActionSupport support = new ActionSupport();
		Test5 test = (Test5)support;
		assertNotNull(test);
	}
}

public class Test5 extends ActionSupport {
}


Running the test gives:

java.lang.ClassCastException: com.opensymphony.xwork2.ActionSupport 
cannot be cast to com.uniweb.cp.common.Test5
	at 
com.uniweb.cp.common.ActionSupportTest.testCastSDWebActionSupport(ActionSupportTest.java:19)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
	at 
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
	at 
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at 
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at 
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at 
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at 
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
	at 
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)



Best regards,

Morten Solberg

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: Casting ActionSupport

Posted by Illya Kysil <ik...@gmail.com>.
Hi,

Check your code twice - JVM is right :)

> ... casting inherited classes of ActionSupport to ActionSupport
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

>                ActionSupport support = new ActionSupport();
>                Test5 test = (Test5)support;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

On Mon, Aug 3, 2009 at 12:11, Morten Solberg<mo...@uniweb.no> wrote:
> Hi,
>
> I'm having problems casting inherited classes of ActionSupport to
> ActionSupport. I haven't had any problems with this until now. I'm running
> struts 2.1.8-snapshot
>
> Example:
>
> public class ActionSupportTest {
>        @Test
>        public void testCastSDWebActionSupport() {
>                ActionSupport support = new ActionSupport();
>                Test5 test = (Test5)support;
>                assertNotNull(test);
>        }
> }
>
> public class Test5 extends ActionSupport {
> }
>
>
> Running the test gives:
>
> java.lang.ClassCastException: com.opensymphony.xwork2.ActionSupport cannot
> be cast to com.uniweb.cp.common.Test5
>        at
> com.uniweb.cp.common.ActionSupportTest.testCastSDWebActionSupport(ActionSupportTest.java:19)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
>        at
> org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
>        at
> org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
>        at
> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
>        at
> org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
>        at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
>        at
> org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
>        at
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
>        at
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
>        at
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
>        at
> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
>        at
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
>        at
> com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
>        at
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at
> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>
>
>
> Best regards,
>
> Morten Solberg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>



-- 
Illya Kysil
--
"EASY" is the word you use to describe other people's job.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org