[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2192) AbstractMap from org.jboss.seam.international.Messages needs containsKey()

Pete Muir (JIRA) jira-events at lists.jboss.org
Tue Nov 20 06:19:18 EST 2007

    [ http://jira.jboss.com/jira/browse/JBSEAM-2192?page=comments#action_12388384 ] 
Pete Muir commented on JBSEAM-2192:

Its due to AbstractMap using the implementation of entrySet() for all operations apart from get(). building the entrySet() is slooow as ResourceBundle is an enumeration of keys not key, value pairs.

I will reimplement some of methods of Map using a more performant variant, and making the map immutable.

> AbstractMap from org.jboss.seam.international.Messages needs containsKey()
> --------------------------------------------------------------------------
>                 Key: JBSEAM-2192
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2192
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0.CR2
>         Environment: Mac OSX, Jboss 4.2.1
>            Reporter: Damian Harvey
>         Assigned To: Pete Muir
>             Fix For: 2.0.1.GA
> Performing a containsKey() on the AbstractMap from org.jboss.seam.international.Messages results in severe performance problems (800ms on 1,800 properties compared to under 1ms for a get())
> eg:
> @In 
> Map<String, String> messages; //This is the Seam messages bundle
> public void aMethod() {
>    if(messages.containsKey("key.mykey")) {
>        //do something
>    }
> }
> I traced the containsKey for a while but it went on a mad run through ELResolvers and Pages.java etc. 
> Simple solution is to add a containsKey to the AbstractMap:
> 	public boolean containsKey(String key) {
> 		if(messages.get(key).equals(key)) {
> 			return false;
> 		} else {
> 			return true;
> 		}
> 	}
> Would be nice to know why this 'mad run' happened though. Hopefully not symptomatic of something wrong deeper down.
> Cheers,
> Damian.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list