You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by ni...@apache.org on 2006/04/03 18:46:04 UTC

svn commit: r391084 - /jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java

Author: nick
Date: Mon Apr  3 09:46:01 2006
New Revision: 391084

URL: http://svn.apache.org/viewcvs?rev=391084&view=rev
Log:
Prevent infinite recursion (leading to stack overflow) on broken documents where a PAP claims to be its own parent

Modified:
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java

Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java
URL: http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java?rev=391084&r1=391083&r2=391084&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java Mon Apr  3 09:46:01 2006
@@ -230,10 +230,16 @@
           {
 
               parentPAP = _styleDescriptions[baseIndex].getPAP();
-              if(parentPAP == null)
+              if(parentPAP == null) 
               {
-                  createPap(baseIndex);
-                  parentPAP = _styleDescriptions[baseIndex].getPAP();
+            	  if(baseIndex == istd) {
+            		  // Oh dear, style claims that it is its own parent
+            		  throw new IllegalStateException("Pap style " + istd + " claimed to have itself as its parent, which isn't allowed");
+            	  } else {
+            		  // Create the parent style
+                      createPap(baseIndex);
+                      parentPAP = _styleDescriptions[baseIndex].getPAP();
+            	  }
               }
 
           }



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/