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

Reply via email to