Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-4237

recursive tag on linux using a tag alias causes an error during jsp compiling on Jetty 7

    Details

    • Type: Bug Fix
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.2.1, KC Release 3.0
    • Fix Version/s: 1.0.2.1, KC Release 3.0
    • Component/s: Development
    • Labels:
      None
    • Rice Module:
      KNS
    • Application Requirement:
      KC

      Description

      The checkTabHighlight is recursive. On Jetty 7 this tag causes a FileNotFoundException during jsp compilation. This issue only shows up on Linux (not Windows). The workaround appears to be not using the kul alias but referring directly to the tag location. We also confirmed that this workaround does not break tomcat 6. See the stacktrace below:

      Problem accessing /kc-dev/kew/DocumentSearch.do. Reason:

      no such file:
      /home/dpace/src/kc_project/target/tmp/jsp/org/apache/jsp/tag/web/kr/checkTabHighlight_tag.class

      Caused by:

      java.io.FileNotFoundException: no such file:
      /home/dpace/src/kc_project/target/tmp/jsp/org/apache/jsp/tag/web/kr/checkTabHighlight_tag.class
      at org.apache.jasper.compiler.SmapUtil$SDEInstaller.<init>(SmapUtil.java:258)
      at org.apache.jasper.compiler.SmapUtil$SDEInstaller.install(SmapUtil.java:230)
      at org.apache.jasper.compiler.SmapUtil.installSmap(SmapUtil.java:158)
      at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:390)
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
      at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:261)
      at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:683)
      at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:88)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:739)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2347)
      at org.apache.jasper.compiler.Node$Root.accept(Node.java:498)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:757)
      at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:222)
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:435)
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
      at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:261)
      at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:683)
      at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:88)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:739)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:743)
      at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)
      at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2347)
      at org.apache.jasper.compiler.Node$Root.accept(Node.java:498)
      at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)
      at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:757)
      at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:222)
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:435)
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:924)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:860)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
      at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:346)
      at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115)
      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
      at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:924)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:860)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
      at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:346)
      at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115)
      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
      at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
      at org.kuali.kra.web.filter.RequestLoggingFilter.doFilter(RequestLoggingFilter.java:95)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:305)
      at org.kuali.rice.kew.web.DummyLoginFilter.doFilter(DummyLoginFilter.java:88)
      at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:298)
      at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:166)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.kuali.kra.web.filter.PerformanceLoggingFilter.doFilter(PerformanceLoggingFilter.java:72)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.kuali.kra.web.filter.SessionExpiredFilter.doFilter(SessionExpiredFilter.java:44)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:924)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:860)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
      at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
      at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
      at org.eclipse.jetty.server.Server.handle(Server.java:335)
      at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:588)
      at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1029)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
      at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:418)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:476)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
      at java.lang.Thread.run(Thread.java:636)

        Attachments

          Issue Links

            Activity

            Hide
            tschneeb Travis Schneeberger added a comment -

            What's also interesting is even though Jetty is using jasper compilers this problem does not occur in tomcat 6.

            Show
            tschneeb Travis Schneeberger added a comment - What's also interesting is even though Jetty is using jasper compilers this problem does not occur in tomcat 6.
            Hide
            tschneeb Travis Schneeberger added a comment -

            This also happens with the rowDisplay.tag. I tried a workaround by using a different tag alias for the recursive call - not sure if this corrects the problem.

            Show
            tschneeb Travis Schneeberger added a comment - This also happens with the rowDisplay.tag. I tried a workaround by using a different tag alias for the recursive call - not sure if this corrects the problem.

              People

              • Assignee:
                tschneeb Travis Schneeberger
                Reporter:
                tschneeb Travis Schneeberger
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: