struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Obinna <obi...@gmail.com>
Subject Re: embeddedJsp plugin causing jsp compilation issues
Date Tue, 20 Oct 2009 11:14:55 GMT
An update...

I've tried setting a breakpoint in the
JspApplicationContextImpl.getInstance() method and the
JspFactoryImpl().getJspApplicationContext() methods but for some reason
cannot inspect the variable at that point to figure out which classloader
are being called when.

What is clear is that once an embeddedJsp is loaded, the default JspFactory
for ALL jsp pages (even non-embedded ones) becomes the
org.apache.struts2.jasper.runtime.JspFactoryImpl (even for a separate
web-app!) because loading subsequent non-embedded pages for the first time
(in either web-app) still hits and break in the
JspApplicationContextImpl.getInstance() method. It seems like using the
embeddedJsp calls JspFactory().setDefaultFactory() or something and that
this has a system-wide scope.

I don't suppose that this would be a problem if it wasn't for some
classloader mix-up which means that when I then try to access an embeddedJsp
page in the second web-app, in the JspApplicationContextImpl.getInstance()
method it finds the JspApplicationContextImpl instance that was set during
the loading of some initial pages (such as login page) in this second app
but it seems that that must have been set by a different classloader because
the class cast fails when it tries to cast that instance (on the line
JspApplicationContextImpl impl = (JspApplicationContextImpl)
context.getAttribute(KEY)).

I will continue to try to figure out how to inspect the variables (and see
the classloaders) in my IDE...

- Eric



On Sat, Oct 17, 2009 at 9:12 PM, Musachy Barroso <musachy@gmail.com> wrote:

