@Override
    public void visitMethodCallExpression(
      @NotNull PsiMethodCallExpression methodCallExpression) {
      super.visitMethodCallExpression(methodCallExpression);
      if (!MethodCallUtils.isSimpleCallToMethod(methodCallExpression,
                                                "javax.servlet.http.HttpSession", PsiTypes.voidType(),
                                                "putValue", CommonClassNames.JAVA_LANG_STRING,
                                                CommonClassNames.JAVA_LANG_OBJECT) &&
          !MethodCallUtils.isSimpleCallToMethod(methodCallExpression,
                                                "javax.servlet.http.HttpSession", PsiTypes.voidType(),
                                                "setAttribute", CommonClassNames.JAVA_LANG_STRING,
                                                CommonClassNames.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);
    }
@Override
    public void visitMethodCallExpression(
      @NotNull PsiMethodCallExpression methodCallExpression)