{"record":{"id":"03c45737824e8e77","repo":"JetBrains/intellij-community","slug":"unsupported-operation","errorCode":null,"errorMessage":"Unsupported operation","messagePattern":"Unsupported operation","errorType":"exception","errorClass":"IncorrectOperationException","httpStatus":null,"severity":"error","filePath":"java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java","lineNumber":77,"sourceCode":"    return new PsiReferenceBase<PsiElement>(this, range) {\n      @Override\n      public PsiElement resolve() {\n        return target;\n      }\n\n      @Override\n      public PsiElement handleElementRename(@NotNull String newElementName) {\n        final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(getNode());\n        LeafElement newElement = Factory.createSingleLeafElement(JavaDocTokenType.DOC_TAG_VALUE_TOKEN, newElementName, charTableByTree, getManager());\n        replaceChild(valueToken, newElement);\n        return PsiDocParamRef.this;\n      }\n\n      @Override\n      public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException {\n        if (isReferenceTo(element)) return PsiDocParamRef.this;\n        if(!(element instanceof PsiParameter)) {\n          throw new IncorrectOperationException(\"Unsupported operation\");\n        }\n        return handleElementRename(((PsiParameter)element).getName());\n      }\n\n      @Override\n      public boolean isReferenceTo(@NotNull PsiElement element) {\n        if (!(element instanceof PsiNamedElement)) return false;\n        PsiNamedElement namedElement = (PsiNamedElement)element;\n        if (!getCanonicalText().equals(namedElement.getName())) return false;\n        return getManager().areElementsEquivalent(resolve(), element);\n      }\n    };\n  }\n\n  public static @NotNull List<PsiNamedElement> getAllParameters(@NotNull PsiDocComment comment) {\n    List<PsiNamedElement> allParams = new ArrayList<>();\n    PsiJavaDocumentedElement owner = comment.getOwner();\n    if (owner instanceof PsiMethod) {","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/JetBrains/intellij-community/blob/be881553f2a76ac8b4ea53950d93f0de78295c19/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java#L59-L95","documentation":"PsiDocParamRef is the reference inside a @param/@throws javadoc tag to a method parameter. Its bindToElement only supports rebinding to another PsiParameter; passing any other element type throws IncorrectOperationException(\"Unsupported operation\").","triggerScenarios":"Calling bindToElement on the reference from a javadoc @param tag (element type DOC_TAG_VALUE_TOKEN) with a non-PsiParameter target such as a PsiField or PsiMethod.","commonSituations":"Refactorings that move/rename parameters and generically rebind all references including javadoc ones; plugins syncing javadoc with signature changes; wrong resolve result fed into bind from a custom resolver.","solutions":["Guard the call: only bind when element instanceof PsiParameter.","To update the javadoc text after a rename, call handleElementRename(newName) instead, which rewrites the tag value token.","If the target is a type/throws reference, bind the appropriate reference object from the @throws tag, not the @param one."],"exampleFix":"// before\ndocParamRef.bindToElement(target); // target is PsiField -> throws\n\n// after\nif (target instanceof PsiParameter) {\n  docParamRef.bindToElement(target);\n} else {\n  docParamRef.handleElementRename(target.getName()); // just fix the tag text\n}","handlingStrategy":"type-guard","validationCode":"if (!(target instanceof PsiParameter)) return; // javadoc @param refs only bind to parameters","typeGuard":"static boolean canBindDocParamRef(PsiElement e) { return e instanceof PsiParameter; }","tryCatchPattern":"try { docRef.bindToElement(t); } catch (IncorrectOperationException e) { docRef.handleElementRename(t.getName()); }","preventionTips":["Use handleElementRename for javadoc tag text updates.","Match @param references only against parameters."],"tags":["java","psi","javadoc","references","bind"],"backgroundTag":null,"analyzedSha":"be881553f2a76ac8b4ea53950d93f0de78295c19","analyzedAt":"2026-08-14T14:13:06.425Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}