Dear all, I have found a bug in Netbeans on MacOS which makes the applications crash on MacOS. I would like to know if it is possible to fix it in Netbeans 8.0.1 or at least to make sure it is not in Netbeans 8.2.
The bug : ====== I'm using Netbeans 8.0.1 for Ancestris. There seems to be a conflicting thread in MainWindow.java that compromises the removal of lookup listeners. Therefore, if an updateLookup runs in the application, the following thread is activated which itself runs an updateLookup. The application ends up multiplying the number of listeners up to several tens of thousands and crashes on Mac. Here is the code with the bug: (in MainWindow.java in package org.netbeans.core.windows.view.ui) if (Utilities.getOperatingSystem() == Utilities.OS_MAC) { //Show a "save dot" in the close button if a modified file is //being edited //Show the icon of the edited file in the window titlebar like //other mac apps saveResult = Utilities.actionsGlobalContext().lookupResult (SaveCookie.class); dobResult = Utilities.actionsGlobalContext().lookupResult (DataObject.class); if( null != saveResult && null != dobResult ) { saveListener = new LookupListener() { @Override public void resultChanged(final LookupEvent ev) { RP.post( new Runnable() { @Override public void run() { updateMacDocumentProperties(ev); } }); } }; saveResult.addLookupListener(saveListener); dobResult.addLookupListener(saveListener); } dobResult.allItems(); } The " updateMacDocumentProperties(ev)" includes : - saveResult.allItems() - dobResult.allItems() which trigger an updateLookup as well, creating two threads updating the same lookups (removeListener, addListener). The fix: ===== I would be ok to just replace : "Utilities.getOperatingSystem() == Utilities.OS_MAC" with "Utilities.getOperatingSystem() == Utilities.OS_MAC & false" because I do not think we need this on Mac in the Ancestris application at least. Can someone recompile the package with this fix and send it back to me ? Or else can someone help me fix it myself localy (I do not have the code to recompile this package) ? Many thanks in advance if it can be done. Best regards, Frederic