> nothing so obvious, JspApplicationContextImpl is obviously getting
> loaded by different classloaders, but I am out of ideas, I think you
> can set a break point for classloading right? Try to do that and see
> if you get any insight.
>
> musachy
>
> On Sat, Oct 17, 2009 at 2:57 AM, Obinna <obinna@gmail.com> wrote:
> > I have a ton of jars in my lib (but no el-api). The lib for that projects
> > looks as follows (both projects have similar libs):
> >
> > asterisk-java-1.0.jar
> > cglib-nodep-2.1_3.jar
> > chartengineapi.jar
> > com.ibm.icu_4.0.1.v20090415.jar
> > commons-beanutils-1.7.0.jar
> > commons-cli-1.0.jar
> > commons-codec-1.3.jar
> > commons-collections-3.2.1.jar
> > commons-dbcp.jar
> > commons-digester-1.8.jar
> > commons-fileupload-1.2.1.jar
> > commons-httpclient-3.1.jar
> > commons-io-1.1.jar
> > commons-lang-2.4.0.jar
> > commons-logging.jar
> > commons-pool.jar
> > coreapi.jar
> > crosstabcoreapi.jar
> > dataadapterapi.jar
> > dataaggregationapi.jar
> > dataextraction.jar
> > displaytag-1.2.jar
> > displaytag-export-poi-1.2.jar
> > dteapi.jar
> > ecxconnect-mmp-bl.jar
> > emitterconfig.jar
> > engineapi.jar
> > flute.jar
> > *freemarker-2.3.15.jar*
> > gnu-hylafax-core-1.0.3.jar
> > gnu-hylafax-inet-ftp-1.0.3.jar
> > itext-1.3.jar
> > jasypt-1.4.1.x.jar
> > jaxws-spring-1.8.jar
> > jep-3.3.0-trial.jar
> > joda-time-1.6.jar
> > js.jar
> > json.jar
> > jsonplugin-0.33.jar
> > jstl.jar
> > junit-4.4.jar
> > log4j-1.2.8.jar
> > mail-1.4.2.jar
> > mmpdemo-bl.jar
> > modelapi.jar
> > modelodaapi.jar
> > mysql-connector-java-5.0.5-bin.jar
> > odadesignapi.jar
> > *ognl-2.7.3.jar*
> > org.apache.commons.codec_1.3.0.v20080530-1600.jar
> > org.eclipse.birt.report.model_2.5.0.v20090605.jar
> > org.eclipse.emf.common_2.5.0.v200906080927.jar
> > org.eclipse.emf.ecore_2.5.0.v200906080927.jar
> > org.eclipse.emf.ecore.xmi_2.5.0.v200906080927.jar
> > org.w3c.css.sac_1.3.0.v200805290154.jar
> > poi-3.0.2-FINAL-20080204.jar
> > scriptapi.jar
> > spring-2.5.6.jar
> > spring-security-core-2.0.4.jar
> > spring-security-taglibs-2.0.4.jar
> > spring-test-2.5.6.jar
> > spring-webmvc-2.5.6.jar
> > spring-ws-1.5.2.jar
> > standard.jar
> > *struts2-core-2.1.8.jar*
> > *struts2-embeddedjsp-plugin-2.1.9-SNAPSHOT.jar
> > *struts2-jquery-plugin-1.0.8.jar
> > struts2-scope-plugin-1.0.4 (modified).jar
> > *struts2-spring-plugin-2.1.8.jar*
> > tidy.jar
> > trilead-ssh2-build213.jar
> > webservices-api.jar
> > webservices-rt.jar
> > xbean-spring-3.1.jar
> > *xwork-core-2.1.6.jar*
> >
> > I haven't tried testing this on another 'trimmed down' project. Let me
> know
> > if anything is glaringly obvious here, otherwise, I'll try the
> trimming-down
> >
> >  Thanks for looking through this!
> > - Eric
> >
> >
> > On Sat, Oct 17, 2009 at 2:52 AM, Musachy Barroso <musachy@gmail.com>
> wrote:
> >
> >> nvm. el-api.jar should not be in lib, after removing them I have to
> >> webapps with jsp plugin working. Can you compare your jars to:
> >>
> >>  commons-el-1.0.jar
> >>  commons-fileupload-1.2.1.jar
> >>  commons-io-1.3.2.jar
> >>  commons-logging-1.1.1.jar
> >>  freemarker-2.3.15.jar
> >>  ognl-2.7.3.jar
> >>  struts2-core-2.1.9-SNAPSHOT.jar
> >>  struts2-embeddedjsp-plugin-2.1.9-SNAPSHOT.jar
> >>  xwork-core-2.1.7-SNAPSHOT.jar
> >>
> >> and tell me the exact steps after you load the app, to reproduce the
> error?
> >>
> >> thanks for helping me test this btw :)
> >> musachy
> >>
> >> On Fri, Oct 16, 2009 at 4:49 PM, Musachy Barroso <musachy@gmail.com>
> >> wrote:
> >> > I am getting a different error:
> >> >
> >> > javax.servlet.ServletException: java.lang.LinkageError: Class
> >> > javax/el/ExpressionFactory violates loader constraints
> >> >
>  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)
> >> >        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >> >
> >>
>  org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
> >> >
> >>
>  org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
> >> >
> >>
>  com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
> >> >
> >>
>  com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
> >> >
> >>
>  com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
> >> >
> >> > which looks even more weird. Here are the jars I have in web-inf/lib:
> >> >
> >> > commons-el-1.0.jar
> >> > commons-fileupload-1.2.1.jar
> >> > commons-io-1.3.2.jar
> >> > commons-logging-1.1.1.jar
> >> > el-api-6.0.18.jar
> >> > freemarker-2.3.15.jar
> >> > ognl-2.7.3.jar
> >> > struts2-core-2.1.9-SNAPSHOT.jar
> >> > struts2-embeddedjsp-plugin-2.1.9-SNAPSHOT.jar
> >> > testjar-1.0.jar
> >> > xwork-core-2.1.7-SNAPSHOT.jar
> >> >
> >> > That's on a default installation of tomcat 6.0.20. Can you compare
> >> > that to your jars?
> >> >
> >> > musachy
> >> >
> >> > On Thu, Oct 15, 2009 at 8:57 AM, Musachy Barroso <musachy@gmail.com>
> >> wrote:
> >> >> pretty consistent :), I will try to take a look.
> >> >>
> >> >> musachy
> >> >>
> >> >> On Thu, Oct 15, 2009 at 8:23 AM, Obinna <obinna@gmail.com> wrote:
> >> >>> No I don't have any unusual jars in my shared lib (learnt my lesson
> >> last
> >> >>> time :| - I have some jax-ws web-service api stuff in endorsed
but
> >> that's
> >> >>> all).
> >> >>>
> >> >>> Placing the plugin jar in the shared dir ('lib' for Tomcat 6)
> results
> >> in
> >> >>> struts not being able to find the plugin config file and throwing
> the
> >> error:
> >> >>> "There is no result type defined for type 'embeddedJsp'..."
> >> >>>
> >> >>> Given this, it is somewhat strange that, placing it in the web-app
> libs
> >> *as
> >> >>> well as *the tomcat lib results in struts trying to load the trying
> to
> >> load
> >> >>> the plugin config file twice and throwing the error during startup:
> >> >>>
> >> >>> The package name 'embeddedjsp-default' at location package -
> >> >>>
> >>
> jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/wtpwebapps/test/WEB-INF/lib/struts2-embeddedjsp-plugin-2.1.9-SNAPSHOT.jar!/struts-plugin.xml:29:82
> >> >>> is already been used by another package at location package -
> >> >>>
> >>
> jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/lib/struts2-embeddedjsp-plugin-2.1.9-SNAPSHOT.jar!/struts-plugin.xml:29:82
> >> >>> ....
> >> >>>
> >> >>> Thanks,
> >> >>>  - Eric
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>> On Thu, Oct 15, 2009 at 5:59 PM, Musachy Barroso <musachy@gmail.com
> >
> >> wrote:
> >> >>>
> >> >>>> just for kicks, put the embeddedjsp plugin in the shared dir,
and
> see
> >> >>>> if it works.
> >> >>>>
> >> >>>> On Thu, Oct 15, 2009 at 7:58 AM, Musachy Barroso <
> musachy@gmail.com>
> >> >>>> wrote:
> >> >>>> > yeah that is kind of strange. do you have any of the struts,
or
> your
> >> >>>> > jars in the tomcat shared dir? even in that case it should
not
> >> matter.
> >> >>>> >
> >> >>>> > musachy
> >> >>>> >
> >> >>>> > On Thu, Oct 15, 2009 at 1:10 AM, Obinna <obinna@gmail.com>
> wrote:
> >> >>>> >> There's another classloading issue with the embeddedJsp
plugin.
> >> >>>> >>
> >> >>>> >> When deploying multiple webapps on the same tomcat
server, both
> of
> >> which
> >> >>>> >> utilize the embeddedJsp plugin. After loading embeddJsp
pages in
> on
> >> web
> >> >>>> app,
> >> >>>> >> attempting to load any embeddedJsp pages in the second
webapp
> >> throws the
> >> >>>> >> following exception:
> >> >>>> >>
> >> >>>> >> java.lang.ClassCastException:
> >> >>>> >> org.apache.struts2.jasper.runtime.JspApplicationContextImpl
> cannot
> >> be
> >> >>>> cast
> >> >>>> >> to org.apache.struts2.jasper.runtime.JspApplicationContextImpl
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.jasper.runtime.JspApplicationContextImpl.getInstance(JspApplicationContextImpl.java:76)
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.jasper.runtime.JspFactoryImpl.getJspApplicationContext(JspFactoryImpl.java:200)
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.jsp.com.test.service.reporting.jsp.alert_jsp._jspInit(alert_jsp.java
> >> >>>> >> from :31)
> >> >>>> >>
> >> >>>>
> >>  org.apache.struts2.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
> >> >>>> >>
>  org.apache.struts2.JSPLoader.createServlet(JSPLoader.java:112)
> >> >>>> >>    org.apache.struts2.JSPLoader.load(JSPLoader.java:90)
> >> >>>> >>    org.apache.struts2.ServletCache$1.call(ServletCache.java:46)
> >> >>>> >>    org.apache.struts2.ServletCache$1.call(ServletCache.java:44)
> >> >>>> >>
> >>  java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >> >>>> >>    java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >> >>>> >>    org.apache.struts2.ServletCache.get(ServletCache.java:53)
> >> >>>> >>    org.apache.struts2.JSPRuntime.handle(JSPRuntime.java:63)
> >> >>>> >>    org.apache.struts2.JSPRuntime.handle(JSPRuntime.java:45)
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.EmbeddedJSPResult.doExecute(EmbeddedJSPResult.java:32)
> >> >>>> >>
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186).
> >> >>>> >>
> >> >>>> >> which is strange as i would have expected the
> >> JspApplicationContextImpl
> >> >>>> to
> >> >>>> >> be loaded and isolated by each web-application class
loader.
> >> >>>> >>
> >> >>>> >> Also, subsequent attempts to load non-embedded jsp
page then
> throw:
> >> >>>> >>
> >> >>>> >> org.apache.struts2.jasper.runtime.JspApplicationContextImpl
> cannot
> >> be
> >> >>>> cast
> >> >>>> >> to org.apache.struts2.jasper.runtime.JspApplicationContextImpl
> >> >>>> >> at
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.jasper.runtime.JspApplicationContextImpl.getInstance(JspApplicationContextImpl.java:76)
> >> >>>> >>    at
> >> >>>> >>
> >> >>>>
> >>
> org.apache.struts2.jasper.runtime.JspFactoryImpl.getJspApplicationContext(JspFactoryImpl.java:200)
> >> >>>> >>
> >> >>>> >>
> >> >>>> >> - Eric
> >> >>>> >>
> >> >>>> >>
> >> >>>> >>
> >> >>>> >>
> >> >>>> >> On Mon, Sep 28, 2009 at 11:05 AM, Obinna <obinna@gmail.com>
> wrote:
> >> >>>> >>
> >> >>>> >>> Tested and work well. Couldn't resolve
> struts2-core.2.1.9-Snapshot
> >> >>>> maven
> >> >>>> >>> dependency so I used 2.1.8 though.
> >> >>>> >>> Closed jira ticket.
> >> >>>> >>> Thanks again!!  I hope everyone realizes how
> significant/powerful
> >> a
> >> >>>> plugin
> >> >>>> >>> this is.
> >> >>>> >>>
> >> >>>> >>> - Eric
> >> >>>> >>>
> >> >>>> >>>
> >> >>>> >>>
> >> >>>> >>> On Mon, Sep 28, 2009 at 9:07 AM, Musachy Barroso
<
> >> musachy@gmail.com
> >> >>>> >wrote:
> >> >>>> >>>
> >> >>>> >>>> I should have done it with jasper 6 since
the beginning, but
> it
> >> seemed
> >> >>>> >>>> more difficult and my laziness took the best
of me :)
> >> >>>> >>>>
> >> >>>> >>>> musachy
> >> >>>> >>>>
> >> >>>> >>>> On Sun, Sep 27, 2009 at 10:12 PM, Obinna <obinna@gmail.com>
> >> wrote:
> >> >>>> >>>> > Great!. Musachy, thanks a million for
doing this so quickly.
> >> I'll
> >> >>>> give
> >> >>>> >>>> it a
> >> >>>> >>>> > test anon
> >> >>>> >>>> >
> >> >>>> >>>> >
> >> >>>> >>>> > On Mon, Sep 28, 2009 at 6:18 AM, Martin
Gainty <
> >> mgainty@hotmail.com
> >> >>>> >
> >> >>>> >>>> wrote:
> >> >>>> >>>> >
> >> >>>> >>>> >>
> >> >>>> >>>> >> thanks for the headsup.. 2.1.8 builds
now..
> >> >>>> >>>> >> I had wrong version of commons-collections
ListUtils not
> >> having
> >> >>>> >>>> >> isEqualList(collection,collection)
> >> >>>> >>>> >>        <dependency>
> >> >>>> >>>> >>
> >>  <groupId>org.apache.commons.collections</groupId>
> >> >>>> >>>> >>                <artifactId>commons-collections</artifactId>
> >> >>>> >>>> >>                <version>3.2.1</version>
> >> >>>> >>>> >>        </dependency>
> >> >>>> >>>> >> pulls correct version
> >> >>>> >>>> >>
> >> >>>> >>>> >> seeing some failures in surefire..(too
many to count on one
> >> hand
> >> >>>> will
> >> >>>> >>>> take
> >> >>>> >>>> >> a look tommorrow)
> >> >>>> >>>> >> thanks,
> >> >>>> >>>> >> Martin Gainty
> >> >>>> >>>> >> ______________________________________________
> >> >>>> >>>> >> Standard Caveats apply
> >> >>>> >>>> >>
> >> >>>> >>>> >>
> >> >>>> >>>> >>
> >> >>>> >>>> >>
> >> >>>> >>>> >> > Date: Sun, 27 Sep 2009 19:00:12
-0700
> >> >>>> >>>> >> > Subject: Re: embeddedJsp plugin
causing jsp compilation
> >> issues
> >> >>>> >>>> >> > From: musachy@gmail.com
> >> >>>> >>>> >> > To: dev@struts.apache.org
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > a'right. The code is in trunk.
To use the plugin with
> >> tomcat,
> >> >>>> just
> >> >>>> >>>> >> > build it and deploy it as usual.
It works with Jetty 7+,
> >> which
> >> >>>> needs
> >> >>>> >>>> >> > the tomcat deps added to the
application, adding this to
> >> your pom
> >> >>>> >>>> will
> >> >>>> >>>> >> > take care of it:
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > <dependency>
> >> >>>> >>>> >> >        <groupId>org.apache.tomcat</groupId>
> >> >>>> >>>> >> >        <artifactId>jasper</artifactId>
> >> >>>> >>>> >> >        <version>6.0.18</version>
> >> >>>> >>>> >> > </dependency>
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > let me know if it works.
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > musachy
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > On Sun, Sep 27, 2009 at 6:34
PM, Musachy Barroso <
> >> >>>> musachy@gmail.com>
> >> >>>> >>>> >> wrote:
> >> >>>> >>>> >> > > it works on tomcat but
now it breaks in jetty...oh joy.
> >> >>>> >>>> >> > >
> >> >>>> >>>> >> > > On Sun, Sep 27, 2009 at
2:35 PM, Musachy Barroso <
> >> >>>> >>>> musachy@gmail.com>
> >> >>>> >>>> >> wrote:
> >> >>>> >>>> >> > >> ok I got jasper 6 working.
I will do some more testing
> >> (at
> >> >>>> least
> >> >>>> >>>> the
> >> >>>> >>>> >> > >> junits run fine), commit
the jasper code, and then
> commit
> >> my
> >> >>>> >>>> changes.
> >> >>>> >>>> >> > >> (later on)
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >> musachy
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >> On Sun, Sep 27, 2009
at 12:56 PM, Musachy Barroso <
> >> >>>> >>>> musachy@gmail.com>
> >> >>>> >>>> >> wrote:
> >> >>>> >>>> >> > >>> yeah that would
work if I could use it as a library,
> but
> >> >>>> jasper
> >> >>>> >>>> is
> >> >>>> >>>> >> not
> >> >>>> >>>> >> > >>> written with that
in mind. I had to change a fairly
> >> amount of
> >> >>>> >>>> private
> >> >>>> >>>> >> > >>> code to get it
to work.
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>> musachy
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>> On Sun, Sep 27,
2009 at 12:50 PM, Antonio Petrelli
> >> >>>> >>>> >> > >>> <antonio.petrelli@gmail.com>
wrote:
> >> >>>> >>>> >> > >>>> 2009/9/27 Musachy
Barroso <musachy@gmail.com>:
> >> >>>> >>>> >> > >>>>> It is a
missmatch between the jsp-apis. The
> internal
> >> jasper
> >> >>>> >>>> >> implements
> >> >>>> >>>> >> > >>>>> 2.0, while
tomcat 6/jasper 6 implement 2.1, and in
> 2.1
> >> >>>> there a
> >> >>>> >>>> new
> >> >>>> >>>> >> > >>>>> method
called. It is not looking good.
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >> > >>>> You might wish
to use JarJar to repackage, to avoid
> >> >>>> conflicts
> >> >>>> >>>> like
> >> >>>> >>>> >> > >>>> this. Lots
of people use them to avoid dependencies,
> >> like
> >> >>>> >>>> >> > >>>> commons-logging.
> >> >>>> >>>> >> > >>>> See:
> >> >>>> >>>> >> > >>>> http://docs.atlassian.com/jarjar-maven-plugin/
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >> > >>>> HTH
> >> >>>> >>>> >> > >>>> Antonio
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >>
> >> >>>>
> ---------------------------------------------------------------------
> >> >>>> >>>> >> > >>>> To unsubscribe,
e-mail:
> >> dev-unsubscribe@struts.apache.org
> >> >>>> >>>> >> > >>>> For additional
commands, e-mail:
> >> dev-help@struts.apache.org
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >> > >>>>
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>> --
> >> >>>> >>>> >> > >>> "Hey you! Would
you help me to carry the stone?" Pink
> >> Floyd
> >> >>>> >>>> >> > >>>
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >> --
> >> >>>> >>>> >> > >> "Hey you! Would you
help me to carry the stone?" Pink
> >> Floyd
> >> >>>> >>>> >> > >>
> >> >>>> >>>> >> > >
> >> >>>> >>>> >> > >
> >> >>>> >>>> >> > >
> >> >>>> >>>> >> > > --
> >> >>>> >>>> >> > > "Hey you! Would you help
me to carry the stone?" Pink
> >> Floyd
> >> >>>> >>>> >> > >
> >> >>>> >>>> >> >
> >> >>>> >>>> >> >
> >> >>>> >>>> >> >
> >> >>>> >>>> >> > --
> >> >>>> >>>> >> > "Hey you! Would you help me
to carry the stone?" Pink
> Floyd
> >> >>>> >>>> >> >
> >> >>>> >>>> >> >
> >> >>>>
> ---------------------------------------------------------------------
> >> >>>> >>>> >> > To unsubscribe, e-mail:
> dev-unsubscribe@struts.apache.org
> >> >>>> >>>> >> > For additional commands, e-mail:
> dev-help@struts.apache.org
> >> >>>> >>>> >> >
> >> >>>> >>>> >>
> >> >>>> >>>> >>
> >> _________________________________________________________________
> >> >>>> >>>> >> Lauren found her dream laptop. Find
the PC that’s right for
> >> you.
> >> >>>> >>>> >>
> >> http://www.microsoft.com/windows/choosepc/?ocid=ftp_val_wl_290
> >> >>>> >>>> >
> >> >>>> >>>>
> >> >>>> >>>>
> >> >>>> >>>>
> >> >>>> >>>> --
> >> >>>> >>>> "Hey you! Would you help me to carry the stone?"
Pink Floyd
> >> >>>> >>>>
> >> >>>> >>>>
> >> ---------------------------------------------------------------------
> >> >>>> >>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> >> >>>> >>>> For additional commands, e-mail: dev-help@struts.apache.org
> >> >>>> >>>>
> >> >>>> >>>>
> >> >>>> >>>
> >> >>>> >>
> >> >>>> >
> >> >>>> >
> >> >>>> >
> >> >>>> > --
> >> >>>> > "Hey you! Would you help me to carry the stone?" Pink
Floyd
> >> >>>> >
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>> --
> >> >>>> "Hey you! Would you help me to carry the stone?" Pink Floyd
> >> >>>>
> >> >>>>
> ---------------------------------------------------------------------
> >> >>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> >> >>>> For additional commands, e-mail: dev-help@struts.apache.org
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> "Hey you! Would you help me to carry the stone?" Pink Floyd
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > "Hey you! Would you help me to carry the stone?" Pink Floyd
> >> >
> >>
> >>
> >>
> >> --
> >> "Hey you! Would you help me to carry the stone?" Pink Floyd
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> >> For additional commands, e-mail: dev-help@struts.apache.org
> >>
> >>
> >
>
>
>
> --
> "Hey you! Would you help me to carry the stone?" Pink Floyd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message