@@ -726,6 +726,58 @@ public void testSubsequentMalformedProcessingInstructionNoClosingQuestionMark()
726
726
*
727
727
* @throws java.lang.Exception if any.
728
728
*/
729
+ @ Test
730
+ public void testSubsequentAbortedProcessingInstruction ()
731
+ throws Exception
732
+ {
733
+ MXParser parser = new MXParser ();
734
+ StringBuilder sb = new StringBuilder ();
735
+ sb .append ( "<project />" );
736
+ sb .append ( "<?aborted" );
737
+
738
+ parser .setInput ( new StringReader ( sb .toString () ) );
739
+
740
+ try
741
+ {
742
+ assertEquals ( XmlPullParser .START_TAG , parser .next () );
743
+ assertEquals ( XmlPullParser .END_TAG , parser .next () );
744
+ assertEquals ( XmlPullParser .PROCESSING_INSTRUCTION , parser .next () );
745
+
746
+ fail ( "Should fail since it has aborted PI" );
747
+ }
748
+ catch ( XmlPullParserException ex )
749
+ {
750
+ assertTrue ( ex .getMessage ().contains ( "@1:21" ) );
751
+ assertTrue ( ex .getMessage ().contains ( "processing instruction started on line 1 and column 12 was not closed" ) );
752
+ }
753
+ }
754
+
755
+ @ Test
756
+ public void testSubsequentAbortedComment ()
757
+ throws Exception
758
+ {
759
+ MXParser parser = new MXParser ();
760
+ StringBuilder sb = new StringBuilder ();
761
+ sb .append ( "<project />" );
762
+ sb .append ( "<!-- aborted" );
763
+
764
+ parser .setInput ( new StringReader ( sb .toString () ) );
765
+
766
+ try
767
+ {
768
+ assertEquals ( XmlPullParser .START_TAG , parser .next () );
769
+ assertEquals ( XmlPullParser .END_TAG , parser .next () );
770
+ assertEquals ( XmlPullParser .PROCESSING_INSTRUCTION , parser .next () );
771
+
772
+ fail ( "Should fail since it has aborted comment" );
773
+ }
774
+ catch ( XmlPullParserException ex )
775
+ {
776
+ assertTrue ( ex .getMessage ().contains ( "@1:24" ) );
777
+ assertTrue ( ex .getMessage ().contains ( "comment started on line 1 and column 12 was not closed" ) );
778
+ }
779
+ }
780
+
729
781
@ Test
730
782
public void testMalformedXMLRootElement ()
731
783
throws Exception
0 commit comments