This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 188964
Collapse All | Expand All

(-)a/maven/src/org/netbeans/modules/maven/NbMavenProjectImpl.java (+28 lines)
Lines 107-112 Link Here
107
import org.netbeans.api.project.ProjectInformation;
107
import org.netbeans.api.project.ProjectInformation;
108
import org.netbeans.api.project.ProjectManager;
108
import org.netbeans.api.project.ProjectManager;
109
import org.netbeans.api.project.ProjectUtils;
109
import org.netbeans.api.project.ProjectUtils;
110
import org.netbeans.api.project.ui.OpenProjects;
110
import org.netbeans.api.queries.VisibilityQuery;
111
import org.netbeans.api.queries.VisibilityQuery;
111
import org.netbeans.spi.project.ProjectState;
112
import org.netbeans.spi.project.ProjectState;
112
import org.netbeans.spi.project.ui.PrivilegedTemplates;
113
import org.netbeans.spi.project.ui.PrivilegedTemplates;
Lines 500-505 Link Here
500
            return;
501
            return;
501
        }
502
        }
502
//        clearProjectWorkspaceCache();
503
//        clearProjectWorkspaceCache();
504
        boolean wasBroken = problemReporter.isBroken();
503
        problemReporter.clearReports(); //#167741 -this will trigger node refresh?
505
        problemReporter.clearReports(); //#167741 -this will trigger node refresh?
504
        MavenProject prj = loadOriginalMavenProject(false);
506
        MavenProject prj = loadOriginalMavenProject(false);
505
        synchronized (this) {
507
        synchronized (this) {
Lines 508-513 Link Here
508
        ACCESSOR.doFireReload(watcher);
510
        ACCESSOR.doFireReload(watcher);
509
        projectInfo.reset();
511
        projectInfo.reset();
510
        doBaseProblemChecks();
512
        doBaseProblemChecks();
513
        if (wasBroken && !problemReporter.isBroken()) {
514
            LOG.log(Level.FINE, "{0} was fixed, will refresh other broken projects", prj);
515
            refreshAllBrokenProjects();
516
        }
517
    }
518
    private static int refreshPointer; // cycle through open projects so we do not repeat too much
519
    private static void refreshAllBrokenProjects() {
520
        RELOAD_RP.post(new Runnable() {
521
            public @Override void run() {
522
                EmbedderFactory.resetProjectEmbedder();
523
                int max = 5; // do not try to reload hundreds of projects (unless they get fixed and retrigger this)
524
                Project[] openProjects = OpenProjects.getDefault().getOpenProjects();
525
                for (int i = 0; i < openProjects.length; i++) {
526
                    Project p = openProjects[(i + refreshPointer++) % openProjects.length];
527
                    ProblemReporterImpl reporter = p.getLookup().lookup(ProblemReporterImpl.class);
528
                    if (reporter != null && reporter.isBroken()) {
529
                        LOG.log(Level.FINE, "will try to refresh broken {0}", p);
530
                        NbMavenProject.fireMavenProjectReload(p);
531
                        if (max-- == 0) {
532
                            LOG.fine("stopping refreshes after several attempts");
533
                            break;
534
                        }
535
                    }
536
                }
537
            }
538
        });
511
    }
539
    }
512
540
513
//    public void clearProjectWorkspaceCache() {
541
//    public void clearProjectWorkspaceCache() {

Return to bug 188964