You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2020/08/13 12:33:02 UTC

[maven-shared-utils] 01/01: fix exception handling

This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch ex
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git

commit 7e027660a2ce91555d5f667d8a6adf11a78bec66
Author: Elliotte Rusty Harold <el...@ibiblio.org>
AuthorDate: Thu Aug 13 08:32:41 2020 -0400

    fix exception handling
---
 .../maven/shared/utils/xml/Xpp3DomBuilder.java     | 22 ++++++++++-----------
 .../maven/shared/utils/xml/Xpp3DomBuilderTest.java | 23 +++++++++++++++++++++-
 2 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
index 00f6f0b..f5ed1aa 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
@@ -46,8 +46,8 @@ public class Xpp3DomBuilder
 
     /**
      * @param reader {@link Reader}
-     * @return the built dom.
-     * @throws XmlPullParserException in case of an error.
+     * @return the built DOM
+     * @throws XmlPullParserException in case of an error
      */
     public static Xpp3Dom build( @WillClose @Nonnull Reader reader )
         throws XmlPullParserException
@@ -57,9 +57,9 @@ public class Xpp3DomBuilder
 
     /**
      * @param is {@link InputStream}
-     * @param encoding The encoding.
-     * @return the built dom.
-     * @throws XmlPullParserException in case of an error.
+     * @param encoding the encoding
+     * @return the built DOM
+     * @throws XmlPullParserException in case of an error
      */
     public static Xpp3Dom build( @WillClose InputStream is, @Nonnull String encoding )
         throws XmlPullParserException
@@ -69,10 +69,10 @@ public class Xpp3DomBuilder
 
     /**
      * @param is {@link InputStream}
-     * @param encoding The encoding.
-     * @param trim true/false.
-     * @return the built dom.
-     * @throws XmlPullParserException in case of an error.
+     * @param encoding the encoding
+     * @param trim true/false
+     * @return the built DOM
+     * @throws XmlPullParserException in case of an error
      */
     public static Xpp3Dom build( @WillClose InputStream is, @Nonnull String encoding, boolean trim )
         throws XmlPullParserException
@@ -84,14 +84,14 @@ public class Xpp3DomBuilder
         }
         catch ( UnsupportedEncodingException e )
         {
-            throw new RuntimeException( e );
+            throw new XmlPullParserException( e );
         }
     }
 
     /**
      * @param reader {@link Reader}
      * @param trim true/false
-     * @return the built dom
+     * @return the built DOM
      * @throws XmlPullParserException in case of an error
      */
     public static Xpp3Dom build( @WillClose Reader in, boolean trim )
diff --git a/src/test/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilderTest.java b/src/test/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilderTest.java
index 9aaca9f..a236ede 100644
--- a/src/test/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilderTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilderTest.java
@@ -24,11 +24,16 @@ import org.apache.maven.shared.utils.xml.pull.XmlPullParserException;
 
 import org.junit.Test;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.StringReader;
 import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 
@@ -42,7 +47,7 @@ public class Xpp3DomBuilderTest
 
     private static final String xmlDeclaration = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
 
-        @Test
+    @Test
     public void selfClosingTag()
         throws Exception
     {
@@ -58,6 +63,22 @@ public class Xpp3DomBuilderTest
     }
 
     @Test
+    public void testUnrecognizedEncoding()
+    {
+
+        byte[] data = "<foo/>".getBytes(StandardCharsets.UTF_8);
+        InputStream in = new ByteArrayInputStream( data );
+        try {
+            Xpp3DomBuilder.build( in , "nosuch encoding" );
+            fail();
+        } catch ( XmlPullParserException expected ) {
+            assertTrue( expected.getCause() instanceof UnsupportedEncodingException );
+        }
+
+    }
+
+    
+    @Test
     public void trimming()
         throws Exception
     {