mrglavas 2004/03/11 10:15:18 Modified: java/src/org/apache/xerces/impl XMLDocumentScannerImpl.java XMLDocumentFragmentScannerImpl.java java/src/org/apache/xerces/xinclude XIncludeHandler.java java/src/org/apache/xerces/impl/msg XMLMessages.properties Log: Further fixes for Bugs #27083 & #27422:
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27083 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27422 Report illegal byte sequences for other encodings than UTF-8 and US-ASCII as fatal errors. Added a generic message for other encodings stating that illegal sequences in a given encoding are not allowed. Revision Changes Path 1.42 +22 -1 xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentScannerImpl.java Index: XMLDocumentScannerImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentScannerImpl.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- XMLDocumentScannerImpl.java 5 Mar 2004 22:17:00 -0000 1.41 +++ XMLDocumentScannerImpl.java 11 Mar 2004 18:15:17 -0000 1.42 @@ -16,6 +16,7 @@ package org.apache.xerces.impl; +import java.io.CharConversionException; import java.io.EOFException; import java.io.IOException; @@ -668,11 +669,16 @@ // if no XMLDecl, then scan piece of prolog return true; } + // encoding errors catch (MalformedByteSequenceException e) { fErrorReporter.reportError(e.getDomain(), e.getKey(), e.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); return false; } + catch (CharConversionException e) { + reportFatalError("CharConversionFailure", null); + return false; + } // premature end of file catch (EOFException e) { reportFatalError("PrematureEOF", null); @@ -836,11 +842,16 @@ setDispatcher(fContentDispatcher); } } + // encoding errors catch (MalformedByteSequenceException e) { fErrorReporter.reportError(e.getDomain(), e.getKey(), e.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); return false; } + catch (CharConversionException e) { + reportFatalError("CharConversionFailure", null); + return false; + } // premature end of file catch (EOFException e) { reportFatalError("PrematureEOF", null); @@ -949,11 +960,16 @@ } } while (complete || again); } + // encoding errors catch (MalformedByteSequenceException e) { fErrorReporter.reportError(e.getDomain(), e.getKey(), e.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); return false; } + catch (CharConversionException e) { + reportFatalError("CharConversionFailure", null); + return false; + } // premature end of file catch (EOFException e) { reportFatalError("PrematureEOF", null); @@ -1188,9 +1204,14 @@ } } while (complete || again); } + // encoding errors catch (MalformedByteSequenceException e) { fErrorReporter.reportError(e.getDomain(), e.getKey(), e.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); + return false; + } + catch (CharConversionException e) { + reportFatalError("CharConversionFailure", null); return false; } catch (EOFException e) { 1.50 +7 -1 xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java Index: XMLDocumentFragmentScannerImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- XMLDocumentFragmentScannerImpl.java 5 Mar 2004 22:17:00 -0000 1.49 +++ XMLDocumentFragmentScannerImpl.java 11 Mar 2004 18:15:17 -0000 1.50 @@ -16,6 +16,7 @@ package org.apache.xerces.impl; +import java.io.CharConversionException; import java.io.EOFException; import java.io.IOException; @@ -1609,9 +1610,14 @@ } } while (complete || again); } + // encoding errors catch (MalformedByteSequenceException e) { fErrorReporter.reportError(e.getDomain(), e.getKey(), e.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); + return false; + } + catch (CharConversionException e) { + reportFatalError("CharConversionFailure", null); return false; } // premature end of file 1.24 +8 -1 xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java Index: XIncludeHandler.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- XIncludeHandler.java 4 Mar 2004 22:48:08 -0000 1.23 +++ XIncludeHandler.java 11 Mar 2004 18:15:18 -0000 1.24 @@ -15,6 +15,7 @@ */ package org.apache.xerces.xinclude; +import java.io.CharConversionException; import java.io.IOException; import java.util.Enumeration; import java.util.Stack; @@ -25,6 +26,7 @@ import org.apache.xerces.impl.XMLEntityManager; import org.apache.xerces.impl.XMLErrorReporter; import org.apache.xerces.impl.io.MalformedByteSequenceException; +import org.apache.xerces.impl.msg.XMLMessageFormatter; import org.apache.xerces.util.AugmentationsImpl; import org.apache.xerces.util.IntStack; import org.apache.xerces.util.ParserConfigurationSettings; @@ -1265,9 +1267,14 @@ reader.setErrorReporter(fErrorReporter); reader.parse(); } + // encoding errors catch (MalformedByteSequenceException ex) { fErrorReporter.reportError(ex.getDomain(), ex.getKey(), ex.getArguments(), XMLErrorReporter.SEVERITY_FATAL_ERROR); + } + catch (CharConversionException e) { + fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN, + "CharConversionFailure", null, XMLErrorReporter.SEVERITY_FATAL_ERROR); } catch (IOException e) { reportResourceError( 1.29 +1 -0 xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties Index: XMLMessages.properties =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- XMLMessages.properties 13 Nov 2003 05:21:17 -0000 1.28 +++ XMLMessages.properties 11 Mar 2004 18:15:18 -0000 1.29 @@ -120,6 +120,7 @@ InvalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}. OperationNotSupported = Operation \"{0}\" not supported by {1} reader. InvalidASCII = Byte \"{0}\" is not a member of the (7-bit) ASCII character set. + CharConversionFailure = An entity determined to be in a certain encoding must not contain sequences illegal in that encoding. # DTD Messages # 2.2 Characters --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]