joerg       2003/08/04 02:44:23

  Modified:    src/blocks/jsp/java/org/apache/cocoon/reading JSPReader.java
               src/blocks/jsp/java/org/apache/cocoon/generation
                        JspGenerator.java
  Log:
  fixed JSP file uri resolving (see 
http://marc.theaimsgroup.com/?t=105967319200003&r=1&w=2)
  
  Revision  Changes    Path
  1.4       +9 -6      
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/reading/JSPReader.java
  
  Index: JSPReader.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/reading/JSPReader.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JSPReader.java    10 Jul 2003 23:38:04 -0000      1.3
  +++ JSPReader.java    4 Aug 2003 09:44:23 -0000       1.4
  @@ -60,6 +60,7 @@
   
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.components.jsp.JSPEngine;
  +import org.apache.cocoon.environment.ObjectModelHelper;
   import org.apache.cocoon.environment.http.HttpEnvironment;
   
   /**
  @@ -100,8 +101,9 @@
               if (!url.startsWith("/")) {
                   // get current request path
                   String servletPath = httpRequest.getServletPath();
  -                // remove file part
  -                servletPath = servletPath.substring(0, 
servletPath.lastIndexOf('/') + 1);
  +                // remove sitemap URI part
  +                String sitemapURI = 
ObjectModelHelper.getRequest(objectModel).getSitemapURI();
  +                servletPath = servletPath.substring(0, 
servletPath.indexOf(sitemapURI));
                   url = servletPath + url;
               }
   
  @@ -124,14 +126,15 @@
               bais.close();
               bais = null;
               out.flush();
  +            //this.resolver.release(source);
           } catch (ServletException e) {
  -            throw new ProcessingException("ServletException in 
JSPReader.generate()",e.getRootCause());
  +            throw new ProcessingException("ServletException in 
JSPReader.generate()", e.getRootCause());
           } catch (IOException e) {
  -            throw new ProcessingException("IOException 
JSPReader.generate()",e);
  +            throw new ProcessingException("IOException 
JSPReader.generate()", e);
           } catch (ProcessingException e) {
               throw e;
           } catch (Exception e) {
  -            throw new ProcessingException("Exception 
JSPReader.generate()",e);
  +            throw new ProcessingException("Exception JSPReader.generate()", 
e);
           } finally {
               if (engine != null) this.manager.release(engine);
           }
  
  
  
  1.6       +9 -7      
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java
  
  Index: JspGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JspGenerator.java 12 Jul 2003 14:45:26 -0000      1.5
  +++ JspGenerator.java 4 Aug 2003 09:44:23 -0000       1.6
  @@ -56,6 +56,7 @@
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.components.jsp.JSPEngine;
  +import org.apache.cocoon.environment.ObjectModelHelper;
   import org.apache.cocoon.environment.http.HttpEnvironment;
   import org.apache.excalibur.xml.sax.SAXParser;
   import org.xml.sax.InputSource;
  @@ -108,8 +109,9 @@
               if (!url.startsWith("/")) {
                   // get current request path
                   String servletPath = httpRequest.getServletPath();
  -                // remove file part
  -                servletPath = servletPath.substring(0, 
servletPath.lastIndexOf('/') + 1);
  +                // remove sitemap URI part
  +                String sitemapURI = 
ObjectModelHelper.getRequest(objectModel).getSitemapURI();
  +                servletPath = servletPath.substring(0, 
servletPath.indexOf(sitemapURI));
                   url = servletPath + url;
               }
   
  @@ -126,15 +128,15 @@
               parser = (SAXParser)this.manager.lookup(SAXParser.ROLE);
               parser.parse(input, this.xmlConsumer);
           } catch (ServletException e) {
  -            throw new ProcessingException("ServletException in 
JspGenerator.generate()",e.getRootCause());
  +            throw new ProcessingException("ServletException in 
JspGenerator.generate()", e.getRootCause());
           } catch (SAXException e) {
  -            throw new ProcessingException("SAXException 
JspGenerator.generate()",e.getException());
  +            throw new ProcessingException("SAXException 
JspGenerator.generate()", e.getException());
           } catch (IOException e) {
  -            throw new ProcessingException("IOException 
JspGenerator.generate()",e);
  +            throw new ProcessingException("IOException 
JspGenerator.generate()", e);
           } catch (ProcessingException e) {
               throw e;
           } catch (Exception e) {
  -            throw new ProcessingException("Exception 
JspGenerator.generate()",e);
  +            throw new ProcessingException("Exception 
JspGenerator.generate()", e);
           } finally {
               this.manager.release((Component)parser);
               this.manager.release(engine);
  
  
  

Reply via email to