:poi - fix javadocs - link to dependent/external project javadocs

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1888640 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/poi/build.gradle b/poi/build.gradle
index 4ff4342..e6ee6bd 100644
--- a/poi/build.gradle
+++ b/poi/build.gradle
@@ -31,6 +31,7 @@
 
 configurations {
     tests
+    javadocs
 }
 
 sourceSets {
@@ -59,6 +60,9 @@
 
     testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
     testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
+
+    javadocs project(':poi-ooxml')
+    javadocs project(':poi-scratchpad')
 }
 
 final String MODULE_NAME = 'org.apache.poi.poi'
@@ -201,11 +205,20 @@
 }
 
 javadoc {
-//    fails currently, need to fix the sources
-    failOnError = false
-//    if(JavaVersion.current().isJava9Compatible()) {
-//        options.addBooleanOption('html5', true)
-//    }
+    failOnError = true
+    doFirst {
+        options {
+            if (JavaVersion.current().isJava9Compatible()) {
+                addBooleanOption('html5', true)
+            }
+            links 'https://poi.apache.org/apidocs/dev/'
+            links 'https://docs.oracle.com/javase/8/docs/api/'
+            use = true
+            splitIndex = true
+            source = "1.8"
+            classpath += configurations.javadocs.files
+        }
+    }
 }
 
 artifacts {
diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFDataFormat.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFDataFormat.java
index 09284dc..e9a68aa 100644
--- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFDataFormat.java
+++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFDataFormat.java
@@ -34,10 +34,8 @@
  * <b>International Formats</b><br>
  * Since version 2003 Excel has supported international formats.  These are denoted
  * with a prefix "[$-xxx]" (where xxx is a 1-7 digit hexadecimal number).
- * See the Microsoft article
- * <a href="http://office.microsoft.com/assistance/hfws.aspx?AssetID=HA010346351033&CTT=6&Origin=EC010272491033">
- *   Creating international number formats
- * </a> for more details on these codes.
+ *
+ * @see <a href="https://support.microsoft.com/en-us/office/review-guidelines-for-customizing-a-number-format-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5">Review guidelines for customizing a number format</a>
  */
 public final class HSSFDataFormat implements DataFormat {
 	private static final String[] _builtinFormats = BuiltinFormats.getAll();
@@ -107,7 +105,7 @@
 			}
 			_movedBuiltins = true;
 		}
