Hi, i'm a little bit confused. Just migrated from JBoss 4.0.3 SP1 to 4.0.4 GA and all my reflection-using Servlets exploded with the following exception...
| 19:45:53,263 ERROR [STDERR] java.lang.IllegalArgumentException | 19:45:53,263 ERROR [STDERR] at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37) | 19:45:53,263 ERROR [STDERR] at sun.reflect.UnsafeIntegerFieldAccessorImpl.set(UnsafeIntegerFieldAccessorImpl.java:57) | 19:45:53,263 ERROR [STDERR] at java.lang.reflect.Field.set(Field.java:656) | 19:45:53,263 ERROR [STDERR] at de.sung.servlet.ReflectionTest.doGet(ReflectionTest.java:28) | 19:45:53,263 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) | 19:45:53,263 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | 19:45:53,323 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | 19:45:53,323 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) | 19:45:53,323 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) | 19:45:53,323 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) | 19:45:53,323 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) | 19:45:53,323 ERROR [STDERR] at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) | 19:45:53,323 ERROR [STDERR] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) | 19:45:53,323 ERROR [STDERR] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | 19:45:53,323 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595) | 19:45:53,323 INFO [STDOUT] value: 0 | Normally I deploy my WAR within an EAR but I built a simple WAR for testing those fuzzy reflection exceptions. the servlet | package de.sung.servlet; | | import java.io.IOException; | import java.lang.reflect.Field; | | import javax.servlet.ServletException; | import javax.servlet.http.HttpServlet; | import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletResponse; | | public class ReflectionTest extends HttpServlet { | | private int valueToSetByReflection; | | @Override | protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { | Field fields[] = this.getClass().getDeclaredFields(); | | for ( Field field : fields ) { | | if ( field.getName().equals("valueToSetByReflection") ) { | | if ( ! field.isAccessible() ) { | field.setAccessible( true ); | } | | try { | field.set("valueToSetByReflection", new Integer(1337) ); | } catch (IllegalArgumentException e) { | e.getMessage(); | e.printStackTrace(); | } catch (IllegalAccessException e) { | e.getMessage(); | e.printStackTrace(); | } | } | | } | | System.out.println("value: " + valueToSetByReflection); | } | | } | the web.xml | <web-app version="1.0"> | | <display-name>Reflection Servlet Test</display-name> | <description>Test for showing Reflection problems</description> | | <servlet> | <servlet-name>ReflectionTest</servlet-name> | <servlet-class>de.sung.servlet.ReflectionTest</servlet-class> | <display-name>Reflection Test</display-name> | </servlet> | | <servlet-mapping> | <servlet-name>ReflectionTest</servlet-name> | <url-pattern>/test</url-pattern> | </servlet-mapping> | | </web-app> | the war-file | reflectiontest.war | | META-INF | | |_ MANIFEST.MF | | | | WEB-INF | | |_ web.xml | | |_ classes | | |_ de.sung.servlet.ReflectionTest.class | I hope you've some hints about that strange behaviour... Is it maybe a bug in the Tomcat? Regards, Hauke View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3945799#3945799 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3945799 ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user