[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-1080) Component class obfuscates IllegalArgumentExceptions from Reflections class
Stuart Robertson (JIRA)
jira-events at lists.jboss.org
Mon Mar 19 21:16:33 EDT 2007
Component class obfuscates IllegalArgumentExceptions from Reflections class
---------------------------------------------------------------------------
Key: JBSEAM-1080
URL: http://jira.jboss.com/jira/browse/JBSEAM-1080
Project: JBoss Seam
Issue Type: Bug
Components: Core
Affects Versions: 1.2.0.GA
Environment: Seam 1.2.0PATCH1, OS X 10.4.9, JDK 1.5, JBOSS 4.0.2
Reporter: Stuart Robertson
Priority: Minor
Reflections.java:63 generates a very clear exception message when rethrowing IllegalArgumentException. In stepping through the debugger for instance, here's what I saw was the message at this point:
Could not set field value by reflection: CatalogItemSearchAction.itemFilterCriteriaSelection on: com.fb.core.action.CatalogItemSearchAction with value: class com.fb.util.criteria.ItemFilterCriterion
Outstanding.
However this exception is then caught by Component.java:1559 by the following method:
private void setFieldValue(Object bean, Field field, String name, Object value)
{
try
{
Reflections.set(field, bean, value);
}
catch (Exception e)
{
throw new IllegalArgumentException("could not set field value: " + getAttributeMessage(name), e);
}
}
...and the beautiful message is lost. Below is the complete stacktrace seen in the application.
FAILED: test
javax.ejb.EJBException: java.lang.IllegalArgumentException: could not set field value: itemSearch.itemFilterCriteria
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:189)
at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
at $Proxy59.getItemResults(Unknown Source)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
at org.javassist.tmp.java.lang.Object_$$_javassist_1.getItemResults(Object_$$_javassist_1.java)
at com.fb.core.test.CatalogSearchTest$1.invokeApplication(CatalogSearchTest.java:88)
at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:489)
at com.fb.core.test.CatalogSearchTest.test(CatalogSearchTest.java:97)
Caused by: java.lang.IllegalArgumentException: could not set field value: itemSearch.itemFilterCriteria
at org.jboss.seam.Component.setFieldValue(Component.java:1559)
at org.jboss.seam.Component.access$500(Component.java:135)
at org.jboss.seam.Component$BijectedField.set(Component.java:2285)
at org.jboss.seam.Component.injectDataModelSelection(Component.java:1285)
at org.jboss.seam.Component.injectDataModelSelections(Component.java:1254)
at org.jboss.seam.Component.inject(Component.java:1196)
at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
at org.jboss.seam.interceptors.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:37)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
... 52 more
at org.jboss.seam.util.Reflections.set(Reflections.java:77)
at org.jboss.seam.Component.setFieldValue(Component.java:1555)
... 78 more
Caused by: java.lang.IllegalArgumentException
at org.jboss.seam.util.Reflections.set(Reflections.java:63)
... 79 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list