dims        01/09/17 13:26:48

  Modified:    src/org/apache/cocoon/components/sax Tag: cocoon_20_branch
                        XMLByteStreamCompiler.java
                        XMLByteStreamInterpreter.java
               src/org/apache/cocoon/transformation Tag: cocoon_20_branch
                        XIncludeTransformer.java
  Log:
  - Fixed NPE problems with XIncludeTransformer by ensuring that setDocumentLocator 
are called correctly.
  - Added a debug statement for monitoring setDocumentHandler.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.1.1.2.3 +13 -2     
xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java
  
  Index: XMLByteStreamCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java,v
  retrieving revision 1.1.1.1.2.2
  retrieving revision 1.1.1.1.2.3
  diff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3
  --- XMLByteStreamCompiler.java        2001/08/20 14:07:29     1.1.1.1.2.2
  +++ XMLByteStreamCompiler.java        2001/09/17 20:26:48     1.1.1.1.2.3
  @@ -20,7 +20,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.1.1.1.2.2 $ $Date: 2001/08/20 14:07:29 $
  + * @version CVS $Revision: 1.1.1.1.2.3 $ $Date: 2001/09/17 20:26:48 $
    */
   
   public final class XMLByteStreamCompiler
  @@ -67,6 +67,7 @@
       private static final int IGNORABLE_WHITESPACE   = 7;
       private static final int PROCESSING_INSTRUCTION = 8;
       private static final int COMMENT                = 9;
  +    private static final int LOCATOR                = 10;
   
   
       public Object getSAXFragment() {
  @@ -140,7 +141,17 @@
       }
   
       public void setDocumentLocator(Locator locator) {
  -        // ignore.
  +        try {
  +            this.writeEvent(LOCATOR);
  +            String publicId = locator.getPublicId();
  +            String systemId = locator.getSystemId();
  +            this.writeString(publicId!=null?publicId:"";);
  +            this.writeString(systemId!=null?systemId:"";);
  +            this.write(locator.getLineNumber());
  +            this.write(locator.getColumnNumber());
  +        } catch (Exception e) {
  +             throw new RuntimeException(e.toString());
  +        }
       }
   
       public void skippedEntity(java.lang.String name) throws SAXException {
  
  
  
  1.4.2.2   +16 -1     
xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamInterpreter.java
  
  Index: XMLByteStreamInterpreter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamInterpreter.java,v
  retrieving revision 1.4.2.1
  retrieving revision 1.4.2.2
  diff -u -r1.4.2.1 -r1.4.2.2
  --- XMLByteStreamInterpreter.java     2001/08/20 14:07:29     1.4.2.1
  +++ XMLByteStreamInterpreter.java     2001/09/17 20:26:48     1.4.2.2
  @@ -20,7 +20,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.4.2.1 $ $Date: 2001/08/20 14:07:29 $
  + * @version CVS $Revision: 1.4.2.2 $ $Date: 2001/09/17 20:26:48 $
    */
   
   public final class XMLByteStreamInterpreter
  @@ -37,6 +37,7 @@
       private static final int IGNORABLE_WHITESPACE   = 7;
       private static final int PROCESSING_INSTRUCTION = 8;
       private static final int COMMENT                = 9;
  +    private static final int LOCATOR                = 10;
   
       private ArrayList list = new ArrayList();
       private byte[] input;
  @@ -105,6 +106,20 @@
                           len = chars.length;
                           while (len > 0 && chars[len-1]==0) len--;
                           if (len > 0) lexicalHandler.comment(chars, 0, len);
  +                    }
  +                    break;
  +                case LOCATOR:
  +                    {
  +                    String publidId = this.readString();
  +                    String systemId = this.readString();
  +                    int lineNumber = this.read();
  +                    int columnNumber = this.read();
  +                    org.xml.sax.helpers.LocatorImpl locator = new 
org.xml.sax.helpers.LocatorImpl();
  +                    locator.setPublicId(publidId);
  +                    locator.setSystemId(systemId);
  +                    locator.setLineNumber(lineNumber);
  +                    locator.setColumnNumber(columnNumber);
  +                    contentHandler.setDocumentLocator(locator);
                       }
                       break;
                   default:
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.8   +6 -1      
xml-cocoon2/src/org/apache/cocoon/transformation/XIncludeTransformer.java
  
  Index: XIncludeTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/XIncludeTransformer.java,v
  retrieving revision 1.6.2.7
  retrieving revision 1.6.2.8
  diff -u -r1.6.2.7 -r1.6.2.8
  --- XIncludeTransformer.java  2001/09/17 11:03:23     1.6.2.7
  +++ XIncludeTransformer.java  2001/09/17 20:26:48     1.6.2.8
  @@ -49,7 +49,7 @@
    * by the SAX event FSM yet.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Donald Ball</a>
  - * @version CVS $Revision: 1.6.2.7 $ $Date: 2001/09/17 11:03:23 $ $Author: dims $
  + * @version CVS $Revision: 1.6.2.8 $ $Date: 2001/09/17 20:26:48 $ $Author: dims $
    */
   public class XIncludeTransformer extends AbstractTransformer implements Composable, 
Recyclable, Disposable {
   
  @@ -138,6 +138,11 @@
   
       public void setDocumentLocator(Locator locator) {
           try {
  +
  +            if (getLogger().isDebugEnabled()) {
  +                getLogger().debug("XIncludeTransformer: setDocumentLocator called " 
+ locator.getSystemId());
  +            }
  +
               base_xmlbase_uri = urlFactory.getURL(locator.getSystemId());
   
               // If url ends with .xxx then truncate to dir
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to