From e7115ab7a09adc2b29f3db9fcd97be2e40bcf8e5 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Wed, 12 Aug 2015 15:09:37 +0200
Subject: [PATCH] Properly handle record w/o local record fields

* src/HAB/Pica/Record/TitleRecord.php (setFields): Properly handle
  record w/o local record fields.
---
 src/HAB/Pica/Record/TitleRecord.php                    |  8 +++++++-
 .../unit-tests/src/HAB/Pica/Record/TitleRecordTest.php | 10 ++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/HAB/Pica/Record/TitleRecord.php b/src/HAB/Pica/Record/TitleRecord.php
index 94660b1..71cf43f 100644
--- a/src/HAB/Pica/Record/TitleRecord.php
+++ b/src/HAB/Pica/Record/TitleRecord.php
@@ -75,7 +75,13 @@ class TitleRecord extends NestedRecord
                     $this->addLocalRecord($localRecord);
                 } else {
                     $records = $this->getLocalRecords();
-                    $localRecord = end($records);
+                    // Handle malformed Pica record w/ missing local record field
+                    if (empty($records)) {
+                        $localRecord = new LocalRecord();
+                        $this->addLocalRecord($localRecord);
+                    } else {
+                        $localRecord = end($records);
+                    }
                     if ($level === 1) {
                         $localRecord->append($field);
                     } else {
diff --git a/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php b/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php
index 9753e11..8a06fcb 100644
--- a/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php
+++ b/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php
@@ -121,4 +121,14 @@ class TitleRecordTest extends PHPUnit_FrameWork_TestCase
         $r->addLocalRecord($l);
         $this->assertTrue($r->containsLocalRecord($l));
     }
+
+    public function testTitleRecordWithNoLocalRecordIndicator ()
+    {
+        $record = new TitleRecord();
+        $fields = array();
+        $fields []= new Field('003@', 0);
+        $fields []= new Field('200@', 0);
+        $record->setFields($fields);
+        $this->assertNotEmpty($record->getLocalRecords());
+    }
 }
-- 
GitLab