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]