Просмотр исходного кода

[ZF-9680] Fatal error: Call to a member function isDeleted() on a non-object in Zend/Search/Lucene.php on line 709

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@22220 44c647ce-9c0f-0410-b52a-842ac1e357ba
jan 15 лет назад
Родитель
Сommit
910e56fe7d
2 измененных файлов с 21 добавлено и 0 удалено
  1. 2 0
      library/Zend/Search/Lucene.php
  2. 19 0
      tests/Zend/Search/Lucene/LuceneTest.php

+ 2 - 0
library/Zend/Search/Lucene.php

@@ -707,6 +707,8 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      */
     public function isDeleted($id)
     {
+        $this->commit();
+
         if ($id >= $this->_docCount) {
             require_once 'Zend/Search/Lucene/Exception.php';
             throw new Zend_Search_Lucene_Exception('Document id is out of the range.');

+ 19 - 0
tests/Zend/Search/Lucene/LuceneTest.php

@@ -517,6 +517,25 @@ class Zend_Search_Lucene_LuceneTest extends PHPUnit_Framework_TestCase
 
         $this->_clearDirectory(dirname(__FILE__) . '/_index/_files');
     }
+
+    /**
+     * @group ZF-9680
+     */
+    public function testIsDeletedWithoutExplicitCommit()
+    {
+        //$this->_clearDirectory(dirname(__FILE__) . '/_index/_files');
+
+        $index = Zend_Search_Lucene::create(dirname(__FILE__) . '/_index/_files');
+
+        $document = new Zend_Search_Lucene_Document;
+        $document->addField(Zend_Search_Lucene_Field::Keyword('_id', 'myId'));
+        $document->addField(Zend_Search_Lucene_Field::Keyword('bla', 'blubb'));
+        $index->addDocument($document);
+
+        $this->assertFalse($index->isDeleted(0));
+
+        $this->_clearDirectory(dirname(__FILE__) . '/_index/_files');
+    }
 }
 
 if (PHPUnit_MAIN_METHOD == 'Zend_Search_Lucene_LuceneTest::main') {