Author: vgritsenko Date: Fri Apr 29 09:55:02 2005 New Revision: 165317 URL: http://svn.apache.org/viewcvs?rev=165317&view=rev Log: unwrap evil SAXExceptions
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/source/SourceUtil.java Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/source/SourceUtil.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/source/SourceUtil.java?rev=165317&r1=165316&r2=165317&view=diff ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/source/SourceUtil.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/source/SourceUtil.java Fri Apr 29 09:55:02 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,7 +65,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> * @author <a href="mailto:[EMAIL PROTECTED]">Stephan Michels</a> - * @version CVS $Id$ + * @version $Id$ */ public final class SourceUtil { @@ -85,6 +85,37 @@ } /** + * Generates SAX events from the XMLizable and handle SAXException. + * + * @param source the data + */ + static public void toSAX(XMLizable source, + ContentHandler handler) + throws SAXException, IOException, ProcessingException { + try { + source.toSAX(handler); + } catch (SAXException e) { + // Unwrap ProcessingException, IOException, and extreme cases of SAXExceptions. + // See also handleSAXException + final Exception cause = e.getException(); + if (cause != null) { + if (cause instanceof ProcessingException) { + throw (ProcessingException) cause; + } + if (cause instanceof IOException) { + throw (IOException) cause; + } + if (cause instanceof SAXException) { + throw (SAXException) cause; + } + } + + // Throw original SAX exception + throw e; + } + } + + /** * Generates SAX events from the given source. * * <p><b>NOTE</b>: If the implementation can produce lexical events, @@ -138,25 +169,7 @@ ContentHandler handler) throws SAXException, IOException, ProcessingException { if (source instanceof XMLizable) { - try { - ((XMLizable) source).toSAX(handler); - } catch (SAXException e) { - // Unwrap ProcessingException, IOException, and extreme cases of SAXExceptions. - // See also handleSAXException - final Exception cause = e.getException(); - if (cause != null) { - if (cause instanceof ProcessingException) { - throw (ProcessingException) cause; - } - if (cause instanceof IOException) { - throw (IOException) cause; - } - if (cause instanceof SAXException) { - throw (SAXException) cause; - } - } - throw e; - } + toSAX((XMLizable) source, handler); } else { String mimeType = source.getMimeType(); if (null == mimeType) { @@ -196,7 +209,7 @@ ContentHandler handler) throws SAXException, IOException, ProcessingException { if (source instanceof XMLizable) { - ((XMLizable) source).toSAX(handler); + toSAX((XMLizable) source, handler); } else { String mimeType = source.getMimeType(); if (null == mimeType) { @@ -236,7 +249,7 @@ ContentHandler handler) throws SAXException, IOException, ProcessingException { if (source instanceof XMLizable) { - ((XMLizable) source).toSAX(handler); + toSAX((XMLizable) source, handler); } else { SAXParser parser = null; try { @@ -267,7 +280,7 @@ ContentHandler handler) throws SAXException, IOException, ProcessingException { if (source instanceof XMLizable) { - ((XMLizable) source).toSAX(handler); + toSAX((XMLizable) source, handler); } else { SAXParser parser = null; try {