Please report to JIRA and create a sample module that manages to crash NetBeans on macOS by calling ExplorerManager.setRootContext / ExplorerManager.setSelectedNodes like you mentioned. Then we have something to debug.
> Or else, can I get someone to tell me how to recompile the following jar > "org.netbeans.core.windows.jar" ? Not sure what you mean here. You type `ant` in the (modified) NetBeans source tree folder. --emi ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On 1 May 2018 6:33 PM, frederic <[email protected]> wrote: > Hi Efrem, Thomas, > > Thanks for you replies. > > The application is Ancestris, but it does not matter much which application > is running netbeans. I have spent quite ssome time finding the bug. The crash > is generated after several calls to "ExplorerManager.setRootContext()" or > "ExplorerManager.setSelectedNodes()". After about 20 to 100 calls, it creates > the bug. > > What I am trying to do: > > - I have a TopComponent with a simple ExplorerManager in it, which holds the > context. (associateLookup(ExplorerUtils.createLookup(manager, map));) > > - Each time the user changes the selected element, I run an > ExplorerManager.setRootContext() and ExplorerManager.setSelectedNodes(). > > - On Linux, no problem for any number of changes > > - On MacOS, computer slows down after about 20 to 100 selections, Then it > crashes. > > I have checked the source code of MainWindow.java in package > org.netbeans.core.windows.view.ui for NB 8.01, 8.02, and 8.2 : they all have > the same code, therefore the same bug. > > If you want to check on 9.0, just check the MainWindow code. Can you show it > to us please, see if it has the same call under resultChanged() ? > > (Otherwise, not sure we can test with my application on 9.0, it has not been > converted yet to NB9.0.) > > Tom, if I cannot have support on 8.0.1, maybe I can get support on 8.2 ? Or > else, can I get someone to tell me how to recompile the following jar : > "org.netbeans.core.windows.jar" ? > > Hope this adds more explanations. > > Many thanks again. > > Frederic > > Le mardi 01 mai 2018 à 09:33 -0400, Efrem Mc a écrit : > > > Hi my name is Efrem. I am willing to test this with the new beta > > release of NB 9.0 on MacOS. > > > > I am running Mac OSX 10.11.6 on a Mac Mini which is OS frozen because > > of its age... > > > > If you can provide me the steps or source to test I am willing to test > > it today. > > > > What is the application and what are you trying to do? > > > > Please advise. > > > > Efrem McCrimon > > GUI Builder Tribe tester > > DB Tribe tester > > > > > > > > On Tue, May 1, 2018 at 7:24 AM, frederic <[email protected]> wrote: > > > > > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
