From dev-return-97328-apmail-lucene-dev-archive=lucene.apache.org@lucene.apache.org Tue May 1 07:30:10 2012 Return-Path: X-Original-To: apmail-lucene-dev-archive@www.apache.org Delivered-To: apmail-lucene-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 79FC39BD9 for ; Tue, 1 May 2012 07:30:10 +0000 (UTC) Received: (qmail 47557 invoked by uid 500); 1 May 2012 07:30:08 -0000 Delivered-To: apmail-lucene-dev-archive@lucene.apache.org Received: (qmail 47407 invoked by uid 500); 1 May 2012 07:30:06 -0000 Mailing-List: contact dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list dev@lucene.apache.org Received: (qmail 47388 invoked by uid 99); 1 May 2012 07:30:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 May 2012 07:30:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 May 2012 07:30:05 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 09A6B4297F3 for ; Tue, 1 May 2012 07:29:45 +0000 (UTC) Date: Tue, 1 May 2012 07:29:45 +0000 (UTC) From: "Uwe Schindler (JIRA)" To: dev@lucene.apache.org Message-ID: <2015935823.12657.1335857385040.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <2052498100.8249.1335767210265.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (SOLR-3424) PhoneticFilterFactory threadsafety bug MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/SOLR-3424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13265696#comment-13265696 ] Uwe Schindler commented on SOLR-3424: ------------------------------------- Hi David, looks good, but there is a bug: The refactoring of the REGISTRY static map was an anonymous inner class before (new HashMap() {{ hashmap ctor code }}; (please note double parens). Now it is assigned to a static field, but the initializer code is an inline ctor of the factory, means the initialization runs on every instantiation. - add *static* before the anonymous ctor: {code:java} private static final Map> registry = new HashMap>(6); static { registry.put(... {code} - or leave the initializer as it was before (anonymous HashMap subclass with overridden ctor). in resolve encoder maybe remove the clazz variable and directly return the result of forName(). I do't like non-final variables initialized with null because that prevents compilation failures on missing initialization and null could be returned - especially with lots of try-catch blocks. > PhoneticFilterFactory threadsafety bug > -------------------------------------- > > Key: SOLR-3424 > URL: https://issues.apache.org/jira/browse/SOLR-3424 > Project: Solr > Issue Type: Bug > Components: Schema and Analysis > Affects Versions: 3.6, 4.0 > Reporter: David Smiley > Assignee: David Smiley > Priority: Minor > Fix For: 4.0 > > Attachments: SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch, SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch > > > PhoneticFilterFactory has a static HashMap registry mapping an encoder name to an implementation. There is a ReentrantLock used when the map is modified (when the encoder config specifies a class name). However, this map, which can be accessed by multiple indexing threads, isn't guarded on any of the reads, which isn't just the common path but also the error messages which dump the registry into the error message. > I realize the likelihood of a problem is extremely slim, but a bug's a bug. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional commands, e-mail: dev-help@lucene.apache.org