2 more days spent on this, and I actually came up with a solution: Switching from JDK "modern" compiler to eclipse compiler. I found another thread about class transformation errors on the list, saying that the Java C compiler had issues with class transformation.
http://www.mail-archive.com/users@tapestry.apache.org/msg23610.html I rebuilt my classes with the eclipse compiler, and voila! No more errors about invalid constants and similar! The recipe for using eclipse compiler in ant: http://emacsblog.org/2007/02/13/emacs-jdee-ant-and-the-eclipse-java-compiler/ Regards Inge On Mon, Nov 2, 2009 at 3:00 PM, Inge Solvoll <inge.tapes...@gmail.com>wrote: > Done some pretty extensive research on this the last few days. Our > application doesn't work at all on our test and production servers, because > of the dreaded "invalid constant length" error. > > We have the following setup: > - jre-6u16 for linux > - Suse Linux > - JBoss 5.0.1 with embedded tomcat > - Compiles using java 1.6, tried both 1.5 and 1.6 as target compatibility > > I have verified that there is excactly ONE javassist.jar within my jboss > directory, and the version of that file is 3.9.0.GA. > > I still get javassist crashes on several of my smaller components, like the > one below. I'm going crazy over this, especially because it indicates to > everyone else that our big investment in T5 may have been a really stupid > move. > > Just reported this to let you know that this problem DOES occur when there > is only one javassist.jar, and it is causing major problems for us. > > Example of crashing component: > > @IncludeJavaScriptLibrary( { "context:/script/tiny_mce/tiny_mce.js" }) > public class TinyMceEditor { > > public static final String MODE_EXACT = "exact"; > public static final String MODE_TEXTAREAS = "textareas"; > > @Inject > private UrlProvider urlProvider; > > @Environmental > private RenderSupport renderSupport; > > @Parameter(defaultPrefix = BindingConstants.LITERAL, value = > MODE_TEXTAREAS) > private String mode; > > /** > * If mode=exact, attach editor to these elements > */ > @Parameter > private ClientElement[] elements; > > void initEditor(MarkupWriter writer) { > > // We can't use renderSupport to add script, tinyMCE refuses to accept > // scripts added this way. It needs inline script. Script tag written > // manually below. > > String jsonString = getJSON(); > writer.element("script", "type", "text/javascript"); > writer.writeRaw(String.format("tinyMCE.init(%s)", jsonString)); > writer.end(); > } > > /** > * Make sure editor content is saved to form field before Tapestry AJAX > * submits. > */ > void patchZoneForms() { > > renderSupport.addScript("document.forms[0].observe(Tapestry.FORM_PROCESS_SUBMIT_EVENT, > function() {tinyMCE.triggerSave()});"); > } > > /** > * Get JSON config for tinyMCE object. Configured to view one simple > toolbar. > * > * @return > */ > private String getJSON() { > JSONObject json = new JSONObject(); > json.put("mode", mode); > json.put("theme", "advanced"); > addElementList(json); > json.put("theme_advanced_toolbar_location", "top"); > json.put("theme_advanced_toolbar_align", "left"); > json.put("theme_advanced_buttons1", > "bold,italic,underline,bullist,numlist,undo,redo,outdent,indent,fontsizeselect"); > json.put("theme_advanced_buttons2", ""); > json.put("theme_advanced_buttons3", ""); > json.put("content_css", > urlProvider.getContextAssetUrl("/css/tinymce.css")); > return json.toString(); > } > > private void addElementList(JSONObject json) { > if (MODE_EXACT.equals(mode)) { > if (elements != null && elements.length > 0) { > StringBuffer elementsString = new StringBuffer(); > for (int i = 0; i < elements.length; i++) { > ClientElement currentElement = elements[i]; > FrontendTools.appendCommaSeparated(currentElement.getClientId(), > elementsString); > } > json.put("elements", elementsString); > } > else { > throw new IllegalArgumentException("Exact mode specified, but no > elements"); > } > } > } > > void afterRender(MarkupWriter writer) { > initEditor(writer); > patchZoneForms(); > } > > } > > > Regards > Inge > > > > On Tue, Oct 27, 2009 at 9:57 AM, Fermin Da Costa Gomez < > dacostago...@dcgconsultancy.nl> wrote: > >> For what it is worth .. i have not had *this* problem anymore since i >> straigthened out the use of the libs in the different projects being used. >> IF something like this happens again (hope not with my friday deadline .. >> ) >> i'll post it as well. >> >> >> On Tue, Oct 27, 2009 at 8:37 AM, Inge Solvoll <inge.tapes...@gmail.com >> >wrote: >> >> > This problem has been gone for us for a while, today it came back when >> > deploying our app to a jboss server (5.0.1) with embedded tomcat. I >> > immediately started searching for javassist.jar duplicates. Found >> > javassist.jar in jboss/lib, jboss/client and <myapp>/WEB-INF/lib. >> > >> > Jboss wouldn't start up without the one in jboss/lib, so I removed all >> but >> > that one. Now it started, and my T5 app works, but the error in one >> > specific >> > component is still there: java.io.IOException: invalid constant type: >> 121. >> > It always happens with the same component. The component works in most >> > configurations, just not on our jboss server setup with embedded tomcat. >> > >> > I then replaced the javassist.jar in jboss/lib with a fresh 3.9.0, like >> > specified in this thread. Now Jboss won't start up, nothing happens in >> the >> > log when I try to start it >> > >> > We will continue working on this this week, as this is a major problem >> for >> > us. Hopefully, you're right about it being a javassist.jar duplicate >> issue. >> > But so far, I haven't found anything pointing in that direction. >> > >> > Inge >> > >> > On Wed, Oct 7, 2009 at 4:18 PM, Fermin Da Costa Gomez < >> > dacostago...@dcgconsultancy.nl> wrote: >> > >> > > This was actually it. >> > > A 'hidden' antiquated version of javassist somewhere on the classpath >> AND >> > > (as later turned out) a project that did not want to be placed on the >> > > classpath (via the classpath settings in the launcher of Eclipse >> > Galileo). >> > > >> > > Finally got the whole thing stopping on my breakpoint again .. >> > > >> > > I guess it all has to do with the infamous medal ansd its two sides. >> > Having >> > > all the libs available is a good thing but it might also be lurking >> > behind >> > > a >> > > tree with dubious intentions .. ;-) >> > > >> > > Thx to the list for getting me on my way again. >> > > >> > > >> > > On Wed, Oct 7, 2009 at 4:17 PM, Peter Stavrinides < >> > > p.stavrini...@albourne.com> wrote: >> > > >> > > > >> > > > Tapestry works perfectly with Java 6 now!! >> > > > >> > > > Lets not be ridiculous and claim that you need to shorten methods >> and >> > > > method names etc in order to get it working, it has been completely >> > > > compatible for some time now. This is a library issue, you must use >> > > > 3.9.0.GA, which is the version provided by Tapestry 5.1, beware of >> > > > Chenillekit it brings in an old version javassist 3.7, which in most >> > > causes >> > > > this problem. >> > > > >> > > > You must include this in your pom: >> > > > >> > > > <dependency> >> > > > <groupId>org.chenillekit</groupId> >> > > > <artifactId>chenillekit-tapestry</artifactId> >> > > > <version>1.2.0</version> >> > > > <exclusions> >> > > > <exclusion> >> > > > <groupId>jboss</groupId> >> > > > <artifactId>javassist</artifactId> >> > > > </exclusion> >> > > > </exclusions> >> > > > </dependency> >> > > > >> > > > >> > > > Cheers, >> > > > Peter >> > > > >> > > > -- >> > > > If you are not an intended recipient of this e-mail, please notify >> the >> > > > sender, delete it and do not read, act upon, print, disclose, copy, >> > > retain >> > > > or redistribute it. Please visit >> http://www.albourne.com/email.htmlfor >> > > > important additional terms relating to this e-mail. >> > > > >> > > > ----- Original Message ----- >> > > > From: "Cameron Newham" <cameron.new...@bl.uk> >> > > > To: "Tapestry users" <users@tapestry.apache.org> >> > > > Sent: Wednesday, 7 October, 2009 11:40:27 GMT +02:00 Athens, Beirut, >> > > > Bucharest, Istanbul >> > > > Subject: RE: [t5] upgrade to java 6 and javassist >> > > > >> > > > When I had trouble with javassist a few months ago it was because >> there >> > > > were multiple versions on the classpath. >> > > > >> > > > I'm using Java 1.6 and have had no problems since sorting out what >> jars >> > > > were being included. >> > > > >> > > > I see I'm currently using 3.8.0.GA. >> > > > >> > > > >> > > > -----Original Message----- >> > > > From: Ville Virtanen [mailto:ville.virta...@cerion.fi] >> > > > Sent: 07 October 2009 05:11 >> > > > To: users@tapestry.apache.org >> > > > Subject: Re: [t5] upgrade to java 6 and javassist >> > > > >> > > > >> > > > Hi, >> > > > >> > > > Also make 100% sure that there aren't multiple javassists (different >> > > > versions in classpath) AND that the included javassist version is >> the >> > > > right >> > > > one. Check this from the produced war, do NOT trust what the ide is >> > > > saying >> > > > ;) >> > > > >> > > > Sometimes we have had problems like this, but those were because >> maven >> > > > dependencies affected to the included javassist version. >> > > > >> > > > We use java 6, and our compile targets are 1.6 in about ten >> projects, >> > we >> > > > have multiple developers compiling with different versions of java >> and >> > > > haven't had any problems besides those javaassist version related. >> > > > >> > > > The version of javassist that gets included for us is 3.9.0.GA >> > > > >> > > > - Ville >> > > > >> > > > Ps. Below is the mvn configuration we're using w/ netbeans >> > > > >> > > > <plugin> >> > > > <groupId>org.apache.maven.plugins</groupId> >> > > > <artifactId>maven-compiler-plugin</artifactId> >> > > > <configuration> >> > > > <source>1.6</source> >> > > > <target>1.6</target> >> > > > <optimize>true</optimize> >> > > > <encoding>UTF-8</encoding> >> > > > <showDeprecation>true</showDeprecation> >> > > > <showWarnings>true</showWarnings> >> > > > </configuration> >> > > > </plugin> >> > > > >> > > > >> > > > Thiago H. de Paula Figueiredo wrote: >> > > > > >> > > > > Em Tue, 06 Oct 2009 17:39:17 -0300, Fermin Da Costa Gomez >> > > > > <dacostago...@dcgconsultancy.nl> escreveu: >> > > > > >> > > > >> Using Eclipse, my Compiler compliance level is set at 1.5 already >> > and >> > > > >> > > > >> still. What OS are you using? >> > > > > >> > > > > Ubuntu. But I guess it's not operating-system related. >> > > > > >> > > > >> The @OnEvent i understand but i can't find a 'ready made' entry >> for >> > > > the >> > > > >> EventConstants. >> > > > > >> > > > > What do you mean by ready-made? EventConstants is just a class >> that >> > > > > declares String constants. You can use the event name directly if >> you >> > > > want >> > > > > or need. >> > > > > >> > > > >> Do i make my own enum for that? >> > > > > >> > > > > No, event names are Strings. >> > > > > >> > > > >> And if so, how does that >> > > > >> hook into the autocompleter mixin without additional coding? >> > > > > >> > > > > I'm not following you here. All events are hooked by name and, >> > > > optionally, >> > > > > component id, just that. >> > > > > >> > > > > -- >> > > > > Thiago H. de Paula Figueiredo >> > > > > Independent Java consultant, developer, and instructor >> > > > > http://www.arsmachina.com.br/thiago >> > > > > >> > > > > >> --------------------------------------------------------------------- >> > > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > > > > For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > > >> > > > > >> > > > > >> > > > >> > > > -- >> > > > View this message in context: >> > > > >> > >> http://www.nabble.com/-t5--upgrade-to-java-6-and-javassist-tp25295834p25 >> > > > 780245.html< >> > > >> > >> http://www.nabble.com/-t5--upgrade-to-java-6-and-javassist-tp25295834p25%0A780245.html >> > > > >> > > > Sent from the Tapestry - User mailing list archive at Nabble.com. >> > > > >> > > > >> > > > >> --------------------------------------------------------------------- >> > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > > > For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > >> > > > >> > > > >> > > >> > >> ************************************************************************** >> > > > >> > > > Experience the British Library online at http://www.bl.uk/ >> > > > >> > > > The British Library’s new interactive Annual Report and Accounts >> > 2007/08 >> > > : >> > > > http://www.bl.uk/knowledge >> > > > >> > > > Help the British Library conserve the world's knowledge. Adopt a >> Book. >> > > > http://www.bl.uk/adoptabook >> > > > >> > > > The Library's St Pancras site is WiFi - enabled >> > > > >> > > > >> > >> ************************************************************************* >> > > > >> > > > The information contained in this e-mail is confidential and may be >> > > legally >> > > > privileged. It is intended for the addressee(s) only. If you are not >> > the >> > > > intended recipient, please delete this e-mail and notify the mailto: >> > > > postmas...@bl.uk : The contents of this e-mail must not be >> disclosed >> > or >> > > > copied without the sender's consent. >> > > > >> > > > The statements and opinions expressed in this message are those of >> the >> > > > author and do not necessarily reflect those of the British Library. >> The >> > > > British Library does not take any responsibility for the views of >> the >> > > > author. >> > > > >> > > > >> > >> ************************************************************************* >> > > > >> > > > >> > > > >> --------------------------------------------------------------------- >> > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > > > For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > >> > > > >> > > > >> --------------------------------------------------------------------- >> > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > > > For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > >> > > > >> > > >> > > >> > > -- >> > > “The reasonable man adapts himself to the world; the unreasonable one >> > > persists in trying to adapt the world to himself. Therefore all >> progress >> > > depends on the unreasonable man.” >> > > - George Bernard Shaw (1856 - 1950) >> > > >> > >> >> >> >> -- >> “The reasonable man adapts himself to the world; the unreasonable one >> persists in trying to adapt the world to himself. Therefore all progress >> depends on the unreasonable man.” >> - George Bernard Shaw (1856 - 1950) >> > >