[ https://issues.apache.org/jira/browse/SOLR-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12658251#action_12658251 ]
Kay Kay commented on SOLR-912: ------------------------------ | We also need to make sure we don't eliminate any public constructors, which seems to be the case based on my quick glance at the latest patch. <code> - public NamedList(List nameValuePairs) { - nvPairs=nameValuePairs; + protected NamedList(List<Map.Entry<String, T>> nameValuePairs) { + nvPairs = nameValuePairs; - } </code> As part of ensuring type-safety , the previous code had a heterogenous List ctor. as before. I changed the access level and added another public ctor. ( Object [] ) with deprecated tag to it so that people are still able to use the functionality. Otherwise - retaining the same signature after type safety would imply - people passing in a List of String-s and T-s , when the List expects Map.Entry<String , T > and would cause more confusion. Thanks to the erasure of generics , List and List<Map.Entry<String, T>> are all equal , not helping here. If backward compatibility is the key here- I can revisit the patch again ensuring the same. | If there are performance gains to be had in the common case i'm all for it ... but i still feel like i'm not understanding the original goal: how does this approach give us more type safety? When I logged the issue - type-safety was the major reason behind the same. When I submitted by first patch and did the benchmarking - performance was also found to be a major constraint , (with incremental addition and creation of iterator objects). NamedList seemed to be used all over the place. As long as we preserve the contract of the methods - this should definitely give an additional boost - since I discovered as part of profiling of the launch of SolrCore ( CoreContainer.Initializer.initalize() .. ) . > org.apache.solr.common.util.NamedList - Typesafe efficient variant - > ModernNamedList introduced - implementing the same API as NamedList > ---------------------------------------------------------------------------------------------------------------------------------------- > > Key: SOLR-912 > URL: https://issues.apache.org/jira/browse/SOLR-912 > Project: Solr > Issue Type: Improvement > Components: search > Affects Versions: 1.4 > Environment: Tomcat 6, JRE 6, Solr 1.3+ nightlies > Reporter: Kay Kay > Priority: Minor > Fix For: 1.4 > > Attachments: NLProfile.java, SOLR-912.patch, SOLR-912.patch > > Original Estimate: 72h > Remaining Estimate: 72h > > The implementation of NamedList - while being fast - is not necessarily > type-safe. I have implemented an additional implementation of the same - > ModernNamedList (a type-safe variation providing the same interface as > NamedList) - while preserving the semantics in terms of ordering of elements > and allowing null elements for key and values (keys are always Strings , > while values correspond to generics ). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.