[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