diff --git a/module/VuFind/src/VuFind/Db/Table/ChangeTracker.php b/module/VuFind/src/VuFind/Db/Table/ChangeTracker.php index f2020fa7c86bb96d0334fbd9babf8b3f6830ceca..f9a957d7123e33e98ecd8cc7ee092b6ee121c349 100644 --- a/module/VuFind/src/VuFind/Db/Table/ChangeTracker.php +++ b/module/VuFind/src/VuFind/Db/Table/ChangeTracker.php @@ -203,7 +203,7 @@ class ChangeTracker extends Gateway // If first indexed is null, we're restoring a deleted record, so // we need to treat it as new -- we'll use the current time. - if (empty($this->first_indexed)) { + if (empty($row->first_indexed)) { $row->first_indexed = $row->last_indexed; } diff --git a/module/VuFind/tests/integration-tests/src/VuFindTest/Db/Table/ChangeTrackerTest.php b/module/VuFind/tests/integration-tests/src/VuFindTest/Db/Table/ChangeTrackerTest.php index 10f3900a30d16abc10f5b50609e6a031ca98c3f5..799335d1fb71f0b4b5591d9c2f9b1b5775662686 100644 --- a/module/VuFind/tests/integration-tests/src/VuFindTest/Db/Table/ChangeTrackerTest.php +++ b/module/VuFind/tests/integration-tests/src/VuFindTest/Db/Table/ChangeTrackerTest.php @@ -77,6 +77,10 @@ class ChangeTrackerTest extends \VuFindTest\Unit\DbTestCase $this->assertTrue(empty($row->deleted)); $this->assertEquals($row->first_indexed, $row->last_indexed); $this->assertEquals($row->last_record_change, '2012-01-17 20:46:10'); + $previousFirstIndexed = $row->first_indexed; + + // Sleep two seconds to be sure timestamps change: + sleep(2); // Index a later record version -- this should lead to changes: $tracker->index($core, 'test1', 1326833176); @@ -89,6 +93,9 @@ class ChangeTrackerTest extends \VuFindTest\Unit\DbTestCase ); $this->assertEquals($row->last_record_change, '2012-01-17 20:46:16'); + // Make sure the "first indexed" date hasn't changed! + $this->assertEquals($row->first_indexed, $previousFirstIndexed); + // Delete the record: $tracker->markDeleted($core, 'test1'); $row = $tracker->retrieve($core, 'test1'); @@ -108,6 +115,7 @@ class ChangeTrackerTest extends \VuFindTest\Unit\DbTestCase $this->assertTrue(is_object($row)); $this->assertTrue(empty($row->deleted)); $this->assertEquals($row->last_record_change, '2012-01-17 20:46:10'); + $this->assertEquals($row->first_indexed, $row->last_indexed); // Clean up after ourselves: $tracker->delete(array('core' => $core));