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



Reply via email to