commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bay...@apache.org
Subject svn commit: r745388 - in /commons/proper/cli/branches/cli-1.x/src: java/org/apache/commons/cli/HelpFormatter.java test/org/apache/commons/cli/bug/BugCLI162Test.java
Date Wed, 18 Feb 2009 05:42:59 GMT
Author: bayard
Date: Wed Feb 18 05:42:58 2009
New Revision: 745388

URL: http://svn.apache.org/viewvc?rev=745388&view=rev
Log:
Applying my second attempt at a patch to CLI-162. This fixes Gary's reported bug (one of which
was an example of CLI-162, and one a bug in my first attempt to patch). Open question is whether
to output text that is too long, or try and break it up to fit the screen width. 

Modified:
    commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
    commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java

Modified: commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java?rev=745388&r1=745387&r2=745388&view=diff
==============================================================================
--- commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
(original)
+++ commons/proper/cli/branches/cli-1.x/src/java/org/apache/commons/cli/HelpFormatter.java
Wed Feb 18 05:42:58 2009
@@ -821,7 +821,6 @@
 
         while (true)
         {
-            int lastPos = pos;
             text = padding + text.substring(pos).trim();
             pos = findWrapPos(text, width, 0);
 
@@ -830,10 +829,12 @@
                 sb.append(text);
 
                 return sb;
-            } else
-            if (pos == lastPos)
-            {
-                throw new RuntimeException("Text too long for line - throwing exception to
avoid infinite loop [CLI-162]: " + text);
+            }
+            
+            if ( (text.length() > width) && (pos == nextLineTabStop - 1) ) {
+                sb.append(text);
+
+                return sb;
             }
 
             sb.append(rtrim(text.substring(0, pos))).append(defaultNewLine);

Modified: commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java?rev=745388&r1=745387&r2=745388&view=diff
==============================================================================
--- commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java
(original)
+++ commons/proper/cli/branches/cli-1.x/src/test/org/apache/commons/cli/bug/BugCLI162Test.java
Wed Feb 18 05:42:58 2009
@@ -42,11 +42,7 @@
     public void testInfiniteLoop() {
         HelpFormatter formatter = new HelpFormatter();
         formatter.setWidth(20);
-        try {
-            formatter.printHelp("app", options); // hang & crash
-        } catch(RuntimeException re) {
-            assertTrue(re.getMessage().startsWith("Text too long for line - throwing exception
to avoid infinite loop [CLI-162]: "));
-        }
+        formatter.printHelp("app", options); // used to hang & crash
     }
     
     private void testPrintHelp(Options options) throws ParseException, IOException {



Mime
View raw message