void (Callback callback, SystemFileTypeAssociator associator, List<FileType> fileTypes) { if (!fileTypes.isEmpty()) { ApplicationManager.getApplication().executeOnPooledThread( () -> { try { callback.beforeStart(); associator.associateFileTypes(fileTypes); OSFileAssociationFeatureUsagesUtil.logFilesAssociated(fileTypes); callback.onSuccess(associator.isOsRestartRequired()); } catch (OSFileAssociationException exception) { callback.onFailure(exception.getMessage()); LOG.info(exception); } } ); } }