1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 /* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package com.sun.org.apache.xerces.internal.jaxp; 23 24 import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter; 25 import java.util.Locale; 26 import org.xml.sax.SAXException; 27 import org.xml.sax.SAXParseException; 28 import org.xml.sax.helpers.DefaultHandler; 29 30 /** 31 */ 32 33 class DefaultValidationErrorHandler extends DefaultHandler { 34 static private int ERROR_COUNT_LIMIT = 10; 35 private int errorCount = 0; 36 private Locale locale = Locale.getDefault(); 37 38 public DefaultValidationErrorHandler(Locale locale) { 39 this.locale = locale; 40 } 41 42 // XXX Fix message i18n 43 public void error(SAXParseException e) throws SAXException { 44 if (errorCount >= ERROR_COUNT_LIMIT) { 45 // Ignore all errors after reaching the limit 46 return; 47 } else if (errorCount == 0) { 48 // Print a warning before the first error 49 System.err.println(SAXMessageFormatter.formatMessage(locale, 50 "errorHandlerNotSet", new Object [] {errorCount})); 51 } 52 53 String systemId = e.getSystemId(); 54 if (systemId == null) { 55 systemId = "null"; 56 } 57 String message = "Error: URI=" + systemId + 58 " Line=" + e.getLineNumber() + 59 ": " + e.getMessage(); 60 System.err.println(message); 61 errorCount++; 62 } 63 }