Skip to content

Commit a2f343a

Browse files
committed
Add exception if the current metadata of a version is null
1 parent bb8937f commit a2f343a

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/Doctrine/Entity/Version.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,18 @@ public function getPackage(): Package
113113
return $this->package;
114114
}
115115

116-
public function getCurrentMetadata(): ?Metadata
116+
public function hasCurrentMetadata(): bool
117117
{
118+
return null !== $this->currentMetadata;
119+
}
120+
121+
public function getCurrentMetadata(): Metadata
122+
{
123+
if (null === $this->currentMetadata) {
124+
// Packages are only allowed to have no current metadata during import
125+
throw new \RuntimeException(sprintf('No current metadata found for package: %s %s', $this->package->getName(), $this->name));
126+
}
127+
118128
return $this->currentMetadata;
119129
}
120130

src/Package/PackageMetadataResolver.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ private function updateVersion(Version $version, CompletePackageInterface $data,
215215
{
216216
$metadata = $this->createMetadata($version, $data, $driver);
217217

218-
if ($this->hasMetadataChanged($version->getCurrentMetadata(), $metadata)) {
218+
if (!$version->hasCurrentMetadata() || $this->hasMetadataChanged($version->getCurrentMetadata(), $metadata)) {
219219
$version->setCurrentMetadata($metadata);
220220

221221
$this->entityManager->persist($metadata);
@@ -349,15 +349,11 @@ private function sanitize(?string $string): ?string
349349
return $string;
350350
}
351351

352-
private function hasMetadataChanged(?Metadata $currentMetadata, Metadata $metadata): bool
352+
private function hasMetadataChanged(Metadata $currentMetadata, Metadata $metadata): bool
353353
{
354-
$currentData = $currentMetadata?->toComposerArray();
354+
$currentData = $currentMetadata->toComposerArray();
355355
$data = $metadata->toComposerArray();
356356

357-
if (null === $currentData) {
358-
return true;
359-
}
360-
361357
// Fields that shouldn't trigger a new revision
362358
$excludeFields = ['abandoned', 'default-branch'];
363359

0 commit comments

Comments
 (0)