NullPointerException when used with maven-aether-provider (dependency of Oz, pomegranate)

Description

Originally debugged here: https://github.com/juxt/pack.alpha/issues/64

Reproducible script (run with ./script.clj)

What I remember from my analysis: tdeps uses a class to load up a service container in maven somewhere. This class will populate a bunch of classes that are required for common maven usage into the service container. However, due to maven-aether-provider providing one of the classes (and winning out over the version that tdeps expects) but using a different inheritance, when tdeps later tries to get the version resolver, it is unable to find one due to the class not being the one it expects (and the service locator finding things by class / inheritance). Eventually this means a null service, and trying to do interop with that results in an exception.

(some of these details may be slightly incorrect, but I'm confident the bones of it are correct).

I did note when testing that using the latest version of maven-aether-provider the exception did not occur, but I haven't tested that pomegranate is still functional with that change. There are more up to date versions of pomegranate which may have updated dependencies and work correctly with tdeps.

Environment

None

Assignee

Unassigned

Reporter

Dominic Monroe

Labels

None

Approval

None

Patch

None

Priority

Major
Configure