@Override
  @Nullable ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement current) {
    if(!(current instanceof PsiJavaToken && current.textMatches("("))) return null;
    PsiElement prevElement = PsiTreeUtil.prevVisibleLeaf(current);
    if (!(prevElement instanceof PsiIdentifier)) return null;
    if (!prevElement.textMatches("arraycopy")) return null;
    PsiElement ref = prevElement.getParent();
    if (!(ref instanceof PsiReferenceExpression)) return null;
    PsiMethodCallExpression call = ObjectUtils.tryCast(ref.getParent(), PsiMethodCallExpression.class);
    if (call == null) return null;
    PsiExpression[] args = call.getArgumentList().getExpressions();
    if (args.length != 5) return null;
    PsiMethod method = call.resolveMethod();
    if (method == null) return null;
    PsiClass containingClass = method.getContainingClass();
    if (containingClass == null || !"java.lang.System".equals(containingClass.getQualifiedName())) return null;
    return onTheSameLineFor(current, args[myParameter], true);
  }
@Override
  @Nullable ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement current)