You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2008/04/07 15:15:23 UTC

svn commit: r645499 - /maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java

Author: vsiveton
Date: Mon Apr  7 06:15:22 2008
New Revision: 645499

URL: http://svn.apache.org/viewvc?rev=645499&view=rev
Log:
o prevent NPE

Modified:
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java?rev=645499&r1=645498&r2=645499&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java Mon Apr  7 06:15:22 2008
@@ -117,6 +117,10 @@
         }
         else if ( parser.getName().equals( Tag.TITLE.toString() ) )
         {
+            if ( currentPart == null )
+            {
+                throw new XmlPullParserException( "The currentPart is not set" );
+            }
             try
             {
                 currentPart.setTitle( parser.nextText().trim() );
@@ -187,12 +191,20 @@
         }
         else if ( parser.getName().equals( FAQ_TAG.toString() ) )
         {
+            if ( currentPart == null )
+            {
+                throw new XmlPullParserException( "The currentPart is not set" );
+            }
             currentPart.addFaq( currentFaq );
 
             currentFaq = null;
         }
-        if ( parser.getName().equals( QUESTION_TAG.toString() ) )
+        else if ( parser.getName().equals( QUESTION_TAG.toString() ) )
         {
+            if ( currentFaq == null )
+            {
+                throw new XmlPullParserException( "The currentFaq is not set" );
+            }
             buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
                 .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
 
@@ -202,6 +214,10 @@
         }
         else if ( parser.getName().equals( ANSWER_TAG.toString() ) )
         {
+            if ( currentFaq == null )
+            {
+                throw new XmlPullParserException( "The currentFaq is not set" );
+            }
             buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
                 .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
 
@@ -313,7 +329,14 @@
                 Faq faq = (Faq) faqIterator.next();
                 sink.numberedListItem();
                 sink.link( faq.getId() );
-                xdocParser.parse( faq.getQuestion(), sink );
+                if ( StringUtils.isNotEmpty( faq.getQuestion() ) )
+                {
+                    xdocParser.parse( faq.getQuestion(), sink );
+                }
+                else
+                {
+                    throw new ParseException( "Question is missing for the FAQ '" + faq.getId() + "'" );
+                }
                 sink.link_();
                 sink.numberedListItem_();
             }
@@ -348,12 +371,26 @@
 
                 sink.definedTerm();
                 sink.anchor( faq.getId() );
-                xdocParser.parse( faq.getQuestion(), sink );
+                if ( StringUtils.isNotEmpty( faq.getQuestion() ) )
+                {
+                    xdocParser.parse( faq.getQuestion(), sink );
+                }
+                else
+                {
+                    throw new ParseException( "Question is missing for the FAQ '" + faq.getId() + "'" );
+                }
                 sink.anchor_();
                 sink.definedTerm_();
 
                 sink.definition();
-                xdocParser.parse( faq.getAnswer(), sink );
+                if ( StringUtils.isNotEmpty( faq.getAnswer() ) )
+                {
+                    xdocParser.parse( faq.getAnswer(), sink );
+                }
+                else
+                {
+                    throw new ParseException( "Answer is missing for the FAQ '" + faq.getId() + "'" );
+                }
 
                 if ( faqs.isToplink() )
                 {