Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 352732

Summary: Adding the same log listener causes the log filters to get out of sync
Product: [Eclipse Project] Equinox Reporter: Thomas Watson <tjwatson>
Component: FrameworkAssignee: Thomas Watson <tjwatson>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 3.7   
Target Milestone: 3.7.1   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Thomas Watson CLA 2011-07-21 08:36:29 EDT
There is a bug in ArrayMap that incorrectly handles putting a value with a key that already exists in the map.  Instead of replacing the value the value is inserted into the values list which causes the values list to be larger than the keys list and causes it to be out of sync and the map no longer works properly.

This bug is surfaced when someone tries to add the same log listener to the LogReaderService multiple times.
Comment 1 DJ Houghton CLA 2011-07-21 09:30:16 EDT
.
Comment 2 Thomas Watson CLA 2011-07-21 10:59:13 EDT
I released a fix to master (Juno) at:

http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=80b214bc7b4c693a39b24d328473694e3b54492d

This includes adding many tests for the extended log service that were not integrated into the tests for indigo.  These tests would have caught this issue.

leaving open to cherry pick the fix for 3.7.1.