Browse Source

HADOOP-17858. Avoid possible class loading deadlock with VerifierNone initialization (#3321)

(cherry picked from commit fc566ad9b0e1336381c5f6b321cdcff81768f47a)
Viraj Jasani 3 years ago
parent
commit
f26a547f2b

+ 1 - 2
hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/RpcProgram.java

@@ -24,7 +24,6 @@ import java.net.SocketAddress;
 
 import com.google.common.annotations.VisibleForTesting;
 import org.apache.hadoop.oncrpc.RpcAcceptedReply.AcceptState;
-import org.apache.hadoop.oncrpc.security.Verifier;
 import org.apache.hadoop.oncrpc.security.VerifierNone;
 import org.apache.hadoop.portmap.PortmapMapping;
 import org.apache.hadoop.portmap.PortmapRequest;
@@ -214,7 +213,7 @@ public abstract class RpcProgram extends SimpleChannelUpstreamHandler {
   private void sendAcceptedReply(RpcCall call, SocketAddress remoteAddress,
       AcceptState acceptState, ChannelHandlerContext ctx) {
     RpcAcceptedReply reply = RpcAcceptedReply.getInstance(call.getXid(),
-        acceptState, Verifier.VERIFIER_NONE);
+        acceptState, VerifierNone.INSTANCE);
 
     XDR out = new XDR();
     reply.write(out);

+ 0 - 2
hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/security/Verifier.java

@@ -27,8 +27,6 @@ import org.apache.hadoop.oncrpc.XDR;
  */
 public abstract class Verifier extends RpcAuthInfo {
 
-  public static final Verifier VERIFIER_NONE = new VerifierNone();
-
   protected Verifier(AuthFlavor flavor) {
     super(flavor);
   }

+ 2 - 0
hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/oncrpc/security/VerifierNone.java

@@ -24,6 +24,8 @@ import com.google.common.base.Preconditions;
 /** Verifier used by AUTH_NONE. */
 public class VerifierNone extends Verifier {
 
+  public static final Verifier INSTANCE = new VerifierNone();
+
   public VerifierNone() {
     super(AuthFlavor.AUTH_NONE);
   }