# Glazed Lists 1.9.0 Release Notes

Glazed Lists 1.9.0 is a stable maintenance release suitable for production use.

It contains some changes that are not backwards compatible:

- we dropped Java 1.4 support, Glazed Lists 1.9 is built against Java 1.5.
- we deprecated the existing Swing and SWT model adapters and introduced new ones which do not wrap the source list in a thread proxy list anymore.
- the SWT extension is now independent of JFace.

Please see the Upgade Notes for details.

### Glazed Lists Features

- API Compatibility with ArrayList
- Generic TableModels
- Easy dynamic filtering & sorting
- High performance
- Designed for concurrency
- Swing or SWT
- Free and open

### Download

Glazed Lists is distributed with support for Java 1.5 or higher. Download is available here.

Glazed Lists is also deployed to the central Maven repository.

groupId | net.java.dev.glazedlists
artifactId | glazedlists_java15
version | 1.9.0

### Documentation

- Screencasts
- Tutorial
- FAQ
- Mailing List

### Changelog

#### Bug

- [GLAZEDLISTS-412] - GroupingList doesn't handle mass update ListEvents
- [GLAZEDLISTS-453] - SeparatorList incorrectly throws ConcurrentModificationException when setting comparator
- [GLAZEDLISTS-463] - incorrect jar index contains 'com' directory
- [GLAZEDLISTS-471] - RFE: SwingProxyCalculation
- [GLAZEDLISTS-476] - Glazed Lists 1.8.0 breaks classloader (ECJ)
- [GLAZEDLISTS-479] - EventListJXTableSorting.install sets the comparator to null
- [GLAZEDLISTS-486] - GroupingList breaks (NPE/assertion failure) on transaction of updates
- [GLAZEDLISTS-491] - GroupingList fails with NPE under certain update scenarios
- [GLAZEDLISTS-493] - AutoCompleteSupport: custom renderer gets overwritten when installing with format
- [GLAZEDLISTS-498] - Memory leak in ListEventAssembler
- [GLAZEDLISTS-500] - SeparatorList: some element updates are not handled correctly
- [GLAZEDLISTS-501] - Regression: null-handling in AutoCompleteSupport with strict mode
- [GLAZEDLISTS-502] - FilterList: concurrency problem involving ThreadedMatcherEditor
- [GLAZEDLISTS-504] - NullPointerException in AutoCompleteSupport.CheckStrictModeInvariantRunnable
- [GLAZEDLISTS-505] - MemoryLeak in SeparatorList
- [GLAZEDLISTS-513] - NullPointerException in BarcodeNode
- [GLAZEDLISTS-515] - AbstractMatchEditor is not inheritable
- [GLAZEDLISTS-516] - missing remove of registered ListEventHandler in dispose method of JEventListPanel causes memory leak
- [GLAZEDLISTS-517] - Elements are inserted at wrong index
- [GLAZEDLISTS-520] - TreeList.Format comparator signature incorrect
- [GLAZEDLISTS-522] - Another NullpointerException in GroupingList
- [GLAZEDLISTS-524] - List selection changes after filtering when first in list selected
- [GLAZEDLISTS-528] - SortedList returns wrong "indexOf" when using SortedList .AVOID_MOVING_ELEMENTS
- [GLAZEDLISTS-530] - Confusing Javadoc comment in typeSafetyListener(EventList<E> source, Set<Class> types) in ca.odell.glazedlists.GlazedLists
- [GLAZEDLISTS-533] - Getting writelock after obtaining a readlock causes deadlock
- [GLAZEDLISTS-534] - Ensure ReadWriteLock is defined for BasicEventList
- [GLAZEDLISTS-535] - Fail fast if a null event listener is added to or removed from an EventList
- [GLAZEDLISTS-540] - TextComponentMatcherEditor Constructor uses wrong generic type
- [GLAZEDLISTS-546] - Exception in JSeparatorTable
- [GLAZEDLISTS-550] - signature of GlazedLists.readOnlyList does not take generics bounds into consideration
- [GLAZEDLISTS-557] - TreeList.remove(int) returns wrong type

#### Improvement

- [GLAZEDLISTS-465] - provide Swing adapters without implicit thread proxying
- [GLAZEDLISTS-466] - provide SWT adapters without implicit thread proxying
- [GLAZEDLISTS-468] - drop JDK 1.4 support
- [GLAZEDLISTS-478] - Upgrade to SwingX 1.0
- [GLAZEDLISTS-480] - Add high performance version of FunctionList
- [GLAZEDLISTS-483] - Add publisher and lock to eventList and eventListOf
- [GLAZEDLISTS-494] - Make ExpandAndCollapseKeyListener on TreeTable configurable
- [GLAZEDLISTS-496] - provide source jar for latest build
- [GLAZEDLISTS-497] - include source jar in maven upload bundle
- [GLAZEDLISTS-503] - provide SWTThreadProxyCalculation
- [GLAZEDLISTS-508] - [solved] Could 'rebuildMatcher' in 'CompositeMatcherEditor' become 'protected'?
- [GLAZEDLISTS-510] - Add ability to handle covariant element types in GlazedLists.readOnlyList a'la Collections.unmodifiableXXXX
- [GLAZEDLISTS-514] - Change ca.odell.glazedlists.ObservableElementList.elementChanged(E) signature to accept Object
- [GLAZEDLISTS-543] - make SWT extension independent of JFace
- [GLAZEDLISTS-547] - Implement DefaultEventTableViewer#setTableFormat(TableFormat)

#### Task

- [GLAZEDLISTS-511] - Adapt ANT build file to new download location at java.net site
- [GLAZEDLISTS-512] - Adapt the issue browser demo application to use JIRA at the new java.net site
- [GLAZEDLISTS-518] - adapt ANT build to support java.net maven repository manager
- [GLAZEDLISTS-532] - update build to use new download location
- [GLAZEDLISTS-536] - Upgrade to latest Hibernate 3.x version
- [GLAZEDLISTS-544] - update SWT dependency to 3.7.1
- [GLAZEDLISTS-545] - update tutorial for 1.9
- [GLAZEDLISTS-554] - Replace TIntArrayList implementation because of incompatible licence

### License

Glazed Lists is distributed under your choice of two popular open source licenses, the LGPL and the MPL.

- You may distribute Glazed Lists free of charge
- You may use Glazed Lists in a commercial or closed source application
- You may not create a closed-source fork of Glazed Lists

### Developers

- Holger Brands
- James Lemieux
- Jesse Wilson
- Kevin Maltby
- Rob Eden

Glazed Lists, Copyright © 2003-2013 publicobject.com, O'Dell Engineering Ltd.