Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discard vacuous refactoring results #3236

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -160,12 +160,11 @@ public DescriptionListener getDescriptionListener(Log log, JCCompilationUnit com

RefactoringResult applyChanges(URI uri) throws Exception {
Collection<DelegatingDescriptionListener> listeners = foundSources.removeAll(uri);
if (listeners.isEmpty()) {
return RefactoringResult.create("", RefactoringResultType.NO_CHANGES);
if (doApplyProcess(fileDestination, new FsFileSource(rootPath), listeners)) {
return postProcess.apply(uri);
}

doApplyProcess(fileDestination, new FsFileSource(rootPath), listeners);
return postProcess.apply(uri);
return RefactoringResult.create("", RefactoringResultType.NO_CHANGES);
}

private static void writePatchFile(
Expand All @@ -185,22 +184,30 @@ private static void writePatchFile(
}
}

private static void doApplyProcess(
private static boolean doApplyProcess(
FileDestination fileDestination,
FileSource fileSource,
Collection<DelegatingDescriptionListener> listeners) {
boolean appliedDiff = false;
for (DelegatingDescriptionListener listener : listeners) {
if (listener.base.isEmpty()) {
continue;
}

try {
SourceFile file = fileSource.readFile(listener.base.getRelevantFileName());
listener.base.applyDifferences(file);
fileDestination.writeFile(file);
appliedDiff = true;
} catch (IOException e) {
logger.log(
Level.WARNING,
"Failed to apply diff to file " + listener.base.getRelevantFileName(),
e);
}
}

return appliedDiff;
}

private static final class DelegatingDescriptionListener implements DescriptionListener {
Expand Down