Skip to content

Commit 442681b

Browse files
committed
fix reference deletion to not be case sensitive
1 parent c614b96 commit 442681b

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Changelog
44
1.x
55
===
66

7+
1.11.1
8+
------
9+
10+
* Fix regression of 1.11.0: Reference deletion should work regardless of upper or lowercase of the type names in XML data.
11+
712
1.11.0
813
------
914

src/Jackalope/Transport/DoctrineDBAL/XmlPropsRemover/XmlPropsRemover.php

+11-7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace Jackalope\Transport\DoctrineDBAL\XmlPropsRemover;
44

5+
use PHPCR\PropertyType;
6+
57
/**
68
* @internal
79
*/
@@ -99,14 +101,16 @@ private function startHandler($parser, $name, $attrs): void
99101
if ($name === 'SV:PROPERTY') {
100102
$svName = $attrs['SV:NAME'];
101103

102-
if (\in_array($svName, $this->propertyNames)) {
104+
if (\in_array((string) $svName, $this->propertyNames, true)) {
103105
$this->skipCurrentTag = true;
104-
$svType = $attrs['SV:TYPE'];
105-
106-
if ($svType === 'reference') {
107-
$this->references[] = $svName;
108-
} elseif ($svType === 'weakreference') {
109-
$this->weakReferences[] = $svName;
106+
// use PHPCR PropertyType to avoid encoding issues
107+
switch (PropertyType::valueFromName($attrs['SV:TYPE'])) {
108+
case PropertyType::REFERENCE:
109+
$this->references[] = $svName;
110+
break;
111+
case PropertyType::WEAKREFERENCE:
112+
$this->weakReferences[] = $svName;
113+
break;
110114
}
111115

112116
return;

tests/Jackalope/Transport/DoctrineDBAL/XmlParser/XmlToPropsParserTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public function testParseWithoutSvValueNode(): void
108108
<sv:value length="15">nt:unstructured</sv:value>
109109
</sv:property>
110110
<sv:property sv:name="block_1_ref" sv:type="reference" sv:multi-valued="0">1922ec03-b5ed-40cf-856c-ecfb8eac12e2</sv:property>
111-
<sv:property sv:name="block_2_ref" sv:type="reference" sv:multi-valued="0">94c9aefe-faaa-4896-816b-5bfc575681f0</sv:property>
111+
<sv:property sv:name="block_2_ref" sv:type="Reference" sv:multi-valued="0">94c9aefe-faaa-4896-816b-5bfc575681f0</sv:property>
112112
<sv:property sv:name="block_3_ref" sv:type="weakreference" sv:multi-valued="0">a8ae4420-095b-4045-8775-b731cbae2fe1</sv:property>
113113
<sv:property sv:name="external_reference" sv:type="reference" sv:multi-valued="0">
114114
<sv:value length="36">842e61c0-09ab-42a9-87c0-308ccc90e6f6</sv:value>

0 commit comments

Comments
 (0)