Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 52478 invoked from network); 10 Jun 2009 12:24:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Jun 2009 12:24:29 -0000 Received: (qmail 51255 invoked by uid 500); 10 Jun 2009 12:24:04 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 50859 invoked by uid 500); 10 Jun 2009 12:24:03 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 50471 invoked by uid 99); 10 Jun 2009 12:21:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Jun 2009 12:21:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Jun 2009 12:21:49 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 496B0238888E; Wed, 10 Jun 2009 12:21:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r783314 - in /lucene/java/trunk/src: java/org/apache/lucene/index/IndexReader.java test/org/apache/lucene/index/TestIndexReader.java Date: Wed, 10 Jun 2009 12:21:28 -0000 To: java-commits@lucene.apache.org From: uschindler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090610122128.496B0238888E@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: uschindler Date: Wed Jun 10 12:21:27 2009 New Revision: 783314 URL: http://svn.apache.org/viewvc?rev=783314&view=rev Log: LUCENE-1453: Fix IndexReader.open() to close directory, when open() of the underlying DirectoryReader failed. Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexReader.java Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java?rev=783314&r1=783313&r2=783314&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java Wed Jun 10 12:21:27 2009 @@ -208,7 +208,7 @@ * Use {@link #open(Directory, boolean)} instead * @param path the path to the index directory */ public static IndexReader open(String path) throws CorruptIndexException, IOException { - return new DirectoryOwningReader(open(FSDirectory.getDirectory(path), null, null, false)); + return open(path, false); } /** Returns an IndexReader reading the index in an @@ -225,7 +225,15 @@ * Use {@link #open(Directory, boolean)} instead */ public static IndexReader open(String path, boolean readOnly) throws CorruptIndexException, IOException { - return new DirectoryOwningReader(open(FSDirectory.getDirectory(path), null, null, readOnly)); + final Directory dir = FSDirectory.getDirectory(path); + IndexReader r = null; + try { + r = open(dir, null, null, readOnly); + } finally { + if (r == null) + dir.close(); + } + return new DirectoryOwningReader(r); } /** Returns a read/write IndexReader reading the index in an FSDirectory in the named @@ -237,7 +245,7 @@ * Use {@link #open(Directory, boolean)} instead */ public static IndexReader open(File path) throws CorruptIndexException, IOException { - return new DirectoryOwningReader(open(FSDirectory.getDirectory(path), null, null, false)); + return open(path, false); } /** Returns an IndexReader reading the index in an @@ -254,7 +262,15 @@ * Use {@link #open(Directory, boolean)} instead */ public static IndexReader open(File path, boolean readOnly) throws CorruptIndexException, IOException { - return new DirectoryOwningReader(open(FSDirectory.getDirectory(path), null, null, readOnly)); + final Directory dir = FSDirectory.getDirectory(path); + IndexReader r = null; + try { + r = open(dir, null, null, readOnly); + } finally { + if (r == null) + dir.close(); + } + return new DirectoryOwningReader(r); } /** Returns a read/write IndexReader reading the index in Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexReader.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexReader.java?rev=783314&r1=783313&r2=783314&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexReader.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexReader.java Wed Jun 10 12:21:27 2009 @@ -1202,6 +1202,8 @@ } catch (FileNotFoundException e) { // expected } + + dir.close(); } private void deleteReaderReaderConflict(boolean optimize) throws IOException @@ -1543,7 +1545,7 @@ File indexDir = new File(tempDir, "lucenetestdiralreadyclosed"); try { - FSDirectory dir = FSDirectory.open(indexDir); + FSDirectory dir = FSDirectory.getDirectory(indexDir); IndexWriter w = new IndexWriter(indexDir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.LIMITED); w.setUseCompoundFile(false); Document doc = new Document(); @@ -1631,6 +1633,7 @@ } catch (NoSuchDirectoryException nsde) { // expected } + dir.close(); } // LUCENE-1509