From 5fc9d20be752046e4540c8cf05ef2b8f653c0bf8 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 24 Sep 2021 16:43:44 +0000 Subject: [PATCH] put back the goto - it is terrible but poi-integration tests hang without it git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1893604 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/poi/hssf/usermodel/HeaderFooter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HeaderFooter.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HeaderFooter.java index 7c9792d9cc..9d369ad378 100644 --- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HeaderFooter.java +++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HeaderFooter.java @@ -40,6 +40,10 @@ public abstract class HeaderFooter implements org.apache.poi.ss.usermodel.Header String _center = ""; String _right = ""; +// FIXME: replace outer goto. just eww. +// no unit tests test the goto loop but poi-integration tests hangs if you remove it +// (some file has an edge case header or footer) + outer: while (text.length() > 1) { if (text.charAt(0) != '&') { // Mimics the behaviour of Excel, which would put it in the center. @@ -81,7 +85,7 @@ public abstract class HeaderFooter implements org.apache.poi.ss.usermodel.Header default: // Mimics the behaviour of Excel, which would put it in the center. _center = text; - break; + break outer; } } return new String[] { _left, _center, _right, }; @@ -344,4 +348,4 @@ public abstract class HeaderFooter implements org.apache.poi.ss.usermodel.Header return _occursInPairs; } } -} \ No newline at end of file +}