diff --git a/core/src/main/java/hudson/DNSMultiCast.java b/core/src/main/java/hudson/DNSMultiCast.java
index <HASH>..<HASH> 100644
--- a/core/src/main/java/hudson/DNSMultiCast.java
+++ b/core/src/main/java/hudson/DNSMultiCast.java
@@ -97,6 +97,21 @@ public class DNSMultiCast implements Closeable {
 
     public static boolean disabled = SystemProperties.getBoolean(DNSMultiCast.class.getName()+".disabled");
 
+    /**
+     * Class that extends {@link JmDNSImpl} to add an abort method. Since {@link javax.jmdns.JmDNS#close()} might
+     * make the instance hang during the shutdown, the abort method terminate uncleanly, but rapidly and
+     * without blocking.
+     *
+     * Initially it was part of the jenkinsci/jmdns forked library, but now this class is responsible for aborting,
+     * allowing to have a direct and clean dependency to the original library.
+     *
+     * The abort() method is pretty similar to close() method. To access private methods and fields uses
+     * reflection.
+     *
+     * @since 2.178
+     *
+     * See JENKINS-25369 for further details
+     */
     private static class JenkinsJmDNS extends JmDNSImpl {
         private static Logger logger = Logger.getLogger(JmDNSImpl.class.getName());
         private final Class parent;
[JENKINS-<I>] Add Javadoc to new class