Prevent infinite recursion (leading to stack overflow) on broken documents where a PAP claims to be its own parent

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@391084 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2006-04-03 16:46:01 +00:00
parent b57714f465
commit 59121bead0

View File

@ -230,10 +230,16 @@ public class StyleSheet implements HDFType
{ {
parentPAP = _styleDescriptions[baseIndex].getPAP(); parentPAP = _styleDescriptions[baseIndex].getPAP();
if(parentPAP == null) if(parentPAP == null)
{ {
createPap(baseIndex); if(baseIndex == istd) {
parentPAP = _styleDescriptions[baseIndex].getPAP(); // 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();
}
} }
} }