You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by sn...@apache.org on 2020/09/14 12:06:34 UTC

[nutch] branch master updated: NUTCH-2823 IllegalStateException in IndexWriters.describe() when validating url param for SolrIndexer

This is an automated email from the ASF dual-hosted git repository.

snagel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nutch.git


The following commit(s) were added to refs/heads/master by this push:
     new 96bd757  NUTCH-2823 IllegalStateException in IndexWriters.describe() when validating url param for SolrIndexer
     new 0b46ac2  Merge pull request #551 from sebastian-nagel/NUTCH-2823
96bd757 is described below

commit 96bd7577b7276c91f01e6b226742805b481151b4
Author: Sebastian Nagel <sn...@apache.org>
AuthorDate: Mon Aug 17 16:54:42 2020 +0200

    NUTCH-2823 IllegalStateException in IndexWriters.describe() when validating url param for SolrIndexer
    
    - when calculating required column width for first (param names) and
      third column (param values): verify that none of these columns occupy
      more than one third of the table width, otherwise reset width to 1/3
---
 .../org/apache/nutch/indexer/IndexWriters.java     | 33 +++++++++++-----------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/java/org/apache/nutch/indexer/IndexWriters.java b/src/java/org/apache/nutch/indexer/IndexWriters.java
index 5778997..04cc70a 100644
--- a/src/java/org/apache/nutch/indexer/IndexWriters.java
+++ b/src/java/org/apache/nutch/indexer/IndexWriters.java
@@ -286,26 +286,27 @@ public class IndexWriters {
       // Building the table
       AsciiTable at = new AsciiTable();
       at.getRenderer().setCWC((rows, colNumbers, tableWidth) -> {
+        /*
+         * first and third column (configuration param names and values) usually
+         * require less width than the second column which contains the
+         * description
+         */
         int maxLengthFirstColumn = 0;
-        int maxLengthLastColumn = 0;
+        int maxLengthThirdColumn = 0;
         for (AT_Row row : rows) {
           if (row.getType() == TableRowType.CONTENT) {
-            // First column
-            int lengthFirstColumn = row.getCells().get(0).toString().length();
-            if (lengthFirstColumn > maxLengthFirstColumn) {
-              maxLengthFirstColumn = lengthFirstColumn;
-            }
-
-            // Last column
-            int lengthLastColumn = row.getCells().get(2).toString().length();
-            if (lengthLastColumn > maxLengthLastColumn) {
-              maxLengthLastColumn = lengthLastColumn;
-            }
+            maxLengthFirstColumn = Math.max(row.getCells().get(0).toString().length(), maxLengthFirstColumn);
+            maxLengthThirdColumn = Math.max(row.getCells().get(2).toString().length(), maxLengthThirdColumn);
           }
         }
-        return new int[] { maxLengthFirstColumn,
-            tableWidth - maxLengthFirstColumn - maxLengthLastColumn,
-            maxLengthLastColumn };
+        // reset max. lengths if exceeding one third of the table width
+        maxLengthFirstColumn = Math.min((tableWidth / 3), maxLengthFirstColumn);
+        maxLengthThirdColumn = Math.min(
+            ((tableWidth - maxLengthFirstColumn) / 2), maxLengthThirdColumn);
+        int widthSecondColumn = tableWidth - maxLengthFirstColumn
+            - maxLengthThirdColumn;
+        return new int[] { maxLengthFirstColumn, widthSecondColumn,
+            maxLengthThirdColumn };
       });
 
       // Getting the properties
@@ -323,7 +324,7 @@ public class IndexWriters {
       at.addRule();
 
       // Rendering the table
-      builder.append(at.render(150)).append("\n\n");
+      builder.append(at.render(120)).append("\n\n");
     }
 
     return builder.toString();