Le 22/07/15 01:10, Stefan Seelmann a écrit : > I did a change here: http://svn.apache.org/r1692199 > > As you already found out whenever a value is selected in the entry > editor all the value editors (or better their proxy) are checked if they > are enabled. Within this isEnabled() check these two lines checked the > "current/best" editor if the value is editable. So in case the if the an > olcAccess attribute is selected the OpenLdapAclValueEditor was asked 28 > times. > > I think this check is not required, but maybe it is from the > SearchResultEditorCellModifier, I'm not totally sure. Let's first see > the Jenkins build result tonight. > > Anyway, there is much room for improvement. > > We call "IValueEditor.getRawValue() != null" very often just to find out > if the editor can handle a value.Getting the raw value is sometimes > cheap (just return a string as is) but sometimes quite expensive. Maybe > an additional "canHanlde()" method would help.
I wonder if it's the right approach. That may aleviate the load, but we still have a lot of listeners registred... I was thinking about another approach : just register one single listener, which would find the right proxy on the fly (ie, when the selection is done). That requires a bit of work, as we will have to change the way we register the proxies, and to create this specific selection listener, whch will contain the list of editor proxies. I have debugged the code a few of hours yesterday, but it's not easy, as they are a lots of layers I don't know. I'll continue my investigation today.
