This is embarrassing.

Our most recent problems with javassist crashes were entirely our own fault,
not javassist or t5. We had a search/replace ant target that replaced all
occurrences of "/script" with "/script<todaysdate>". This target recursed
(not our intention) into our classes folder, and did some replacement on
class files, the ones that got crashes from javassist. It seems that the
value of the @IncludeJavascriptLibrary and other annotations are stored as
pure readable text in the compiled file.

I believe our earlier problems with javassist were real, due to things like
1.6 as compilation target, duplicate javassist.jar in classpath and so on.
But this last one was a big stupid mistake. I wanted to report it here to
avoid people using my case in the future as proof in similar issues. As of
now, we have no issues with javassist in T5.

Sorry, guys!

Inge

On Tue, Nov 3, 2009 at 6:43 PM, Howard Lewis Ship <hls...@gmail.com> wrote:

> I'm very glad you found a solution ... it's still a mystery to me as
> all the applications I work on are built using the Sun javac compiler
> and I've never seen problems like you are seeing, and I do some of my
> deployments on Linux (Ubuntu) ... again, with the Sun JDK/JRE.
>
> On Tue, Nov 3, 2009 at 3:33 AM, Inge Solvoll <inge.tapes...@gmail.com>
> wrote:
> > 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)
> >>>
> >>
> >>
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to