Buggy code:
public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsageProcessor { @ Override public UsageInfo [ ] findUsages ( ChangeInfo info ) { } private static void findAllMethodUsages ( JetChangeInfo changeInfo , Set < UsageInfo > result ) { } private static void findOneMethodUsages ( @ NotNull JetFunctionDefinitionUsage < ? > functionUsageInfo , JetChangeInfo changeInfo , Set < UsageInfo > result ) { } private static void processInternalReferences ( JetFunctionDefinitionUsage functionUsageInfo , JetTreeVisitor < BindingContext > visitor ) { } private static void findOriginalReceiversUsages ( @ NotNull final JetFunctionDefinitionUsage < ? > functionUsageInfo , @ NotNull final Set < UsageInfo > result , @ NotNull final JetChangeInfo changeInfo ) { } private static void findSAMUsages ( ChangeInfo changeInfo , Set < UsageInfo > result ) { } @ Override public MultiMap < PsiElement , String > findConflicts ( ChangeInfo info , Ref < UsageInfo [ ] > refUsages ) { } private static void findInternalExplicitReceiverConflicts ( UsageInfo [ ] usages , MultiMap < PsiElement , String > result , JetParameterInfo originalReceiverInfo ) { } private static void findReceiverIntroducingConflicts ( MultiMap < PsiElement , String > result , PsiElement callable , JetParameterInfo newReceiverInfo ) { } private static List < JetType > getFunctionParameterTypes ( FunctionDescriptor descriptor ) { } private JetMethodDescriptor originalJavaMethodDescriptor ; private static boolean isJavaMethodUsage ( UsageInfo usageInfo ) { } @ Nullable private static UsageInfo createReplacementUsage ( UsageInfo originalUsageInfo , final JetChangeInfo javaMethodChangeInfo ) { } private static class NullabilityPropagator { private final NullableNotNullManager nullManager ; private final JavaPsiFacade javaPsiFacade ; private final JavaCodeStyleManager javaCodeStyleManager ; private final PsiAnnotation methodAnnotation ; private final PsiAnnotation [ ] parameterAnnotations ; public NullabilityPropagator ( @ NotNull PsiMethod baseMethod ) { } @ Nullable private PsiAnnotation getNullabilityAnnotation ( @ NotNull PsiModifierListOwner element ) { } private void addNullabilityAnnotationIfApplicable ( @ NotNull PsiModifierListOwner element , @ Nullable PsiAnnotation annotation ) { } public void processMethod ( @ NotNull PsiMethod currentMethod ) { } } @ Override public boolean processUsage ( ChangeInfo changeInfo , UsageInfo usageInfo , boolean beforeMethodChange , UsageInfo [ ] usages ) { PsiElement method = changeInfo . getMethod ( ) ; boolean isJavaMethodUsage = JetChangeSignatureUsageProcessor . isJavaMethodUsage ( usageInfo ) ; if ( usageInfo instanceof KotlinWrapperForJavaUsageInfos ) { JavaChangeInfo javaChangeInfo = ( ( JetChangeInfo ) ( changeInfo ) ) . getOrCreateJavaChangeInfo ( ) ; assert javaChangeInfo != null : "JavaChangeInfo<seq2seq4repair_space>not<seq2seq4repair_space>found:<seq2seq4repair_space>" + ( method . getText ( ) ) ; UsageInfo [ ] javaUsageInfos = ( ( KotlinWrapperForJavaUsageInfos ) ( usageInfo ) ) . getJavaUsageInfos ( ) ; ChangeSignatureUsageProcessor [ ] processors = EP_NAME . getExtensions ( ) ; JetChangeSignatureUsageProcessor . NullabilityPropagator nullabilityPropagator = new JetChangeSignatureUsageProcessor . NullabilityPropagator ( javaChangeInfo . getMethod ( ) ) ; for ( UsageInfo usage : javaUsageInfos ) { if ( ( usage instanceof OverriderUsageInfo ) && beforeMethodChange ) continue ; for ( ChangeSignatureUsageProcessor processor : processors ) { if ( processor instanceof JetChangeSignatureUsageProcessor ) continue ; if ( usage instanceof OverriderUsageInfo ) { processor . processUsage ( javaChangeInfo , usage , true , javaUsageInfos ) ; } if ( processor . processUsage ( javaChangeInfo , usage , beforeMethodChange , javaUsageInfos ) ) break ; } if ( usage instanceof OverriderUsageInfo ) { <START_BUG> PsiMethod overridingMethod = ( ( OverriderUsageInfo ) ( usage ) ) . getElement ( ) ; <END_BUG> if ( overridingMethod != null ) { nullabilityPropagator . processMethod ( overridingMethod ) ; } } } } if ( beforeMethodChange ) { if ( isJavaMethodUsage ) { FunctionDescriptor methodDescriptor = ResolvePackage . getJavaMethodDescriptor ( ( ( PsiMethod ) ( method ) ) ) ; JetChangeSignatureData changeSignatureData = new JetChangeSignatureData ( methodDescriptor , method , Collections . singletonList ( methodDescriptor ) ) ; if ( changeSignatureData != ( originalJavaMethodDescriptor ) ) { originalJavaMethodDescriptor = changeSignatureData ; } } return true ; } PsiElement element = usageInfo . getElement ( ) ; if ( element == null ) return false ; if ( isJavaMethodUsage && ( ( originalJavaMethodDescriptor ) != null ) ) { JetChangeInfo javaMethodChangeInfo = ChangeSignaturePackage . toJetChangeInfo ( changeInfo , originalJavaMethodDescriptor ) ; originalJavaMethodDescriptor = null ; for ( int i = 0 ; i < ( usages . length ) ; i ++ ) { UsageInfo oldUsageInfo = usages [ i ] ; if ( ! ( JetChangeSignatureUsageProcessor . isJavaMethodUsage ( oldUsageInfo ) ) ) continue ; UsageInfo newUsageInfo = JetChangeSignatureUsageProcessor . createReplacementUsage ( oldUsageInfo , javaMethodChangeInfo ) ; if ( newUsageInfo != null ) { usages [ i ] = newUsageInfo ; if ( oldUsageInfo == usageInfo ) { usageInfo = newUsageInfo ; } } } } if ( usageInfo instanceof JavaMethodKotlinUsageWithDelegate ) { return ( ( JavaMethodKotlinUsageWithDelegate ) ( usageInfo ) ) . processUsage ( ) ; } if ( ( usageInfo instanceof MoveRenameUsageInfo ) && isJavaMethodUsage ) { JetSimpleNameExpression callee = PsiTreeUtil . getParentOfType ( usageInfo . getElement ( ) , JetSimpleNameExpression . class , false ) ; PsiReference ref = ( callee != null ) ? callee . getReference ( ) : null ; if ( ref instanceof JetSimpleNameReference ) { ( ( JetSimpleNameReference ) ( ref ) ) . handleElementRename ( ( ( PsiMethod ) ( method ) ) . getName ( ) ) ; return true ; } return false ; } return usageInfo instanceof JetUsageInfo ? ( ( JetUsageInfo ) ( usageInfo ) ) . processUsage ( ( ( JetChangeInfo ) ( changeInfo ) ) , element ) : true ; } @ Override public boolean processPrimaryMethod ( ChangeInfo changeInfo ) { } @ Override public boolean shouldPreviewUsages ( ChangeInfo changeInfo , UsageInfo [ ] usages ) { } @ Override public boolean setupDefaultValues ( ChangeInfo changeInfo , Ref < UsageInfo [ ] > refUsages , Project project ) { } @ Override public void registerConflictResolvers ( List < ResolveSnapshotProvider . ResolveSnapshot > snapshots , @ NotNull ResolveSnapshotProvider resolveSnapshotProvider , UsageInfo [ ] usages , ChangeInfo changeInfo ) { } }

Fix:
PsiMethod overridingMethod = ( ( OverriderUsageInfo ) ( usage ) ) . getOverridingMethod ( ) ;