From 9581a8d8856c32cf6b613f57b30ea0f770dc743f Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 23 Dec 2009 12:09:40 +0300 Subject: [PATCH] conversion from idea 6 projects fixed --- .../conversion/impl/ConversionRunner.java | 1 + .../impl/ConversionServiceImpl.java | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java index 20ba88d3454a..e32362400523 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java @@ -55,6 +55,7 @@ public class ConversionRunner { myProcessWorkspaceFile = myWorkspaceConverter != null && myContext.getWorkspaceFile().exists() && myWorkspaceConverter.isConversionNeeded(myContext.getWorkspaceSettings()); + myModulesFilesToProcess.clear(); if (myModuleFileConverter != null) { for (File moduleFile : myContext.getModuleFiles()) { if (moduleFile.exists() && myModuleFileConverter.isConversionNeeded(myContext.getModuleSettings(moduleFile))) { diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionServiceImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionServiceImpl.java index 6b40da9c5dd4..78a170d29ac8 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionServiceImpl.java @@ -92,9 +92,11 @@ public class ConversionServiceImpl extends ConversionService { } final File backupDir = ProjectConversionUtil.backupFiles(affectedFiles, context.getProjectBaseDir()); for (ConversionRunner runner : runners) { - runner.preProcess(); - runner.process(); - runner.postProcess(); + if (runner.isConversionNeeded()) { + runner.preProcess(); + runner.process(); + runner.postProcess(); + } } context.saveFiles(affectedFiles); listener.successfullyConverted(backupDir); @@ -143,11 +145,21 @@ public class ConversionServiceImpl extends ConversionService { Set convertersToRunIds = new HashSet(); while (iterator.hasNext()) { ConversionRunner runner = iterator.next(); - if (!runner.isConversionNeeded() && !convertersToRunIds.contains(runner.getProvider().getId())) { - iterator.remove(); + boolean conversionNeeded = runner.isConversionNeeded(); + if (!conversionNeeded) { + for (String id : runner.getProvider().getPrecedingConverterIds()) { + if (convertersToRunIds.contains(id)) { + conversionNeeded = true; + break; + } + } + } + + if (conversionNeeded) { + convertersToRunIds.add(runner.getProvider().getId()); } else { - convertersToRunIds.add(runner.getProvider().getId()); + iterator.remove(); } } return converters;