@Override
 public void visitMethodCallExpression(PsiMethodCallExpression methodCallExpression) {
   super.visitMethodCallExpression(methodCallExpression);
   if (!MethodCallUtils.isSimpleCallToMethod(
           methodCallExpression,
           "javax.servlet.http.HttpSession",
           PsiType.VOID,
           "putValue",
           "java.lang.String",
           "java.lang.Object")
       && !MethodCallUtils.isSimpleCallToMethod(
           methodCallExpression,
           "javax.servlet.http.HttpSession",
           PsiType.VOID,
           "setAttribute",
           "java.lang.String",
           "java.lang.Object")) {
     return;
   }
   final PsiExpressionList argumentList = methodCallExpression.getArgumentList();
   final PsiExpression[] arguments = argumentList.getExpressions();
   if (arguments.length != 2) {
     return;
   }
   final PsiExpression argument = arguments[1];
   final PsiType argumentType = argument.getType();
   if (argumentType == null) {
     return;
   }
   if (SerializationUtils.isProbablySerializable(argumentType)) {
     return;
   }
   registerError(argument);
 }