-		
+
 		// See if we can find it
 		for(int i=0; i<_formats.size(); i++) {
 		   if(format.equals(_formats.get(i))) {
@@ -168,7 +166,7 @@
 	public static int getNumberOfBuiltinBuiltinFormats() {
 		return _builtinFormats.length;
 	}
-	
+
 	/**
 	 * Ensures that the formats list can hold entries
 	 *  up to and including the entry with this index
diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFRow.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFRow.java
index 0ecc946..eb1be9c 100644
--- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFRow.java
+++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFRow.java
@@ -106,7 +106,7 @@
      * @param column - the column number this cell represents
      *
      * @return HSSFCell a high level representation of the created cell.
-     * @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
+     * @throws IllegalArgumentException if columnIndex &lt; 0 or greater than 255,
      *   the maximum number of columns supported by the Excel binary format (.xls)
      */
     @Override
@@ -126,7 +126,7 @@
      * @param columnIndex - the column number this cell represents
      *
      * @return HSSFCell a high level representation of the created cell.
-     * @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
+     * @throws IllegalArgumentException if columnIndex &lt; 0 or greater than 255,
      *   the maximum number of columns supported by the Excel binary format (.xls)
      */
     @Override
diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
index 9754190..b37f546 100644
--- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
+++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
@@ -1748,7 +1748,7 @@
 
     /**
      * Shifts columns in range [startColumn, endColumn] for n places to the right.
-     * For n < 0, it will shift columns left.
+     * For n &lt; 0, it will shift columns left.
      * Additionally adjusts formulas.
      * Probably should also process other features (hyperlinks, comments...) in the way analog to shiftRows method
      * @param startColumn   the column to start shifting
diff --git a/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.java b/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.java
index 1db851e..9fdd4e8 100644
--- a/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.java
+++ b/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.java
@@ -54,9 +54,10 @@
      * @param components the Strings making up the path to a document.
      *      The Strings must be ordered as they appear in the directory hierarchy of the the document.
      *      The first string must be the name of a directory in the root of the POIFSFileSystem, and
-     *      every Nth (for N > 1) string thereafter must be the name of a directory in the directory
-     *      identified by the (N-1)th string. <p> If the components parameter is null or has zero length,
-     *      the POIFSDocumentPath is appropriate for a document that is in the root of a POIFSFileSystem
+     *      every Nth (for N &gt; 1) string thereafter must be the name of a directory in the directory
+     *      identified by the (N-1)th string.<p>
+     *      If the components parameter is null or has zero length, the POIFSDocumentPath is appropriate
+     *      for a document that is in the root of a POIFSFileSystem
      *
      * @exception IllegalArgumentException
      *      if any of the elements in the components parameter are null or have zero length
@@ -133,7 +134,7 @@
      *
      * @return the nth component;
      *
-     * @exception ArrayIndexOutOfBoundsException if n &lt; 0 or n >= length()
+     * @exception ArrayIndexOutOfBoundsException if n &lt; 0 or n &gt;= length()
      */
     public String getComponent(int n) throws ArrayIndexOutOfBoundsException {
         return components[ n ];
diff --git a/poi/src/main/java/org/apache/poi/poifs/property/DirectoryProperty.java b/poi/src/main/java/org/apache/poi/poifs/property/DirectoryProperty.java
index 0784673..badb306 100644
--- a/poi/src/main/java/org/apache/poi/poifs/property/DirectoryProperty.java
+++ b/poi/src/main/java/org/apache/poi/poifs/property/DirectoryProperty.java
@@ -33,10 +33,10 @@
 public class DirectoryProperty extends Property implements Parent, Iterable<Property> {
 
     /** List of Property instances */
-    private List<Property> _children;
+    private final List<Property> _children = new ArrayList<>();
 
     /** set of children's names */
-    private Set<String>  _children_names;
+    private final Set<String>  _children_names = new HashSet<>();
 
     /**
      * Default constructor
@@ -46,8 +46,6 @@
     public DirectoryProperty(String name)
     {
         super();
-        _children       = new ArrayList<>();
-        _children_names = new HashSet<>();
         setName(name);
         setSize(0);
         setPropertyType(PropertyConstants.DIRECTORY_TYPE);
@@ -66,8 +64,6 @@
                                 final int offset)
     {
         super(index, array, offset);
-        _children       = new ArrayList<>();
-        _children_names = new HashSet<>();
     }
 
     /**
@@ -121,7 +117,7 @@
     }
 
     public static class PropertyComparator implements Comparator<Property>, Serializable {
-        
+
         /**
          * compare method. Assumes both parameters are non-null
          * instances of Property. One property is less than another if
@@ -133,9 +129,9 @@
          * @param o1 first object to compare, better be a Property
          * @param o2 second object to compare, better be a Property
          *
-         * @return negative value if o1 <  o2,
+         * @return negative value if o1 &lt;  o2,
          *         zero           if o1 == o2,
-         *         positive value if o1 >  o2.
+         *         positive value if o1 &gt;  o2.
          */
         public int compare(Property o1, Property o2)
         {
diff --git a/poi/src/main/java/org/apache/poi/sl/draw/geom/PathCommand.java b/poi/src/main/java/org/apache/poi/sl/draw/geom/PathCommand.java
index 76a53e7..99406c7 100644
--- a/poi/src/main/java/org/apache/poi/sl/draw/geom/PathCommand.java
+++ b/poi/src/main/java/org/apache/poi/sl/draw/geom/PathCommand.java
@@ -26,11 +26,11 @@
  *
  *<ul>
  *     <li>arcTo</li>
- *      <li>moveTo/li>
- *      <li>lineTo/li>
- *      <li>cubicBezTo/li>
- *      <li>quadBezTo/li>
- *      <li>close/li>
+ *      <li>moveTo</li>
+ *      <li>lineTo</li>
+ *      <li>cubicBezTo</li>
+ *      <li>quadBezTo</li>
+ *      <li>close</li>
  * </ul>
  */
 public interface PathCommand {
diff --git a/poi/src/main/java/org/apache/poi/sl/draw/geom/XYAdjustHandle.java b/poi/src/main/java/org/apache/poi/sl/draw/geom/XYAdjustHandle.java
index 46975da..0c1ff04 100644
--- a/poi/src/main/java/org/apache/poi/sl/draw/geom/XYAdjustHandle.java
+++ b/poi/src/main/java/org/apache/poi/sl/draw/geom/XYAdjustHandle.java
@@ -67,11 +67,6 @@
 
     /**
      * Gets the value of the pos property.
-     *
-     * @return
-     *     possible object is
-     *     {@link CTAdjPoint2D }
-     *
      */
     public AdjustPoint getPos() {
         return pos;
@@ -79,11 +74,6 @@
 
     /**
      * Sets the value of the pos property.
-     *
-     * @param value
-     *     allowed object is
-     *     {@link CTAdjPoint2D }
-     *
      */
     public void setPos(AdjustPoint value) {
         this.pos = value;
diff --git a/poi/src/main/java/org/apache/poi/sl/usermodel/SlideShowFactory.java b/poi/src/main/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
index a32123a..5a5facb 100644
--- a/poi/src/main/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
+++ b/poi/src/main/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
@@ -151,7 +151,7 @@
      *  @return The created SlideShow
      *
      *  @throws IOException if an error occurs while reading the data
-     *  @throws EncryptedDocumentException If the SlideShow<?,?> given is password protected
+     *  @throws EncryptedDocumentException If the SlideShow given is password protected
      */
     public static SlideShow<?,?> create(InputStream inp) throws IOException, EncryptedDocumentException {
         return create(inp, null);
diff --git a/poi/src/main/java/org/apache/poi/sl/usermodel/TextParagraph.java b/poi/src/main/java/org/apache/poi/sl/usermodel/TextParagraph.java
index 354b357..a6c4394 100644
--- a/poi/src/main/java/org/apache/poi/sl/usermodel/TextParagraph.java
+++ b/poi/src/main/java/org/apache/poi/sl/usermodel/TextParagraph.java
@@ -31,7 +31,7 @@
     /**
      * Specifies a list of text alignment types
      */
-    public enum TextAlign {
+    enum TextAlign {
         /**
          * For horizontal text, left aligned.
          * For vertical text, top aligned.
@@ -54,22 +54,22 @@
          * Align text so that it is justified across the whole line. It
          * is smart in the sense that it will not justify sentences
          * which are short
-         * 
+         *
          * For horizontal text, flush left and right.
          * For vertical text, flush top and bottom.
          */
         JUSTIFY,
-        
+
         /**
          * Kashida justify low.
-         */    
+         */
         JUSTIFY_LOW,
 
         /**
          * Distribute space between characters.
          */
         DIST,
-        
+
         /**
          * Thai distribution justification.
          */
@@ -77,28 +77,28 @@
     }
 
     /**
-     * 
+     *
      */
-    public enum FontAlign {
+    enum FontAlign {
         AUTO,
-        
+
         /**
          * Characters hang from top of line height.
          * Also known as "Hanging"
          */
         TOP,
-        
+
         /**
          * Characters centered within line height.
          */
         CENTER,
-        
+
         /**
          * Place characters on font baseline.
-         * Also known as "Roman" 
+         * Also known as "Roman"
          */
         BASELINE,
-        
+
         /**
          * Characters are anchored to the very bottom of a single line.
          * This is different than BASELINE because of letters such as "g", "q", and "y".
@@ -106,15 +106,15 @@
          */
         BOTTOM
     }
-    
-    public interface BulletStyle {
+
+    interface BulletStyle {
         String getBulletCharacter();
         String getBulletFont();
-        
+
         /**
          * The bullet point font size
-         * If bulletFontSize >= 0, then space is a percentage of normal line height.
-         * If bulletFontSize < 0, the absolute value in points
+         * If bulletFontSize &gt;= 0, then space is a percentage of normal line height.
+         * If bulletFontSize &lt; 0, the absolute value in points
          *
          * @return the bullet point font size
          */
@@ -124,7 +124,7 @@
          * Convenience function to set a solid color
          */
         void setBulletFontColor(Color color);
-        
+
         void setBulletFontColor(PaintStyle color);
 
         /**
@@ -133,7 +133,7 @@
          * A {@code null} value means to use the text font color.
          */
         PaintStyle getBulletFontColor();
-        
+
         AutoNumberingScheme getAutoNumberingScheme();
         /**
          * Index (1-based) of the first auto number value, or null if auto numbering scheme
@@ -173,8 +173,8 @@
      *
      * @param spaceBefore the vertical white space before the paragraph, null to unset
      */
-    void setSpaceBefore(Double spaceBefore);    
-    
+    void setSpaceBefore(Double spaceBefore);
+
     /**
      * The amount of vertical white space after the paragraph
      * This may be specified in two different ways, percentage spacing and font point spacing:
@@ -185,7 +185,7 @@
      *
      * @return the vertical white space after the paragraph or null, if unset
      */
-    Double getSpaceAfter();    
+    Double getSpaceAfter();
 
     /**
      * Set the amount of vertical white space that will be present after the paragraph.
@@ -206,8 +206,8 @@
      *
      * @param spaceAfter the vertical white space after the paragraph, null to unset
      */
-    public void setSpaceAfter(Double spaceAfter);
-    
+    void setSpaceAfter(Double spaceAfter);
+
     /**
      * @return the left margin (in points) of the paragraph or null, if unset
      */
@@ -217,19 +217,19 @@
      * Specifies the left margin of the paragraph. This is specified in addition to the text body
      * inset and applies only to this text paragraph. That is the text body Inset and the LeftMargin
      * attributes are additive with respect to the text position.
-     * 
+     *
      * @param leftMargin the left margin (in points) or null to unset
      */
     void setLeftMargin(Double leftMargin);
-    
-    
+
+
     /**
      * Specifies the right margin of the paragraph. This is specified in addition to the text body
      * inset and applies only to this text paragraph. That is the text body Inset and the RightMargin
      * attributes are additive with respect to the text position.
-     * 
+     *
      * The right margin is not support and therefore ignored by the HSLF implementation.
-     * 
+     *
      * @return the right margin (in points) of the paragraph or null, if unset
      */
     Double getRightMargin();
@@ -238,16 +238,16 @@
      * @param rightMargin the right margin (in points) of the paragraph
      */
     void setRightMargin(Double rightMargin);
-    
+
     /**
      * @return the indent (in points) applied to the first line of text in the paragraph.
      *  or null, if unset
      */
     Double getIndent();
-    
+
     /**
-     * Specifies the indent size that will be applied to the first line of text in the paragraph.   
-     * 
+     * Specifies the indent size that will be applied to the first line of text in the paragraph.
+     *
      * @param indent the indent (in points) applied to the first line of text in the paragraph
      */
     void setIndent(Double indent);
@@ -255,7 +255,7 @@
 
     /**
      * @return the text level of this paragraph (0-based). Default is 0.
-     */    
+     */
     int getIndentLevel();
 
     /**
@@ -266,19 +266,19 @@
      * @param level the level (0 ... 4)
      */
     void setIndentLevel(int level);
-    
+
     /**
      * Returns the vertical line spacing that is to be used within a paragraph.
      * This may be specified in two different ways, percentage spacing and font point spacing:
      * <p>
-     * If linespacing >= 0, then linespacing is a percentage of normal line height.
-     * If linespacing < 0, the absolute value of linespacing is the spacing in points
+     * If linespacing &gt;= 0, then linespacing is a percentage of normal line height.
+     * If linespacing &lt; 0, the absolute value of linespacing is the spacing in points
      * </p>
      *
      * @return the vertical line spacing or null, if unset
      */
     Double getLineSpacing();
-    
+
     /**
      * This element specifies the vertical line spacing that is to be used within a paragraph.
      * This may be specified in two different ways, percentage spacing and font point spacing:
@@ -297,18 +297,18 @@
      *      // spacing will be 48 points
      *      paragraph.setLineSpacing(-48.0);
      * </code></pre>
-     * 
+     *
      * @param lineSpacing the vertical line spacing
      */
     void setLineSpacing(Double lineSpacing);
 
     String getDefaultFontFamily();
-    
+
     /**
      * @return the default font size, in case its not set in the textrun or null, if unset
      */
     Double getDefaultFontSize();
-    
+
     /**
      * Returns the alignment that is applied to the paragraph.
      *
@@ -325,21 +325,21 @@
      * see {@link org.apache.poi.sl.usermodel.TextParagraph.TextAlign}.
      *
      * @param align text align
-     */    
+     */
     void setTextAlign(TextAlign align);
-    
+
     /**
      * Returns the font alignment that is applied to the paragraph.
      *
      * If this attribute is omitted, then null is return,
      * user code can imply the a value of {@link FontAlign#AUTO}
-     * 
+     *
      * @return alignment that is applied to the paragraph
      */
     FontAlign getFontAlign();
-    
+
     /**
-     * @return the bullet style of the paragraph, if {@code null} then no bullets are used 
+     * @return the bullet style of the paragraph, if {@code null} then no bullets are used
      */
     BulletStyle getBulletStyle();
 
@@ -347,19 +347,17 @@
      * Sets the bullet styles. If no styles are given, the bullets are omitted.
      * Possible attributes are integer/double (bullet size), Color (bullet color),
      * character (bullet character), string (bullet font), AutoNumberingScheme
-     *
-     * @param styles
      */
     void setBulletStyle(Object... styles);
-    
+
     /**
      * @return the default size for a tab character within this paragraph in points, null if unset
      */
     Double getDefaultTabSize();
 
-    
+
     TextShape<S,P> getParentShape();
-    
+
     /**
      * Fetch the text runs that are contained within this block of text
      */
@@ -368,14 +366,14 @@
     /**
      * Convenience method to determine if this text paragraph is part of
      * the slide header or footer
-     * 
+     *
      * @return true if this paragraph is part of a header or footer placeholder
-     * 
+     *
      * @since POI 3.15-beta2
      */
     boolean isHeaderOrFooter();
-    
-    
+
+
     /**
      * Get the {@link TabStop TabStops} - the list can't be and it's entries shouldn't be modified.
      * Opposed to other properties, this method is not cascading to the master sheet,
@@ -383,7 +381,7 @@
      * different levels aren't merged.
      *
      * @return the tabstop collection or {@code null} if no tabstops are defined
-     * 
+     *
      * @since POI 4.0.0
      */
     List<? extends TabStop> getTabStops();
@@ -391,8 +389,6 @@
     /**
      * Set the {@link TabStop} collection
      *
-     * @param tabStops the {@link TabStop} collection
-     * 
      * @since POI 4.0.0
      */
     void addTabStops(double positionInPoints, TabStop.TabStopType tabStopType);
@@ -400,7 +396,7 @@
     /**
      * Removes the tabstops of this paragraphs.
      * This doesn't affect inherited tabstops, e.g. inherited by the slide master
-     * 
+     *
      * @since POI 4.0.0
      */
     void clearTabStops();
diff --git a/poi/src/main/java/org/apache/poi/ss/format/CellFormatCondition.java b/poi/src/main/java/org/apache/poi/ss/format/CellFormatCondition.java
index 96e9c5f..d44e18f 100644
--- a/poi/src/main/java/org/apache/poi/ss/format/CellFormatCondition.java
+++ b/poi/src/main/java/org/apache/poi/ss/format/CellFormatCondition.java
@@ -49,11 +49,11 @@
     /**
      * Returns an instance of a condition object.
      *
-     * @param opString The operator as a string.  One of <tt>"&lt;"</tt>,
-     *                 <tt>"&lt;="</tt>, <tt>">"</tt>, <tt>">="</tt>,
-     *                 <tt>"="</tt>, <tt>"=="</tt>, <tt>"!="</tt>, or
-     *                 <tt>"&lt;>"</tt>.
-     * @param constStr The constant (such as <tt>"12"</tt>).
+     * @param opString The operator as a string.  One of {@code <},
+     *                 {@code <=}, {@code >}, {@code >=},
+     *                 {@code =}, {@code ==}, {@code !=} or
+     *                 {@code <>}.
+     * @param constStr The constant (such as {@code 12}).
      *
      * @return A condition object for the given condition.
      */
diff --git a/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java b/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java
index c03dbc5..51f67df 100644
--- a/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java
+++ b/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java
@@ -38,15 +38,13 @@
  * values.
  * <p>
  * Each format part can contain a color, a condition, and will always contain a
- * format specification.  For example <tt>"[Red][>=10]#"</tt> has a color
- * (<tt>[Red]</tt>), a condition (<tt>>=10</tt>) and a format specification
- * (<tt>#</tt>).
+ * format specification.  For example {@code "[Red][>=10]#"} has a color
+ * ({@code [Red]}), a condition ({@code >=10}) and a format specification
+ * ({@code #}).
  * <p>
  * This class also contains patterns for matching the subparts of format
  * specification.  These are used internally, but are made public in case other
  * code has use for them.
- *
- * @author Ken Arnold, Industrious Media LLC
  */
 public class CellFormatPart {
     private static final Logger LOG = Logger.getLogger(CellFormat.class.getName());
diff --git a/poi/src/main/java/org/apache/poi/ss/format/SimpleFraction.java b/poi/src/main/java/org/apache/poi/ss/format/SimpleFraction.java
index dec5a27..e56430c 100644
--- a/poi/src/main/java/org/apache/poi/ss/format/SimpleFraction.java
+++ b/poi/src/main/java/org/apache/poi/ss/format/SimpleFraction.java
@@ -26,7 +26,7 @@
     private final int numerator;
     /**
      * Create a fraction given a double value and a denominator.
-     * 
+     *
      * @param val double value of fraction
      * @param exactDenom the exact denominator
      * @return a SimpleFraction with the given values set.
@@ -35,17 +35,17 @@
         int num =  (int)Math.round(val*exactDenom);
         return new SimpleFraction(num,exactDenom);
     }
-    
+
     /**
      * Create a fraction given the double value and either the maximum error
      * allowed or the maximum number of denominator digits.
      *
      * @param value the double value to convert to a fraction.
      * @param maxDenominator maximum denominator value allowed.
-     * 
+     *
      * @throws RuntimeException if the continued fraction failed to
      *      converge.
-     * @throws IllegalArgumentException if value > Integer.MAX_VALUE
+     * @throws IllegalArgumentException if value &gt; Integer.MAX_VALUE
      */
     public static SimpleFraction buildFractionMaxDenominator(double value, int maxDenominator){
         return buildFractionMaxDenominator(value, 0, maxDenominator, 100);
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/eval/EvaluationException.java b/poi/src/main/java/org/apache/poi/ss/formula/eval/EvaluationException.java
index e094df4..b0071a7 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/eval/EvaluationException.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/eval/EvaluationException.java
@@ -21,9 +21,9 @@
  * This class is used to simplify error handling logic <i>within</i> operator and function
  * implementations.   Note - <tt>OperationEval.evaluate()</tt> and <tt>Function.evaluate()</tt>
  * method signatures do not throw this exception so it cannot propagate outside.<p>
- * 
+ *
  * Here is an example coded without <tt>EvaluationException</tt>, to show how it can help:
- * <pre>
+ * <pre>{@code
  * public Eval evaluate(Eval[] args, int srcRow, short srcCol) {
  *	// ...
  *	Eval arg0 = args[0];
@@ -47,14 +47,14 @@
  *		temp += ((NumericValueEval)ve).getNumberValue();
  *	}
  *	// ...
- * }	 
- * </pre>
- * In this example, if any error is encountered while processing the arguments, an error is 
+ * }
+ * }</pre>
+ * In this example, if any error is encountered while processing the arguments, an error is
  * returned immediately. This code is difficult to refactor due to all the points where errors
  * are returned.<br>
  * Using <tt>EvaluationException</tt> allows the error returning code to be consolidated to one
  * place.<p>
- * <pre>
+ * <pre>{@code
  * public Eval evaluate(Eval[] args, int srcRow, short srcCol) {
  *	try {
  *		// ...
@@ -90,21 +90,21 @@
  *	}
  *	return temp;
  *}
- * </pre>   
+ * }</pre>
  * It is not mandatory to use EvaluationException, doing so might give the following advantages:<br>
  *  - Methods can more easily be extracted, allowing for re-use.<br>
  *  - Type management (typecasting etc) is simpler because error conditions have been separated from
  * intermediate calculation values.<br>
  *  - Fewer local variables are required. Local variables can have stronger types.<br>
- *  - It is easier to mimic common Excel error handling behaviour (exit upon encountering first 
- *  error), because exceptions conveniently propagate up the call stack regardless of execution 
+ *  - It is easier to mimic common Excel error handling behaviour (exit upon encountering first
+ *  error), because exceptions conveniently propagate up the call stack regardless of execution
  *  points or the number of levels of nested calls.<p>
- *  
+ *
  * <b>Note</b> - Only standard evaluation errors are represented by <tt>EvaluationException</tt> (
  * i.e. conditions expected to be encountered when evaluating arbitrary Excel formulas). Conditions
  * that could never occur in an Excel spreadsheet should result in runtime exceptions. Care should
- * be taken to not translate any POI internal error into an Excel evaluation error code.   
- * 
+ * be taken to not translate any POI internal error into an Excel evaluation error code.
+ *
  * @author Josh Micich
  */
 public final class EvaluationException extends Exception {
@@ -127,7 +127,7 @@
 	public static EvaluationException numberError() {
 		return new EvaluationException(ErrorEval.NUM_ERROR);
 	}
-	
+
 	public ErrorEval getErrorEval() {
 		return _errorEval;
 	}
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/eval/RelationalOperationEval.java b/poi/src/main/java/org/apache/poi/ss/formula/eval/RelationalOperationEval.java
index 2a9f2e3..a9684c9 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/eval/RelationalOperationEval.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/eval/RelationalOperationEval.java
@@ -54,7 +54,7 @@
 	 *
 	 * Blank &gt; Negative numbers
 	 * Blank == 0
-	 * Blank < Positive numbers
+	 * Blank &lt; Positive numbers
 	 * </pre>
 	 */
 
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Countifs.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Countifs.java
index 0ac5063..42c1586 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Countifs.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Countifs.java
@@ -32,10 +32,11 @@
     public static final FreeRefFunction instance = new Countifs();
 
     /**
-     * https://support.office.com/en-us/article/COUNTIFS-function-dda3dc6e-f74e-4aee-88bc-aa8c2a866842?ui=en-US&rs=en-US&ad=US
      * COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2]...)
      * need at least 2 arguments and need to have an even number of arguments (criteria_range1, criteria1 plus x*(criteria_range, criteria))
+     *
      * @see org.apache.poi.ss.formula.functions.Baseifs#hasInitialRange()
+     * @see <a href="https://support.microsoft.com/en-us/office/countifs-function-dda3dc6e-f74e-4aee-88bc-aa8c2a866842">COUNTIFS function</a>
      */
     protected boolean hasInitialRange() {
         return false;
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Bin.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Bin.java
index cbac6b2..2ec9ea3 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Bin.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Bin.java
@@ -24,7 +24,7 @@
 import org.apache.poi.ss.formula.eval.ValueEval;
 
 /**
- * Implementation for Excel Bin2Dec() function.<p>
+ * Implementation for Excel Bin2Dec() function.
  * <p>
  * <b>Syntax</b>:<br> <b>Bin2Dec  </b>(<b>number</b>,<b>[places]</b> )<br>
  * <p>
@@ -38,7 +38,7 @@
  * <p>
  * Remarks
  * <ul>
- * <li>If number < -512 or if number > 511, DEC2BIN returns the #NUM! error value.</li>
+ * <li>If number &lt; -512 or if number &gt; 511, DEC2BIN returns the #NUM! error value.</li>
  * <li>If number is nonnumeric, DEC2BIN returns the #VALUE! error value.</li>
  * <li>If DEC2BIN requires more than places characters, it returns the #NUM! error value.</li>
  * <li>If places is not an integer, it is truncated.</li>
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Hex.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Hex.java
index 299068d..6af3db0 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Hex.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Dec2Hex.java
@@ -23,7 +23,7 @@
 import org.apache.poi.ss.formula.eval.*;
 
 /**
- * Implementation for Excel DELTA() function.<p>
+ * Implementation for Excel DELTA() function.
  * <p>
  * <b>Syntax</b>:<br> <b>DEC2HEX  </b>(<b>number</b>,<b>places</b> )<br>
  * <p>
@@ -35,11 +35,11 @@
  * Negative numbers are represented using two's-complement notation.
  *
  * <ul>
- * <li>If number < -549,755,813,888 or if number > 549,755,813,887, this function returns the #NUM! error value.</li>
+ * <li>If number &lt; -549,755,813,888 or if number &gt; 549,755,813,887, this function returns the #NUM! error value.</li>
  * <li>If number is nonnumeric, this function returns the #VALUE! error value.</li>
  * </ul>
  *
- * <h2>places</h2>
+ * Places<P>
  *
  * The number of characters to use. The places argument is useful for padding the
  * return value with leading 0s (zeros).
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/FinanceLib.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/FinanceLib.java
index dc4917f..9f7aeae 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/FinanceLib.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/FinanceLib.java
@@ -33,13 +33,16 @@
  * </ul>
  * For more info on the terms/abbreviations please use the references below
  * (hyperlinks are subject to change):
- * </br>Online References:
+ * <p>
+ * Online References:
  * <ol>
  * <li>GNU Emacs Calc 2.02 Manual: http://theory.uwinnipeg.ca/gnu/calc/calc_203.html</li>
  * <li>Yahoo Financial Glossary: http://biz.yahoo.com/f/g/nn.html#y</li>
  * <li>MS Excel function reference: http://office.microsoft.com/en-us/assistance/CH062528251033.aspx</li>
  * </ol>
- * <h3>Implementation Notes:</h3>
+ *
+ * Implementation Notes:<p>
+ *
  * Symbols used in the formulae that follow:<br>
  * <ul>
  * <li>p: present value</li>
@@ -66,7 +69,7 @@
      * Future value of an amount given the number of payments, rate, amount
      * of individual payment, present value and boolean value indicating whether
      * payments are due at the beginning of period
-     * (false => payments are due at end of period)
+     * (false =&gt; payments are due at end of period)
      * @param r rate
      * @param n num of periods
      * @param y pmt per period
@@ -88,7 +91,7 @@
      * Present value of an amount given the number of future payments, rate, amount
      * of individual payment, future value and boolean value indicating whether
      * payments are due at the beginning of period
-     * (false => payments are due at end of period)
+     * (false =&gt; payments are due at end of period)
      * @param r rate
      * @param n num of periods
      * @param y pmt per period
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Function0Arg.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Function0Arg.java
index 749053e..1c50103 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Function0Arg.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Function0Arg.java
@@ -18,12 +18,15 @@
 package org.apache.poi.ss.formula.functions;
 
 import org.apache.poi.ss.formula.eval.ValueEval;
+import org.apache.poi.util.Removal;
 
 /**
  * Implemented by all functions that can be called with zero arguments
  *
- * @author Josh Micich
+ * @deprecated replaced by lambda expressions in 5.0.1
  */
+@Deprecated
+@Removal(version = "6.0.0")
 public interface Function0Arg extends Function {
 	/**
 	 * see {@link Function#evaluate(ValueEval[], int, int)}
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Irr.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Irr.java
index 7430335..16af525 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Irr.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Irr.java
@@ -73,7 +73,7 @@
      * <p>
      * Starting with the guess, the method cycles through the calculation until the result
      * is accurate within 0.00001 percent. If IRR can't find a result that works
-     * after 20 tries, the Double.NaN<> is returned.
+     * after 20 tries, the {@code Double.NaN} is returned.
      * </p>
      * <p>
      *   The implementation is inspired by the NewtonSolver from the Apache Commons-Math library,
@@ -82,7 +82,7 @@
      *
      * @param values        the income values.
      * @param guess         the initial guess of irr.
-     * @return the irr value. The method returns <code>Double.NaN</code>
+     * @return the irr value. The method returns {@code Double.NaN}
      *  if the maximum iteration count is exceeded
      *
      * @see <a href="http://en.wikipedia.org/wiki/Internal_rate_of_return#Numerical_solution">
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Lookup.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Lookup.java
index 0b20ab3..f9f46c9 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Lookup.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Lookup.java
@@ -32,17 +32,15 @@
  * <b>VLOOKUP</b>(<b>lookup_value</b>, <b>lookup_vector</b>, result_vector)<p>
  *
  * <b>lookup_value</b>  The value to be found in the lookup vector.<br>
- * <b>lookup_vector</> An area reference for the lookup data. <br>
+ * <b>lookup_vector</b> An area reference for the lookup data. <br>
  * <b>result_vector</b> Single row or single column area reference from which the result value is chosen.<br>
- *
- * @author Josh Micich
  */
 public final class Lookup extends Var2or3ArgFunction {
 
 	@Override
 	public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {
 		// complex rules to choose lookupVector and resultVector from the single area ref
-		
+
 		try {
 			/*
 			The array form of LOOKUP is very similar to the HLOOKUP and VLOOKUP functions. The difference is that HLOOKUP searches for the value of lookup_value in the first row, VLOOKUP searches in the first column, and LOOKUP searches according to the dimensions of array.
@@ -54,7 +52,7 @@
 			TwoDEval lookupArray = LookupUtils.resolveTableArrayArg(arg1);
 			ValueVector lookupVector;
 			ValueVector resultVector;
-	
+
 			if (lookupArray.getWidth() > lookupArray.getHeight()) {
 				// If array covers an area that is wider than it is tall (more columns than rows), LOOKUP searches for the value of lookup_value in the first row.
 				lookupVector = createVector(lookupArray.getRow(0));
@@ -66,7 +64,7 @@
 			}
 			// if a rectangular area reference was passed in as arg1, lookupVector and resultVector should be the same size
 			assert (lookupVector.getSize() == resultVector.getSize());
-			
+
 			int index = LookupUtils.lookupIndexOfValue(lookupValue, lookupVector, true);
 			return resultVector.getItem(index);
 		} catch (final EvaluationException e) {
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/NumericFunction.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/NumericFunction.java
index 39adf4c..b0e85d9 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/NumericFunction.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/NumericFunction.java
@@ -41,7 +41,7 @@
 	}
 
 	/**
-	 * @throws EvaluationException (#NUM!) if <tt>result</tt> is <tt>NaN</> or <tt>Infinity</tt>
+	 * @throws EvaluationException (#NUM!) if <tt>result</tt> is <tt>NaN</tt> or <tt>Infinity</tt>
 	 */
 	public static void checkValue(double result) throws EvaluationException {
 		if (Double.isNaN(result) || Double.isInfinite(result)) {
@@ -392,7 +392,7 @@
     public static final Function POISSON = new Fixed3ArgFunction() {
 
         private static final double DEFAULT_RETURN_RESULT =1;
-        
+
         /**
          * This checks is x = 0 and the mean = 0.
          * Excel currently returns the value 1 where as the
@@ -417,7 +417,7 @@
             if (aDouble < 0) {
                 throw new EvaluationException(ErrorEval.NUM_ERROR);
             }
-            
+
             return true;
         }
 
@@ -466,7 +466,7 @@
                 // check for default result : excel implementation for 0,0
                 // is different to Math Common.
                 if (isDefaultResult(x,mean)) {
-                    return new NumberEval(DEFAULT_RETURN_RESULT); 
+                    return new NumberEval(DEFAULT_RETURN_RESULT);
                 }
                 // check the arguments : as per excel function def
                 checkArgument(x);
@@ -485,7 +485,7 @@
 			} catch (EvaluationException e) {
 				return e.getErrorEval();
 			}
-            
+
             return new NumberEval(result);
 
         }
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Sumifs.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Sumifs.java
index 862930d..c23a05c 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Sumifs.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Sumifs.java
@@ -22,9 +22,9 @@
 /**
  * Implementation for the Excel function SUMIFS<p>
  *
- * Syntax : <br>
- *  SUMIFS ( <b>sum_range</b>, <b>criteria_range1</b>, <b>criteria1</>,
- *  [<b>criteria_range2</b>,  <b>criteria2</b>], ...) <br>
+ * Syntax : <p>
+ *  SUMIFS ( <b>sum_range</b>, <b>criteria_range1</b>, <b>criteria1</b>,
+ *  [<b>criteria_range2</b>,  <b>criteria2</b>], ...)
  *    <ul>
  *      <li><b>sum_range</b> Required. One or more cells to sum, including numbers or names, ranges,
  *      or cell references that contain numbers. Blank and text values are ignored.</li>
@@ -36,8 +36,6 @@
  *      <li><b> criteria_range2, criteria2, ...</b>    Optional. Additional ranges and their associated criteria.
  *      Up to 127 range/criteria pairs are allowed.
  *    </ul>
- * </p>
- *
  */
 public final class Sumifs extends Baseifs {
     /**
@@ -49,7 +47,6 @@
      * https://support.office.com/en-us/article/SUMIFS-function-c9e748f5-7ea7-455d-9406-611cebce642b
      * COUNTIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...
      * need at least 3 arguments and need to have an odd number of arguments (sum-range plus x*(criteria_range, criteria))
-     * @see org.apache.poi.ss.formula.functions.Baseifs#hasInitialRange()
      */
     @Override
     protected boolean hasInitialRange() {
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/ptg/GreaterThanPtg.java b/poi/src/main/java/org/apache/poi/ss/formula/ptg/GreaterThanPtg.java
index a58e6e2..04ac7fb 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/ptg/GreaterThanPtg.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/ptg/GreaterThanPtg.java
@@ -19,7 +19,7 @@
 
 
 /**
- * Greater than operator PTG ">"
+ * Greater than operator PTG "&gt;"
  */
 public final class GreaterThanPtg extends ValueOperatorPtg {
     public static final byte sid  = 0x0D;
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/ptg/LessThanPtg.java b/poi/src/main/java/org/apache/poi/ss/formula/ptg/LessThanPtg.java
index 5e57316..c2a31f8 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/ptg/LessThanPtg.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/ptg/LessThanPtg.java
@@ -18,7 +18,7 @@
 package org.apache.poi.ss.formula.ptg;
 
 /**
- * Less than operator PTG "<". The SID is taken from the
+ * Less than operator PTG "&lt;". The SID is taken from the
  * Openoffice.orgs Documentation of the Excel File Format,
  * Table 3.5.7
  */
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/DifferentialStyleProvider.java b/poi/src/main/java/org/apache/poi/ss/usermodel/DifferentialStyleProvider.java
index ce6ad53..3c4f6ed 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/DifferentialStyleProvider.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/DifferentialStyleProvider.java
@@ -20,18 +20,18 @@
 /**
  * Interface for classes providing differential style definitions, such as conditional format rules
  * and table/pivot table styles.
- * 
+ *
  * @since 3.17 beta 1
  */
 public interface DifferentialStyleProvider {
 
     /**
-     * @return - border formatting object  if defined,  <code>null</code> otherwise
+     * @return - border formatting object  if defined,  {@code null} otherwise
      */
     BorderFormatting getBorderFormatting();
 
     /**
-     * @return - font formatting object  if defined,  <code>null</code> otherwise
+     * @return - font formatting object  if defined,  {@code null} otherwise
      */
     FontFormatting getFontFormatting();
 
@@ -42,15 +42,15 @@
     ExcelNumberFormat getNumberFormat();
 
     /**
-     * @return - pattern formatting object if defined, <code>null</code> otherwise
+     * @return - pattern formatting object if defined, {@code null} otherwise
      */
     PatternFormatting getPatternFormatting();
 
     /**
      * This is the number of rows or columns in a band or stripe.
-     * For styles that represent stripes, it must be > 1, for all others it is 0.
+     * For styles that represent stripes, it must be &gt; 1, for all others it is 0.
      * Not the greatest overloading by the OOXML spec.
-     * @return number of rows/columns in a stripe for stripe styles, 0 for all others 
+     * @return number of rows/columns in a stripe for stripe styles, 0 for all others
      */
     int getStripeSize();
 }
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/FontScheme.java b/poi/src/main/java/org/apache/poi/ss/usermodel/FontScheme.java
index e1b7712..1bf2318 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/FontScheme.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/FontScheme.java
@@ -23,7 +23,7 @@
  * When a font definition is part of a theme definition, then the font is categorized as either a major or minor font scheme component.
  * When a new theme is chosen, every font that is part of a theme definition is updated to use the new major or minor font definition for that
  * theme.
- * Usually major fonts are used for styles like headings, and minor fonts are used for body & paragraph text.
+ * Usually major fonts are used for styles like headings, and minor fonts are used for body &amp; paragraph text.
  *
  * @author Gisella Bronzetti
  */
@@ -34,9 +34,9 @@
     MAJOR(2),
     MINOR(3);
 
-    private int value;
+    private final int value;
 
-    private FontScheme(int val) {
+    FontScheme(int val) {
         value = val;
     }
 
@@ -44,12 +44,9 @@
         return value;
     }
 
-    private static FontScheme[] _table = new FontScheme[4];
-    static {
-        for (FontScheme c : values()) {
-            _table[c.getValue()] = c;
-        }
-    }
+    private static final FontScheme[] _table = {
+        null, NONE, MAJOR, MINOR
+    };
 
     public static FontScheme valueOf(int value){
         return _table[value];
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/FormulaError.java b/poi/src/main/java/org/apache/poi/ss/usermodel/FormulaError.java
index 996861e..744f4af 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/FormulaError.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/FormulaError.java
@@ -24,13 +24,13 @@
 
 /**
  * Enumerates error values in SpreadsheetML formula calculations.
- * 
+ *
  * See also OOO's excelfileformat.pdf (2.5.6)
  */
 public enum FormulaError {
     @Internal
     _NO_ERROR(-1, "(no error)"),
-    
+
     /**
      * Intended to indicate when two areas are required to intersect, but do not.
      * <p>Example:
@@ -68,10 +68,12 @@
     /**
      * Intended to indicate when what looks like a name is used, but no such name has been defined.
      * <p>Example:
-     * XYZ/3, where XYZ is not a defined name. Total is & A10,
-     * where neither Total nor is is a defined name. Presumably, "Total is " & A10
-     * was intended. SUM(A1C10), where the range A1:C10 was intended.
-     * </p>
+     * <ul>
+     * <li>XYZ/3, where XYZ is not a defined name.</li>
+     * <li>{@code Total is &amp; A10}, where neither {@code Total} nor {@code is} is a defined name.
+     *      Presumably, {@code "Total is " &amp; A10} was intended.</li>
+     * <li>SUM(A1C10), where the range A1:C10 was intended.</li>
+     * </ul>
      */
     NAME(0x1D, "#NAME?"),
 
@@ -100,12 +102,12 @@
      * This error value can be produced by calling the function NA
      */
     NA(0x2A, "#N/A"),
-    
+
     // These are POI-specific error codes
     // It is desirable to make these (arbitrary) strings look clearly different from any other
     // value expression that might appear in a formula.  In addition these error strings should
     // look unlike the standard Excel errors.  Hence tilde ('~') was used.
-    
+
     /**
      * POI specific code to indicate that there is a circular reference
      *  in the formula
@@ -157,7 +159,7 @@
             smap.put(error.getString(), error);
         }
     }
-    
+
     public static boolean isValidCode(int errorCode) {
         for (FormulaError error : values()) {
             if (error.getCode() == errorCode) return true;
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/Name.java b/poi/src/main/java/org/apache/poi/ss/usermodel/Name.java
index 03e13a8..65ca8e3 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/Name.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/Name.java
@@ -24,7 +24,7 @@
  * cell reference, constant or a formula.
  * </p>
  * Examples:
- * <pre><blockquote>
+ * <pre>{@code
  *  Sheet sheet = workbook.createSheet("Loan Calculator");
  *  Name name;
  *
@@ -46,9 +46,9 @@
  *
  *  name = wb.createName();
  *  name.setNameName("Values_Entered");
- *  name.setRefersToFormula("IF(Loan_Amount*Interest_Rate>0,1,0)");
+ *  name.setRefersToFormula("IF(Loan_Amount*Interest_Rate > 0,1,0)");
  *
- * </blockquote></pre>
+ * }</pre>
  */
 public interface Name {
 
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/Table.java b/poi/src/main/java/org/apache/poi/ss/usermodel/Table.java
index ef7fe33..049218a 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/Table.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/Table.java
@@ -34,7 +34,7 @@
      *      </a>
      */
     Pattern isStructuredReference = Pattern.compile("[a-zA-Z_\\\\][a-zA-Z0-9._]*\\[.*\\]");
-    
+
     /**
      *  Get the top-left column index relative to the sheet
      * @return table start column index on sheet
@@ -60,16 +60,16 @@
      * @return table name
      */
     String getName();
-    
+
     /**
      * @return name of the table style, if there is one.  May be a built-in name or user-defined.
      * @since 3.17 beta 1
      */
     String getStyleName();
-    
+
     /**
      * Returns the index of a given named column in the table (names are case insensitive in XSSF).
-     * Note this list is lazily loaded and cached for performance. 
+     * Note this list is lazily loaded and cached for performance.
      * Changes to the underlying table structure are not reflected in later calls
      * unless <code>XSSFTable.updateHeaders()</code> is called to reset the cache.
      * @param columnHeader the column header name to get the table column index of
@@ -85,34 +85,34 @@
     /**
      * Note: This is misleading.  The OOXML spec indicates this is true if the totals row
      * has <b><i>ever</i></b> been shown, not whether or not it is currently displayed.
-     * Use {@link #getTotalsRowCount()} > 0 to decide whether or not the totals row is visible.
+     * Use {@link #getTotalsRowCount()} &gt; 0 to decide whether or not the totals row is visible.
      * @return true if a totals row has ever been shown for this table
      * @since 3.15 beta 2
      * @see #getTotalsRowCount()
      */
     boolean isHasTotalsRow();
-    
+
     /**
      * @return 0 for no totals rows, 1 for totals row shown.
-     * Values > 1 are not currently used by Excel up through 2016, and the OOXML spec
+     * Values &gt; 1 are not currently used by Excel up through 2016, and the OOXML spec
      * doesn't define how they would be implemented.
      * @since 3.17 beta 1
      */
     int getTotalsRowCount();
-    
+
     /**
      * @return 0 for no header rows, 1 for table headers shown.
-     * Values > 1 might be used by Excel for pivot tables?
+     * Values &gt; 1 might be used by Excel for pivot tables?
      * @since 3.17 beta 1
      */
     int getHeaderRowCount();
-    
+
     /**
      * @return TableStyleInfo for this instance
      * @since 3.17 beta 1
      */
     TableStyleInfo getStyle();
-    
+
     /**
      * checks if the given cell is part of the table.  Includes checking that they are on the same sheet.
      * @param cell
@@ -124,7 +124,7 @@
         if (cell == null) return false;
         return contains(new CellReference(cell.getSheet().getSheetName(), cell.getRowIndex(), cell.getColumnIndex(), true, true));
     }
-    
+
     /**
      * checks if the given cell is part of the table.  Includes checking that they are on the same sheet.
      * @param cell reference to a possibly undefined cell location
diff --git a/poi/src/main/java/org/apache/poi/ss/util/CellRangeUtil.java b/poi/src/main/java/org/apache/poi/ss/util/CellRangeUtil.java
index 3b8b525..c3a7afa 100644
--- a/poi/src/main/java/org/apache/poi/ss/util/CellRangeUtil.java
+++ b/poi/src/main/java/org/apache/poi/ss/util/CellRangeUtil.java
@@ -23,7 +23,7 @@
 
 /**
  * Utility class that builds on {@link CellRangeAddress}
- * 
+ *
  * Portions of this class may be moved to {@link CellRangeAddressBase}
  */
 public final class CellRangeUtil {
@@ -40,12 +40,12 @@
 
     /**
      * Get the type of intersection between two cell ranges
-     * 
+     *
      * @param crB - the specified range
      * @return code which reflects how the specified range is related to this range.<br>
      * Possible return codes are:
      * <ul>
-     *     <li>{@link #NO_INTERSECTION} - the specified range is outside of this range;</li> 
+     *     <li>{@link #NO_INTERSECTION} - the specified range is outside of this range;</li>
      *     <li>{@link #OVERLAP} - both ranges partially overlap</li>
      *     <li>{@link #INSIDE} - the specified range is inside of this one</li>
      *     <li>{@link #ENCLOSES} - the specified range encloses (possibly exactly the same as) this range</li>
@@ -60,9 +60,9 @@
         int firstCol = crB.getFirstColumn();
         int lastCol  = crB.getLastColumn();
 
-        if ( 
+        if (
             gt(crA.getFirstRow(),    lastRow) || lt(crA.getLastRow(),    firstRow) ||
-            gt(crA.getFirstColumn(), lastCol) || lt(crA.getLastColumn(), firstCol) 
+            gt(crA.getFirstColumn(), lastCol) || lt(crA.getLastColumn(), firstCol)
         )
         {
             return NO_INTERSECTION;
@@ -145,12 +145,12 @@
         int x = intersect(range1, range2);
         switch(x)
         {
-            case CellRangeUtil.NO_INTERSECTION: 
-                // nothing in common: at most they could be adjacent to each other and thus form a single bigger area  
+            case CellRangeUtil.NO_INTERSECTION:
+                // nothing in common: at most they could be adjacent to each other and thus form a single bigger area
                 if(hasExactSharedBorder(range1, range2)) {
                     return new CellRangeAddress[] { createEnclosingCellRange(range1, range2), };
                 }
-                // else - No intersection and no shared border: do nothing 
+                // else - No intersection and no shared border: do nothing
                 return null;
             case CellRangeUtil.OVERLAP:
                 // commented out the cells overlap implementation, it caused endless loops, see Bug 55380
@@ -179,10 +179,10 @@
     }
 
     /**
-     * Check if cell range A contains cell range B (B <= A)
-     * 
+     * Check if cell range A contains cell range B (B &lt;= A)
+     *
      * TODO: move this into {@link CellRangeAddressBase}
-     * 
+     *
      * @param crA cell range A
      * @param crB cell range B
      * @return true if cell range A contains cell range B
@@ -197,7 +197,7 @@
 
     /**
      * Check if the two cell ranges have a shared border.
-     * 
+     *
      * @return <code>true</code> if the ranges have a complete shared border (i.e.
      * the two ranges together make a simple rectangular region.
      */
@@ -207,7 +207,7 @@
         int oFirstCol = crB.getFirstColumn();
         int oLastCol  = crB.getLastColumn();
 
-        if (crA.getFirstRow() > 0 && crA.getFirstRow()-1 == oLastRow || 
+        if (crA.getFirstRow() > 0 && crA.getFirstRow()-1 == oLastRow ||
                 oFirstRow > 0 && oFirstRow-1 == crA.getLastRow()) {
             // ranges have a horizontal border in common
             // make sure columns are identical:
@@ -225,14 +225,14 @@
 
     /**
      * Create an enclosing CellRange for the two cell ranges.
-     * 
+     *
      * @return enclosing CellRange
      */
     public static CellRangeAddress createEnclosingCellRange(CellRangeAddress crA, CellRangeAddress crB) {
         if( crB == null) {
             return crA.copy();
         }
-        
+
         int minRow = lt(crB.getFirstRow(),   crA.getFirstRow())   ?crB.getFirstRow()   :crA.getFirstRow();
         int maxRow = gt(crB.getLastRow(),    crA.getLastRow())    ?crB.getLastRow()    :crA.getLastRow();
         int minCol = lt(crB.getFirstColumn(),crA.getFirstColumn())?crB.getFirstColumn():crA.getFirstColumn();
diff --git a/poi/src/main/java/org/apache/poi/util/IOUtils.java b/poi/src/main/java/org/apache/poi/util/IOUtils.java
index 974efdf..115e057 100644
--- a/poi/src/main/java/org/apache/poi/util/IOUtils.java
+++ b/poi/src/main/java/org/apache/poi/util/IOUtils.java
@@ -58,7 +58,7 @@
     }
 
     /**
-     * If this value is set to > 0, {@link #safelyAllocate(long, int)} will ignore the
+     * If this value is set to &gt; 0, {@link #safelyAllocate(long, int)} will ignore the
      * maximum record length parameter.
      *
      * This is designed to allow users to bypass the hard-coded maximum record lengths
diff --git a/poi/src/main/java/org/apache/poi/util/IntList.java b/poi/src/main/java/org/apache/poi/util/IntList.java
index f536e08..4bfe8ca 100644
--- a/poi/src/main/java/org/apache/poi/util/IntList.java
+++ b/poi/src/main/java/org/apache/poi/util/IntList.java
@@ -85,7 +85,7 @@
      * @param value the new value
      *
      * @exception IndexOutOfBoundsException if the index is out of
-     *            range (index < 0 || index > size()).
+     *            range (index &lt; 0 || index &gt; size()).
      */
 
     public void add(final int index, final int value)
@@ -179,7 +179,7 @@
      * @return true if this list changed as a result of the call.
      *
      * @exception IndexOutOfBoundsException if the index is out of
-     *            range (index < 0 || index > size())
+     *            range (index &lt; 0 || index &gt; size())
      */
 
     public boolean addAll(final int index, final IntList c)
@@ -312,7 +312,7 @@
      * @return the element at the specified position in this list.
      *
      * @exception IndexOutOfBoundsException if the index is out of
-     *            range (index < 0 || index >= size()).
+     *            range (index &lt; 0 || index &gt;= size()).
      */
 
     public int get(final int index)
@@ -425,7 +425,7 @@
      * @return the element previously at the specified position.
      *
      * @exception IndexOutOfBoundsException if the index is out of
-     *            range (index < 0 || index >= size()).
+     *            range (index &lt; 0 || index &gt;= size()).
      */
 
     public int remove(final int index)
@@ -534,7 +534,7 @@
      * @return the element previously at the specified position.
      *
      * @exception IndexOutOfBoundsException if the index is out of
-     *            range (index < 0 || index >= size()).
+     *            range (index &lt; 0 || index &gt;= size()).
      */
 
     public int set(final int index, final int element)