This has to do with the limit on the size of a compiled method in a Java class file. I posted the following to struts-user on this some time ago:
http://www.mail-archive.com/struts-user@jakarta.apache.org/msg04902.html -- Martin Cooper ----- Original Message ----- From: "Immanuel, Gidado-Yisa" <[EMAIL PROTECTED]> To: "'Struts Developers List'" <[EMAIL PROTECTED]> Sent: Wednesday, November 14, 2001 9:25 AM Subject: Limits of custom-tags in JSP > I ran into this problem a couple weeks ago, and I just thought > I would relay it to the group. We were in the process of > putting a dynamically generated report together (quick and dirty) > using struts. Here's a little bit of information about the platform > we were running on: > > Platform: Windows/2000, 2GB RAM, 900Mhz > JVM: Sun 1.3.1_01 > Servlets: Tomcat 3.2.3 (similar results for 3.3 & 4.01) > > The page we created had about 150 custom-tags on it, which took > a 14K JSP file and blew it up to a 410K java file. javac compiled > it fine. But when the class was loaded and used, the JVM would > crash (see message below). Below are the results from a 'test.jsp' > which used only '<bean:define>' tags: > > JVM FILE SIZE(K) NUMBER OF TAGS > COMPILER CLASS JAVA TO CRASH JVM > HotSpot Client 35 251 131 > HotSpot Server 55 386 200 No Crash * > Classic 56 386 200 No Crash * > > Note (*): You'll notice in this test that there was no crash > for Hotspot Server and classic, however, I did get a > "java.lang.VerifyError: ... Illegal target of jump or branch", > meaning (I guess) that the class files are too big to be > handled by the verifier. > > My original demo used about 150 tags, a mixture of Tags and > BodyTags, and caused Hotspot Server to crash at around 113 tags > and Hotspot Client crashed around 85, while Classic could not > load-up my webapp. > > Obviously the design requires some rethinking, if we're reaching > these types of limits. What I've learned is that custom-tags > are *bulky* (as implemented in tomcat/catalina). As a corollary, > I know try to use '<%=var1%>' instead of > '<bean:write name="var1"/>' when feasible, etc. > > - Gidado > > Here's the message when the JVM crashed: > # > # HotSpot Virtual Machine Error, Internal Error > # Please report this error at > # http://java.sun.com/cgi-bin/bugreport.cgi > # > # Error ID: 47454E45524154452F4F502D41500E435050084B > # > # Problematic Thread: prio=5 tid=0x8ac06a8 nid=0x7cc runnable > # > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>