Fix javadoc errors (#3017)

diff --git a/heron/api/src/java/org/apache/heron/api/Config.java b/heron/api/src/java/org/apache/heron/api/Config.java
index d91c8a0..1607e39 100644
--- a/heron/api/src/java/org/apache/heron/api/Config.java
+++ b/heron/api/src/java/org/apache/heron/api/Config.java
@@ -286,13 +286,13 @@
   /**
    * Topology-specific environment properties to be added to an Heron instance.
    * This is added to the existing environment (that of the Heron instance).
-   * This variable contains Map<String, String>
+   * This variable contains Map&lt;String, String&gt;
    */
   public static final String TOPOLOGY_ENVIRONMENT = "topology.environment";
 
   /**
    * Timer events registered for a topology.
-   * This is a Map<String, Pair<Duration, Runnable>>.
+   * This is a Map&lt;String, Pair&lt;Duration, Runnable&gt;&gt;.
    * Where the key is the name and the value contains the frequency of the event
    * and the task to run.
    */
diff --git a/heron/api/src/java/org/apache/heron/api/bolt/IWindowedBolt.java b/heron/api/src/java/org/apache/heron/api/bolt/IWindowedBolt.java
index 9e4de7e..97ff7e3 100644
--- a/heron/api/src/java/org/apache/heron/api/bolt/IWindowedBolt.java
+++ b/heron/api/src/java/org/apache/heron/api/bolt/IWindowedBolt.java
@@ -27,7 +27,7 @@
 import org.apache.heron.api.windowing.TupleWindow;
 
 /**
- * A bolt abstraction for supporting time and count based sliding & tumbling windows.
+ * A bolt abstraction for supporting time and count based sliding &amp; tumbling windows.
  */
 public interface IWindowedBolt extends IComponent {
   /**
diff --git a/heron/api/src/java/org/apache/heron/api/windowing/WindowManager.java b/heron/api/src/java/org/apache/heron/api/windowing/WindowManager.java
index 26c5dce..1222a50 100644
--- a/heron/api/src/java/org/apache/heron/api/windowing/WindowManager.java
+++ b/heron/api/src/java/org/apache/heron/api/windowing/WindowManager.java
@@ -75,7 +75,7 @@
    *
    * @param lifecycleListener the {@link WindowLifecycleListener}
    * @param queue a collection where the events in the window can be enqueued.
-   * <br/>
+   * <br>
    * <b>Note:</b> This collection has to be thread safe.
    */
   public WindowManager(WindowLifecycleListener<T> lifecycleListener, Collection<Event<T>> queue) {
@@ -88,7 +88,7 @@
 
   /**
    * For testing purpose
-   * See {@Link org.apache.heron.api.windowing.WindowManagerTest}
+   * See {@link org.apache.heron.api.windowing.WindowManagerTest}
    * @param lifecycleListener
    */
   public WindowManager(WindowLifecycleListener<T> lifecycleListener) {
diff --git a/heron/api/src/java/org/apache/heron/api/windowing/evictors/WatermarkTimeEvictionPolicy.java b/heron/api/src/java/org/apache/heron/api/windowing/evictors/WatermarkTimeEvictionPolicy.java
index 74f4ffd..adf5e49 100644
--- a/heron/api/src/java/org/apache/heron/api/windowing/evictors/WatermarkTimeEvictionPolicy.java
+++ b/heron/api/src/java/org/apache/heron/api/windowing/evictors/WatermarkTimeEvictionPolicy.java
@@ -56,7 +56,7 @@
 
   /**
    * {@inheritDoc}
-   * <p/>
+   * <p>
    * Keeps events with future ts in the queue for processing in the next
    * window. If the ts difference is more than the lag, stops scanning
    * the queue for the current window.
diff --git a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/GeneralReduceByKeyAndWindowStreamlet.java b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/GeneralReduceByKeyAndWindowStreamlet.java
index 216ec38..2bc6bf0 100644
--- a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/GeneralReduceByKeyAndWindowStreamlet.java
+++ b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/GeneralReduceByKeyAndWindowStreamlet.java
@@ -38,7 +38,7 @@
  * applying user supplied reduceFn on all elements within each window defined by a
  * user supplied Window Config.
  * ReduceByKeyAndWindowStreamlet's elements are of KeyValue type where the key is
- * KeyWindowInfo<K> type and the value is of type V.
+ * KeyWindowInfo&lt;K&gt; type and the value is of type V.
  */
 public class GeneralReduceByKeyAndWindowStreamlet<K, V, VR>
     extends StreamletImpl<KeyValue<KeyedWindow<K>, VR>> {
diff --git a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/JoinStreamlet.java b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/JoinStreamlet.java
index 711ef3d..0dcab51 100644
--- a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/JoinStreamlet.java
+++ b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/JoinStreamlet.java
@@ -38,7 +38,7 @@
  * JoinStreamlet represents a KVStreamlet that is the result of joining two KVStreamlets left
  * and right using a WindowConfig. For all left and right tuples in the window whose keys
  * match, the user supplied joinFunction is applied on the values to get the resulting value.
- * JoinStreamlet's elements are of KeyValue type where the key is KeyWindowInfo<K> type
+ * JoinStreamlet's elements are of KeyValue type where the key is KeyWindowInfo&lt;K&gt; type
  * and the value is of type VR.
  */
 public final class JoinStreamlet<K, R, S, T> extends StreamletImpl<KeyValue<KeyedWindow<K>, T>> {
diff --git a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/ReduceByKeyAndWindowStreamlet.java b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/ReduceByKeyAndWindowStreamlet.java
index 0c1d7e8..33a5b75 100644
--- a/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/ReduceByKeyAndWindowStreamlet.java
+++ b/heron/api/src/java/org/apache/heron/streamlet/impl/streamlets/ReduceByKeyAndWindowStreamlet.java
@@ -38,7 +38,7 @@
  * applying user supplied reduceFn on all elements within each window defined by a
  * user supplied Window Config.
  * ReduceByKeyAndWindowStreamlet's elements are of KeyValue type where the key is
- * KeyWindowInfo<K> type and the value is of type V.
+ * KeyWindowInfo&lt;K&gt; type and the value is of type V.
  */
 public class ReduceByKeyAndWindowStreamlet<K, V, R>
     extends StreamletImpl<KeyValue<KeyedWindow<K>, V>> {
diff --git a/heron/scheduler-core/src/java/org/apache/heron/scheduler/utils/SchedulerUtils.java b/heron/scheduler-core/src/java/org/apache/heron/scheduler/utils/SchedulerUtils.java
index 6f74685..bd34c3c 100644
--- a/heron/scheduler-core/src/java/org/apache/heron/scheduler/utils/SchedulerUtils.java
+++ b/heron/scheduler-core/src/java/org/apache/heron/scheduler/utils/SchedulerUtils.java
@@ -470,7 +470,7 @@
    * <br> 2. replace "(61)" and "&amp;equals;" with "="
    * <br> 3. Revert from Base64 format
    * Note that '=' is escaped in two different ways. '(61)' is the new escaping.
-   * '&equals;' was the original replacement but it is not friendly to bash and
+   * '&amp;equals;' was the original replacement but it is not friendly to bash and
    * was causing issues. The original escaping is still left there for reference
    * and backward compatibility purposes (to be removed after no topology needs
    * it)
diff --git a/heron/spi/src/java/org/apache/heron/spi/uploader/IUploader.java b/heron/spi/src/java/org/apache/heron/spi/uploader/IUploader.java
index 905351c..96cef69 100644
--- a/heron/spi/src/java/org/apache/heron/spi/uploader/IUploader.java
+++ b/heron/spi/src/java/org/apache/heron/spi/uploader/IUploader.java
@@ -41,6 +41,7 @@
 public interface IUploader extends AutoCloseable {
   /**
    * Initialize the uploader with the incoming context.
+   * @param config The config object.
    */
   void initialize(Config config);
 
@@ -55,6 +56,7 @@
   /**
    * If subsequent stages fail, undo will be called to free resources used by
    * uploading package. Ideally, this should try to remove the uploaded package.
+   * @return True if successful.
    */
   boolean undo();
 
diff --git a/storm-compatibility/src/java/backtype/storm/task/TopologyContext.java b/storm-compatibility/src/java/backtype/storm/task/TopologyContext.java
index b159d7f..e015710 100644
--- a/storm-compatibility/src/java/backtype/storm/task/TopologyContext.java
+++ b/storm-compatibility/src/java/backtype/storm/task/TopologyContext.java
@@ -157,6 +157,7 @@
   /**
    * Gets the declared output fields for the specified stream id for the component
    * this task is a part of.
+   * @param streamId The id of the output field.
    */
   public Fields getThisOutputFields(String streamId) {
     return new Fields(delegate.getThisOutputFields(streamId));
diff --git a/storm-compatibility/src/java/org/apache/storm/topology/IWindowedBolt.java b/storm-compatibility/src/java/org/apache/storm/topology/IWindowedBolt.java
index 8f814bc..ab0d055 100644
--- a/storm-compatibility/src/java/org/apache/storm/topology/IWindowedBolt.java
+++ b/storm-compatibility/src/java/org/apache/storm/topology/IWindowedBolt.java
@@ -25,7 +25,7 @@
 import org.apache.storm.windowing.TupleWindow;
 
 /**
- * A bolt abstraction for supporting time and count based sliding & tumbling windows.
+ * A bolt abstraction for supporting time and count based sliding &amp; tumbling windows.
  */
 public interface IWindowedBolt extends IComponent {
   /**
diff --git a/storm-compatibility/src/java/org/apache/storm/tuple/Tuple.java b/storm-compatibility/src/java/org/apache/storm/tuple/Tuple.java
index c238346..656800d 100644
--- a/storm-compatibility/src/java/org/apache/storm/tuple/Tuple.java
+++ b/storm-compatibility/src/java/org/apache/storm/tuple/Tuple.java
@@ -63,7 +63,7 @@
   /**
    * Gets the field at position i in the tuple. Returns object since tuples are dynamically typed.
    *
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Object getValue(int i);
 
@@ -71,7 +71,7 @@
    * Returns the String at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a String
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   String getString(int i);
 
@@ -79,7 +79,7 @@
    * Returns the Integer at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Integer
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Integer getInteger(int i);
 
@@ -87,7 +87,7 @@
    * Returns the Long at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Long
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Long getLong(int i);
 
@@ -95,7 +95,7 @@
    * Returns the Boolean at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Boolean
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Boolean getBoolean(int i);
 
@@ -103,7 +103,7 @@
    * Returns the Short at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Short
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Short getShort(int i);
 
@@ -111,7 +111,7 @@
    * Returns the Byte at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Byte
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Byte getByte(int i);
 
@@ -119,7 +119,7 @@
    * Returns the Double at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Double
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Double getDouble(int i);
 
@@ -127,7 +127,7 @@
    * Returns the Float at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a Float
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   Float getFloat(int i);
 
@@ -135,7 +135,7 @@
    * Returns the byte array at position i in the tuple.
    *
    * @throws ClassCastException If that field is not a byte array
-   * @throws IndexOutOfBoundsException - if the index is out of range `(index < 0 || index >= size())`
+   * @throws IndexOutOfBoundsException - if the index is out of range `(index &lt; 0 || index &gt;= size())`
    */
   byte[] getBinary(int i);