• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

When I mix JSTL 1.0 and 1.1 taglib declarations, it causes a ParseException on some of my servers.

 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When I mix JSTL 1.0 and JSTL 1.1 taglib declarations, it causes a ParseException on some of my servers, but not all of them.

Here is the block of code that's giving me trouble:
And here is the exception :

javax.servlet.jsp.JspException: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out' / attribute = 'value': An error occurred while parsing custom action attribute "value" with value "${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported.

However, everything works fine if I change the URI for the core declaration to http://java.sun.com/jsp/jstl/core

So here's the really weird part: for some reason, mixing 1.0 and 1.1 taglib declarations only causes an exception on two of my servers, my staging server and my production server. It causes no problems at all on my local machine or my development server. Why is this? What could possibly be causing this difference in behavior? The three servers are extremely similar in setup and configuration.

The JSP page is being served up by OpenCMS, and I'm using the Caucho's Resin webserver. I understand that you don't know how my servers or CMS are set up, but really, what I'm looking for is ideas. Any ideas at all would help, this problem has been driving me absolutely batty. Even if you don't know what could be causing the problem, if you have any suggestions at all for how I could approach the problem, that would be extremely helpful. I just don't understand what could cause this difference in behavior between my servers.

For reference, here's the full stack trace :

javax.servlet.jsp.JspException: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out' / attribute = 'value': An error occurred while parsing custom action attribute "value" with value "${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported. at
org.opencms.jsp.CmsJspTagInclude.includeActionWithCache(CmsJspTagInclude.java:369) at
org.opencms.jsp.CmsJspTagInclude.includeTagAction(CmsJspTagInclude.java:241) at
org.opencms.jsp.CmsJspTagInclude.doEndTag(CmsJspTagInclude.java:472) at
_jsp._WEB_22dINF._jsp._online._system._modules._com__MYCOMPANY__marketing._templates._PAGETHATINCLUDES_0MYJSPPAGE__jsp._jspService(_PAGETHATINCLUDES_0MYJSPPAGE__jsp.java:153) at
com.caucho.jsp.JavaPage.service(JavaPage.java:60) at
com.caucho.jsp.Page.pageservice(Page.java:579) at
com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179) at
shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57) at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at
com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115) at
com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:175) at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:485) at
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:350) at
org.opencms.flex.CmsFlexRequestDispatcher.includeExternal(CmsFlexRequestDispatcher.java:194) at
org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:169) at
org.opencms.loader.CmsJspLoader.service(CmsJspLoader.java:1193) at
org.opencms.flex.CmsFlexRequestDispatcher.includeInternalWithCache(CmsFlexRequestDispatcher.java:423) at
org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:173) at
org.opencms.loader.CmsJspLoader.dispatchJsp(CmsJspLoader.java:1227) at
org.opencms.loader.CmsJspLoader.load(CmsJspLoader.java:1171) at
org.opencms.loader.A_CmsXmlDocumentLoader.load(A_CmsXmlDocumentLoader.java:232) at
org.opencms.loader.CmsXmlContentLoader.load(CmsXmlContentLoader.java:52) at
org.opencms.loader.CmsResourceManager.loadResource(CmsResourceManager.java:964) at
org.opencms.main.OpenCmsCore.showResource(OpenCmsCore.java:1498) at
org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:152) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:115) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:92) at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106) at
com.caucho.filters.CmsGzipFilter.doFilter(CmsGzipFilter.java:177) at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at
shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57) at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at
com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115) at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277) at
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106) at
com.caucho.server.dispatch.ForwardFilterChain.doFilter(ForwardFilterChain.java:80) at
com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:207) at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173) at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274) at
com.caucho.server.port.TcpConnection.run(TcpConnection.java:514) at
com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520) at
com.caucho.util.ThreadPool.run(ThreadPool.java:442) at
java.lang.Thread.run(Thread.java:595)
Caused by: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out' / attribute = 'value': An error occurred while parsing custom action attribute "value" with value "${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported. at
com.caucho.jsp.java.JspNode.error(JspNode.java:1489) at
com.caucho.jsp.java.JspNode.error(JspNode.java:1480) at
com.caucho.jsp.java.JavaJspGenerator.validate(JavaJspGenerator.java:466) at
com.caucho.jsp.JspCompilerInstance.generate(JspCompilerInstance.java:475) at
com.caucho.jsp.JspCompilerInstance.compile(JspCompilerInstance.java:373) at
com.caucho.jsp.JspManager.compile(JspManager.java:233) at
com.caucho.jsp.JspManager.createPage(JspManager.java:177) at
com.caucho.jsp.JspManager.createPage(JspManager.java:157) at
com.caucho.jsp.PageManager.getPage(PageManager.java:248) at
com.caucho.jsp.PageManager.getPage(PageManager.java:166) at
com.caucho.jsp.QServlet.getSubPage(QServlet.java:292) at
com.caucho.jsp.QServlet.getPage(QServlet.java:210) at
com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:206) at
com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:133) at
shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57) at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at
com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115) at
com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:175) at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:485) at
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:350) at
org.opencms.flex.CmsFlexRequestDispatcher.includeExternal(CmsFlexRequestDispatcher.java:194) at
org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:169) at
org.opencms.loader.CmsJspLoader.service(CmsJspLoader.java:1193) at
org.opencms.flex.CmsFlexRequestDispatcher.includeInternalWithCache(CmsFlexRequestDispatcher.java:423) at
org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:173) at
org.opencms.jsp.CmsJspTagInclude.includeActionWithCache(CmsJspTagInclude.java:364) ... 45 more


Thanks for the help!
 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm not surprised. Why on Earth would you do that? Don't. It's not supported, and can come to no good.

What problem are you trying to solve by doing this?
 
Tonya Bowen
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No, we don't plan on mixing JSTL declarations. Doing so caused problems for us.

However, the fact that it causes an exception on one server but not on another server makes us distressed. There must be some difference in the way the servers are set up.

I was given the task of finding out what is causing this difference in behavior, and to be honest, I don't even know where to begin.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm puzzled. If it's not something you are going to do, why waste the time solving a problem that doesn't exist?
 
Tonya Bowen
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Because we're trying to make sure that our Staging, Dev, and Production servers have the same configuration. This difference that we're seeing may be indicative of a larger problem.

Also, there are other factors that I cannot discuss. Let's just say that until this is figured out, I cannot move on to anything else.

Can you help me figure out what caused this problem?
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
My guess would be that it's a race condition, over which you have no control at all, regarding which version of the library is getting loaded first. There's not much to be done except to avoid the situation in the first place.
 
Tonya Bowen
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, if it were a race condition, I wouldn't be able to reproduce the error. Instead, I can reproduce it rather reliably. On my staging and production server, a JSP with mixed declarations always throws an exception. On my local machine and dev server, the page will always load without incident.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It could still be a race condition based upon environmental factors. But of course, it's impossible for me to say for sure.

But really, I still think that you are tilting at windmills. Sorry that I cannot be of more help.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic