Skip to content

Commit 1c7e27a

Browse files
committed
Add exception if the current metadata of a version is null
1 parent 2a4a28c commit 1c7e27a

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
@@ -216,7 +216,7 @@ private function updateVersion(Version $version, CompletePackageInterface $data,
216216
{
217217
$metadata = $this->createMetadata($version, $data, $driver);
218218

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

222222
$this->entityManager->persist($metadata);
@@ -351,15 +351,11 @@ private function sanitize(?string $string): ?string
351351
return $string;
352352
}
353353

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

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

0 commit comments

Comments
 (0)