This is an automated email from the ASF dual-hosted git repository. lkishalmi pushed a commit to branch release122 in repository https://gitbox.apache.org/repos/asf/netbeans.git
commit e3f1aeda5cf0dc2345fa1e74f58a99d572674bcd Author: Jaroslav Tulach <jaroslav.tul...@oracle.com> AuthorDate: Tue Oct 20 08:37:50 2020 +0200 Make sure Maven project is refreshed before build is over --- .../netbeans/modules/maven/ActionProviderImpl.java | 6 ++---- .../netbeans/modules/maven/NbMavenProjectImpl.java | 7 ++++--- .../netbeans/modules/maven/api/NbMavenProject.java | 5 +++-- .../maven/execute/MavenCommandLineExecutor.java | 19 ++++++++----------- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java b/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java index a9dd035..add44f8 100644 --- a/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java +++ b/java/maven/src/org/netbeans/modules/maven/ActionProviderImpl.java @@ -275,10 +275,8 @@ public class ActionProviderImpl implements ActionProvider { final ActionProgress listener = ActionProgress.start(lookup); final ExecutorTask task = RunUtils.run(rc); if (task != null) { - task.addTaskListener(new TaskListener() { - @Override public void taskFinished(Task t) { - listener.finished(task.result() == 0); - } + task.addTaskListener((Task t) -> { + listener.finished(task.result() == 0); }); } else { listener.finished(false); diff --git a/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java b/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java index ccc98b3..2708f1a 100644 --- a/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java +++ b/java/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java @@ -467,15 +467,16 @@ public final class NbMavenProjectImpl implements Project { - public void fireProjectReload() { + public RequestProcessor.Task fireProjectReload() { //#227101 not only AWT and project read/write mutex has to be checked, there are some additional more //complex scenarios that can lead to deadlock. Just give up and always fire changes in separate RP. if (Boolean.getBoolean("test.reload.sync")) { reloadTask.run(); //for tests just do sync reload, even though silly, even sillier is to attempt to sync the threads.. - return; + } else { + reloadTask.schedule(0); //asuming here that schedule(0) will move the scheduled task in the queue if not yet executed } - reloadTask.schedule(0); //asuming here that schedule(0) will move the scheduled task in the queue if not yet executed + return reloadTask; } public static void refreshLocalRepository(NbMavenProjectImpl project) { diff --git a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java index 17b90a5..8fdf544 100644 --- a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java +++ b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java @@ -63,6 +63,7 @@ import org.openide.filesystems.FileUtil; import org.openide.util.Lookup; import org.openide.util.NbBundle.Messages; import org.openide.util.RequestProcessor; +import org.openide.util.Task; import org.openide.util.Utilities; /** @@ -546,8 +547,8 @@ public final class NbMavenProject { /** * */ - private void fireProjectReload() { - project.fireProjectReload(); + private RequestProcessor.Task fireProjectReload() { + return project.fireProjectReload(); } private void doFireReload() { diff --git a/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java b/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java index 770e556..e920702 100644 --- a/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java +++ b/java/maven/src/org/netbeans/modules/maven/execute/MavenCommandLineExecutor.java @@ -58,6 +58,8 @@ import org.netbeans.api.extexecution.base.Processes; import org.netbeans.api.java.platform.JavaPlatform; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; +import org.netbeans.api.project.Project; +import org.netbeans.modules.maven.NbMavenProjectImpl; import org.netbeans.modules.maven.api.Constants; import org.netbeans.modules.maven.api.FileUtilities; import org.netbeans.modules.maven.api.NbMavenProject; @@ -318,18 +320,13 @@ public class MavenCommandLineExecutor extends AbstractMavenExecutor { ioput.getErr().close(); actionStatesAtFinish(out.createResumeFromFinder(), out.getExecutionTree()); markFreeTab(); - RP.post(new Runnable() { //#103460 - @Override - public void run() { - //TODO we eventually know the coordinates of all built projects via EventSpy. - if (clonedConfig.getProject() != null) { - NbMavenProject.fireMavenProjectReload(clonedConfig.getProject()); - } - } - }); - + final Project prj = clonedConfig.getProject(); + NbMavenProjectImpl impl = prj.getLookup().lookup(NbMavenProjectImpl.class); + if (impl != null) { + RequestProcessor.Task reloadTask = impl.fireProjectReload(); + reloadTask.waitFinished(); + } } - } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists