I.e. a relative IRI like first-segment/second-segment:with-colon
or a-segment?queryParam=valueWih:Colon
(which are perfectly fine relative IRIs by RFC-3987) are considered abolute IRIs.
And this is because AbsoluteIri
class tells absolute and relative IRIs apart by presence of the colon, which is wrong (by the RFC spec).
One of the possible fixes could be replacing line 88 in AbsoluteIri.java
with somehing similar to if (iri.matches("[^?/]*:.*")) {
, so that IRIs which contain colon in query or second segment, wouldn't be considered absolute.