diff --git a/bin/win/runnerw.exe b/bin/win/runnerw.exe index d9155d3001e4..affd133776f7 100644 Binary files a/bin/win/runnerw.exe and b/bin/win/runnerw.exe differ diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/EditSourceAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/EditSourceAction.java index da01b9f28b38..778df906c36d 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/EditSourceAction.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/EditSourceAction.java @@ -31,19 +31,21 @@ public class EditSourceAction extends DebuggerAction{ public void actionPerformed(AnActionEvent e) { final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext()); - if(project == null) return; + if(project == null) { + return; + } final DebuggerContextImpl debuggerContext = getDebuggerContext(e.getDataContext()); final DebuggerTreeNodeImpl selectedNode = getSelectedNode(e.getDataContext()); if(debuggerContext != null && selectedNode != null) { debuggerContext.getDebugProcess().getManagerThread().schedule(new DebuggerContextCommandImpl(debuggerContext) { - public void threadAction() { - final SourcePosition sourcePosition = getSourcePosition(selectedNode, debuggerContext); - if (sourcePosition != null) { - sourcePosition.navigate(true); - } + public void threadAction() { + final SourcePosition sourcePosition = getSourcePosition(selectedNode, debuggerContext); + if (sourcePosition != null) { + sourcePosition.navigate(true); } - }); + } + }); } } @@ -51,21 +53,24 @@ public class EditSourceAction extends DebuggerAction{ DebuggerTreeNodeImpl node = selectedNode; final DebuggerContextImpl context = debuggerContext; - if(node == null) return null; - if(context == null) return null; + if(node == null || context == null) { + return null; + } final Project project = context.getProject(); final DebuggerSession debuggerSession = context.getDebuggerSession(); - if(debuggerSession == null) return null; + if(debuggerSession == null) { + return null; + } NodeDescriptorImpl nodeDescriptor = node.getDescriptor(); if(nodeDescriptor instanceof WatchItemDescriptor) { Modifier modifier = ((WatchItemDescriptor)nodeDescriptor).getModifier(); - - if(modifier == null) return null; - + if(modifier == null) { + return null; + } nodeDescriptor = (NodeDescriptorImpl)modifier.getInspectItem(project); } @@ -90,32 +95,24 @@ public class EditSourceAction extends DebuggerAction{ final DebuggerTreeNodeImpl node = getSelectedNode(e.getDataContext()); final Presentation presentation = e.getPresentation(); - - presentation.setEnabled(true); - - //if user used shortcut actionPerformed is called immediately after update - //we not disable presentation here to allow actionPerform work - DebuggerInvocationUtil.invokeLater(project, new Runnable() { - public void run() { - presentation.setEnabled(false); - } - }); - if(debuggerContext != null && debuggerContext.getDebugProcess() != null) { + presentation.setEnabled(true); debuggerContext.getDebugProcess().getManagerThread().schedule(new DebuggerContextCommandImpl(debuggerContext) { public void threadAction() { final SourcePosition position = getSourcePosition(node, debuggerContext); - if (position != null) { + if (position == null) { DebuggerInvocationUtil.swingInvokeLater(project, new Runnable() { public void run() { - presentation.setEnabled(true); + presentation.setEnabled(false); } }); } } }); } - + else { + presentation.setEnabled(false); + } e.getPresentation().setText(ActionManager.getInstance().getAction(IdeActions.ACTION_EDIT_SOURCE).getTemplatePresentation().getText()); } diff --git a/native/runner/runnerw/runnerw.vcxproj b/native/runner/runnerw/runnerw.vcxproj index abc09279a216..c346390e3454 100644 --- a/native/runner/runnerw/runnerw.vcxproj +++ b/native/runner/runnerw/runnerw.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -12,15 +12,18 @@ Win32Proj + {52ADCA3D-82E9-86CF-9DEC-FF1A4A1B4E15} Application true + v120 Application false + v120 diff --git a/plugins/gradle/tooling-extension-v1.9/src/org/jetbrains/plugins/gradle/tooling/v1_9/builder/ModuleExtendedModelBuilderImpl.java b/plugins/gradle/tooling-extension-v1.9/src/org/jetbrains/plugins/gradle/tooling/v1_9/builder/ModuleExtendedModelBuilderImpl.java index d1068806dd0a..42d20e9b21e4 100644 --- a/plugins/gradle/tooling-extension-v1.9/src/org/jetbrains/plugins/gradle/tooling/v1_9/builder/ModuleExtendedModelBuilderImpl.java +++ b/plugins/gradle/tooling-extension-v1.9/src/org/jetbrains/plugins/gradle/tooling/v1_9/builder/ModuleExtendedModelBuilderImpl.java @@ -131,11 +131,14 @@ public class ModuleExtendedModelBuilderImpl implements ModelBuilderService { } ideaSourceDirectories.removeAll(resourceDirectories); + sourceDirectories.removeAll(ideaTestDirectories); sourceDirectories.addAll(ideaSourceDirectories); ideaTestDirectories.removeAll(testResourceDirectories); testDirectories.addAll(ideaTestDirectories); + resourceDirectories.removeAll(ideaExtTestResourceDirectories); resourceDirectories.addAll(ideaExtResourceDirectories); + testResourceDirectories.removeAll(ideaExtResourceDirectories); testResourceDirectories.addAll(ideaExtTestResourceDirectories); // ensure disjoint directories with different type diff --git a/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/build.gradle b/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/build.gradle index 8c7584942858..eb35c275510f 100644 --- a/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/build.gradle +++ b/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/build.gradle @@ -72,3 +72,32 @@ project("withIdeaPluginCustomization2") { } } } + +// see http://youtrack.jetbrains.com/issue/IDEA-120562 +project("withIdeaPluginCustomization3") { + apply plugin: 'java' + apply plugin: 'idea' + + idea { + module { + sourceDirs += file('src/main/java') + testSourceDirs += file('src/awesome-test/java') + testSourceDirs += file('src/awesome-with-resource-test/java') + ext.testResourceDirs += file('src/awesome-with-resource-test/resources') + } + } + + sourceSets { + 'awesome-test' { + java { + srcDir 'src/awesome-test/java' + } + compileClasspath += sourceSets.main.runtimeClasspath + } + 'awesome-with-resource-test' { + java { + srcDir 'src/awesome-with-resource-test/java' + } + } + } +} diff --git a/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/settings.gradle b/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/settings.gradle index 4f7ab785f8fd..5e84e5076ea7 100644 --- a/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/settings.gradle +++ b/plugins/gradle/tooling-extension/testData/testGradleSourcesSetsInterpretation/settings.gradle @@ -5,4 +5,5 @@ include 'moduleWithSourceSetDirBothAsResourceAndJava' include 'moduleWithCustomSourceSet' include 'withIntegrationTests' include 'withIdeaPluginCustomization1' -include 'withIdeaPluginCustomization2' \ No newline at end of file +include 'withIdeaPluginCustomization2' +include 'withIdeaPluginCustomization3' \ No newline at end of file diff --git a/plugins/gradle/tooling-extension/testSources/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImplTest.java b/plugins/gradle/tooling-extension/testSources/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImplTest.java index 70e96dfe3c27..21873319562f 100644 --- a/plugins/gradle/tooling-extension/testSources/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImplTest.java +++ b/plugins/gradle/tooling-extension/testSources/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImplTest.java @@ -50,7 +50,7 @@ public class ModuleExtendedModelBuilderImplTest extends AbstractModelBuilderTest @Test public void testGradleSourcesSetsInterpretation() throws Exception { - final int modulesSize = 7; + final int modulesSize = 8; DomainObjectSet ideaModules = allModels.getIdeaProject().getModules(); @@ -119,6 +119,16 @@ public class ModuleExtendedModelBuilderImplTest extends AbstractModelBuilderTest assertEquals(ContainerUtil.newArrayList("some-extra-test-resource-folder"), testResourceDirectories); assertEquals(ContainerUtil.newArrayList(".gradle", "build"), excludeDirectories); } + else if (module.getName().equals("withIdeaPluginCustomization3")) { + assertEquals(ContainerUtil.newArrayList("src/main/java"), sourceDirectories); + assertEquals(ContainerUtil.newArrayList( + "src/awesome-test/resources", "src/main/resources"), resourceDirectories); + assertEquals(ContainerUtil.newArrayList( + "src/awesome-test/java", "src/awesome-with-resource-test/java", "src/test/java"), testDirectories); + assertEquals(ContainerUtil.newArrayList( + "src/awesome-with-resource-test/resources", "src/test/resources"), testResourceDirectories); + assertEquals(ContainerUtil.newArrayList(".gradle", "build"), excludeDirectories); + } else { fail(); }