netbeans-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From frederic <frede...@ancestris.org>
Subject Re: Bug in Netbeans for MacOS
Date Tue, 01 May 2018 15:33:43 GMT
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 <frederic@ancestris.org>
> 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
> > 
Mime
View raw message