Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-dev] Assert and ListenerList


For better or worse the Equinox ListenerList implementation maintains a list that exactly matches the number of listeners. As such, passing in an initial size is not really relevant.  The new factory methods you suggest could be added but if we leave the old constructor the ambiguity would still remain.  Do your coding patterns ever pass 0 or 1 to your ListenerList(int)?  Assuming you don't, you will get IllegalArgumentExcpetions for any uses that have not been updated appropriately.

Jeff



Nick Edgar/Ottawa/IBM@IBMCA
Sent by: eclipse-dev-bounces@xxxxxxxxxxx

11/22/2005 05:38 PM

Please respond to
"General development mailing list of the Eclipse project."

To
"General development mailing list of the Eclipse project." <eclipse-dev@xxxxxxxxxxx>
cc
Subject
Re: [eclipse-dev] Assert and ListenerList





In Doug's message to the UI list, he mentions that the new ListenerList
has an (int) constructor that has different semantics than the one in
JFace, which will make it error-prone to adapt to.
Is it possible to remove this ambiguity, e.g. by using static factory
methods such as ListenerList.newIdentityList() and .newEqualityList()?
It would be nice if the initial capacity could be specified via the
constructor and/or factory methods too.
Having an (int capacity, int mode) constructor would also help remove the
ambiguity.

Nick




John Arthorne/Ottawa/IBM@IBMCA
Sent by: eclipse-dev-bounces@xxxxxxxxxxx
11/22/2005 05:20 PM
Please respond to
"General development mailing list of the Eclipse project."


To
eclipse-dev@xxxxxxxxxxx
cc

Subject
[eclipse-dev] Assert and ListenerList







The new org.eclipse.equinox.common plugin (exported by
org.eclipse.core.runtime) has three very familiar classes as new API:
Assert, AssertionFailedException and ListenerList.  There are *many*
copies of these classes in the SDK, so now is a good time to start using
these canonical implementations and deleting your non-API copies.
ListenerList in particular has had some thread safety bugs fixed since
most people copied it, so using the runtime copy will ensure you are
getting all the latest fixes.  Here are the copies of these classes that I
found in a search on today's I-build:

org.eclipse.core.internal.commands.util.Assert
org.eclipse.core.internal.expressions.Assert
org.eclipse.jdt.internal.core.Assert
org.eclipse.jdt.internal.corext.Assert
org.eclipse.jface.text.Assert
org.eclipse.jface.util.Assert
org.eclipse.ltk.internal.core.refactoring.Assert
org.eclipse.ltk.internal.ui.refactoring.Assert
org.eclipse.team.internal.ccvs.core.util.Assert
org.eclipse.team.internal.core.Assert
org.eclipse.test.internal.performance.data.Assert
org.eclipse.ui.internal.components.Assert
org.eclipse.ui.internal.misc.Assert
org.eclipse.update.internal.core.Assert

org.eclipse.core.internal.expressions.AssertionFailedException
org.eclipse.jdt.internal.core.Assert.AssertionFailedException
org.eclipse.jdt.internal.corext.Assert.AssertionFailedException
org.eclipse.jface.text.Assert.AssertionFailedException
org.eclipse.jface.util.Assert.AssertionFailedException
org.eclipse.ltk.internal.core.refactoring.AssertionFailedException
org.eclipse.ltk.internal.ui.refactoring.AssertionFailedException
org.eclipse.team.internal.ccvs.core.util.AssertionFailedException
org.eclipse.team.internal.core.Assert.AssertionFailedException
org.eclipse.test.internal.performance.data.Assert.AssertionFailedException

org.eclipse.ui.internal.components.Assert.AssertionFailedException
org.eclipse.ui.internal.misc.AssertionFailedException
org.eclipse.update.internal.core.Assert.AssertionFailedException

org.eclipse.core.commands.util.ListenerList
org.eclipse.core.internal.runtime.ListenerList
org.eclipse.core.internal.variables.ListenerList
org.eclipse.debug.internal.core.ListenerList
org.eclipse.jdt.internal.corext.refactoring.ListenerList
org.eclipse.jdt.internal.launching.ListenerList
org.eclipse.jface.util.ListenerList
org.eclipse.ltk.internal.core.refactoring.ListenerList
org.eclipse.team.internal.core.ListenerList
org.eclipse.ui.navigator.internal.ListenerList
_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipse-dev


_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipse-dev


Back to the top