diff --git a/lib/manager/maven/extract.ts b/lib/manager/maven/extract.ts
index bf535024ef3f3f271b26f97fcd26b83943e4a070..bfd5057152de72ae07dda40d0ba346cc9f959fd0 100644
--- a/lib/manager/maven/extract.ts
+++ b/lib/manager/maven/extract.ts
@@ -179,8 +179,9 @@ export function extractPackage(rawContent: string, packageFile: string = null) {
     });
   }
 
-  const parentPath = project.valueWithPath('parent.relativePath');
-  if (parentPath) {
+  if (packageFile && project.childNamed('parent')) {
+    const parentPath =
+      project.valueWithPath('parent.relativePath') || '../pom.xml';
     result.parent = resolveParentFile(packageFile, parentPath);
   }
 
@@ -204,10 +205,16 @@ export function resolveProps(packages: PackageFile[]): PackageFile[] {
   // which allows inheritance/overriding.
   packageFileNames.forEach(name => {
     const hierarchy: Record<string, MavenProp>[] = [];
+    const alreadyExtracted: Record<string, boolean> = {};
     let pkg = extractedPackages[name];
     while (pkg) {
       hierarchy.unshift(pkg.mavenProps);
-      pkg = extractedPackages[pkg.parent];
+      if (pkg.parent && !alreadyExtracted[pkg.parent]) {
+        alreadyExtracted[pkg.parent] = true;
+        pkg = extractedPackages[pkg.parent];
+      } else {
+        pkg = null;
+      }
     }
     hierarchy.unshift({});
     // @ts-ignore
diff --git a/test/manager/maven/__snapshots__/index.spec.ts.snap b/test/manager/maven/__snapshots__/index.spec.ts.snap
index c9dc7c465501603a453e3d991c622b8a420cf856..0c5c78c660ec923a5885794635f4aeb4787efdb0 100644
--- a/test/manager/maven/__snapshots__/index.spec.ts.snap
+++ b/test/manager/maven/__snapshots__/index.spec.ts.snap
@@ -143,6 +143,7 @@ Array [
       },
     ],
     "packageFile": "random.pom.xml",
+    "parent": "../pom.xml",
   },
 ]
 `;
diff --git a/test/manager/maven/_fixtures/parent.pom.xml b/test/manager/maven/_fixtures/parent.pom.xml
index 2da5281232024cf6244b1563d5acda7a5fe67be8..aea9626f8e448990447856bf0edcc0d745bde1fb 100644
--- a/test/manager/maven/_fixtures/parent.pom.xml
+++ b/test/manager/maven/_fixtures/parent.pom.xml
@@ -1,5 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0">
+  <parent>
+    <groupId>org.example</groupId>
+    <artifactId>child</artifactId>
+    <version>42</version>
+    <relativePath>child.pom.xml</relativePath>
+  </parent>
+
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.example</groupId>
   <artifactId>ExamplePomParent</artifactId>