tapestry-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Howard Lewis Ship <hls...@gmail.com>
Subject Re: [t5] upgrade to java 6 and javassist
Date Tue, 03 Nov 2009 17:43:36 GMT
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.tapestry@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.tapestry@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 <
>> dacostagomez@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.tapestry@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 <
>>> > dacostagomez@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.Stavrinides@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.newham@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.virtanen@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
>>> > > > > <dacostagomez@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-unsubscribe@tapestry.apache.org
>>> > > > > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
>>> > > > For additional commands, e-mail: users-help@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:
>>> > > > postmaster@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-unsubscribe@tapestry.apache.org
>>> > > > For additional commands, e-mail: users-help@tapestry.apache.org
>>> > > >
>>> > > >
>>> > > >
>>> ---------------------------------------------------------------------
>>> > > > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> > > > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Mime
View raw message