final ElementImpl last = (ElementImpl) stack.peek(); if (charBuf != null && charBuf.length() > 0) { final String normalized = charBuf.getNormalizedString(normalize);  if (normalized.length() > 0) {   text.setData(normalized); text.setOwnerDocument(document); charBuf.setLength(0);  last.appendChildInternal(text); if (!validate) broker.store(text, currentPath.toString()); } } charBuf.setLength(0);  charBuf.append(ch, start, length);
	public void characters(char[] ch, int start, int length) {		if (length <= 0)			return;		if (charBuf != null) {			charBuf.append(ch, start, length);			return;		}		final ElementImpl last = (ElementImpl) stack.peek();		if (charBuf != null && charBuf.length() > 0) {			final String normalized = charBuf.getNormalizedString(normalize);			if (normalized.length() > 0) {				//TextImpl text =				//    new TextImpl( normalized );				text.setData(normalized);				text.setOwnerDocument(document);				charBuf.setLength(0);				//charBuf = new FastStringBuffer( 6, 6, 3 );				last.appendChildInternal(text);				if (!validate)					broker.store(text, currentPath.toString());			}		}		charBuf.setLength(0);		//charBuf = new FastStringBuffer( 6, 6, 3 );		charBuf.append(ch, start, length);	}