Skip to content

Commit 00345fe

Browse files
committed
Add exception if the current metadata of a version is null
1 parent c8e0d15 commit 00345fe

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);
@@ -350,15 +350,11 @@ private function sanitize(?string $string): ?string
350350
return $string;
351351
}
352352

353-
private function hasMetadataChanged(?Metadata $currentMetadata, Metadata $metadata): bool
353+
private function hasMetadataChanged(Metadata $currentMetadata, Metadata $metadata): bool
354354
{
355-
$currentData = $currentMetadata?->toComposerArray();
355+
$currentData = $currentMetadata->toComposerArray();
356356
$data = $metadata->toComposerArray();
357357

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

0 commit comments

Comments
 (0)