Hi,

I have created a pull request to address the exception encountered when a
features repository contains an empty repo:
https://github.com/apache/karaf/pull/2515

This should resolve the issue you reported.

Regards,
JB

On Thu, Apr 2, 2026 at 5:26 PM Jean-Baptiste Onofré <[email protected]> wrote:

> Thanks, let me investigate.
>
> I will keep you posted.
>
> Regards
> JB
>
> On Wed, Apr 1, 2026 at 5:48 PM Matthias Leinweber
> <[email protected]> wrote:
> >
> > Sure
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
> http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
> >
> >   <artifactId>rahla</artifactId>
> >
> >
> >   <groupId>rahla.assembly</groupId>
> >   <modelVersion>4.0.0</modelVersion>
> >
> >   <name>Rahla Assembly</name>
> >
> >   <packaging>karaf-assembly</packaging>
> >
> >
> >   <parent>
> >     <artifactId>reactor</artifactId>
> >     <groupId>rahla</groupId>
> >     <relativePath>../pom.xml</relativePath>
> >     <version>1.3.1-SNAPSHOT</version>
> >   </parent>
> >
> >   <dependencies>
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>framework</artifactId>
> >       <type>kar</type>
> >       <scope>compile</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>framework</artifactId>
> >       <classifier>features</classifier>
> >       <type>xml</type>
> >       <scope>runtime</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>standard</artifactId>
> >       <classifier>features</classifier>
> >       <type>xml</type>
> >       <scope>runtime</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>spring-legacy</artifactId>
> >       <classifier>features</classifier>
> >       <type>xml</type>
> >       <scope>runtime</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>enterprise</artifactId>
> >       <classifier>features</classifier>
> >       <type>xml</type>
> >       <scope>runtime</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <artifactId>apache-camel</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>org.apache.camel.karaf</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >
> >     <dependency>
> >       <groupId>org.apache.karaf.features</groupId>
> >       <artifactId>specs</artifactId>
> >       <classifier>features</classifier>
> >       <type>xml</type>
> >       <scope>runtime</scope>
> >     </dependency>
> >
> >     <dependency>
> >       <artifactId>rahla</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >
> >     <dependency>
> >       <artifactId>fradi</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >
> >     <dependency>
> >       <artifactId>graphsource</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >
> >     <dependency>
> >       <artifactId>jedissource</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >     <dependency>
> >       <artifactId>camel-route-templates</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>runtime</scope>
> >       <type>xml</type>
> >     </dependency>
> >     <dependency>
> >       <artifactId>rahla-logging</artifactId>
> >       <classifier>features</classifier>
> >       <groupId>rahla.feature</groupId>
> >       <scope>compile</scope>
> >       <type>xml</type>
> >     </dependency>
> >
> >   </dependencies>
> >
> >
> >   <build>
> >     <plugins>
> >       <plugin>
> >         <artifactId>maven-install-plugin</artifactId>
> >         <configuration>
> >           <skip>true</skip>
> >         </configuration>
> >         <groupId>org.apache.maven.plugins</groupId>
> >       </plugin>
> >       <plugin>
> >         <groupId>org.apache.maven.plugins</groupId>
> >         <artifactId>maven-deploy-plugin</artifactId>
> >         <configuration>
> >           <skip>true</skip>
> >         </configuration>
> >       </plugin>
> >       <plugin>
> >         <artifactId>karaf-maven-plugin</artifactId>
> >         <configuration>
> >           <archiveTarGz>false</archiveTarGz>
> >           <archiveZip>false</archiveZip>
> >           <startupFeatures>
> >             <feature>rahla-logging</feature>
> >             <feature>wrap</feature>
> >           </startupFeatures>
> >           <bootFeatures>
> >             <feature>standard</feature>
> >             <feature>scr</feature>
> >             <feature>spifly</feature>
> >             <feature>pax-web-http-undertow</feature>
> >             <feature>jolokia</feature>
> >             <feature>rahla</feature>
> >           </bootFeatures>
> >           <installedFeatures>
> >             <feature>fradi</feature>
> >             <feature>graphsource</feature>
> >             <feature>jedissource</feature>
> >             <feature>camel-route-templates</feature>
> >           </installedFeatures>
> >           <libraries>
> >
>  
> <library>mvn:io.prometheus.jmx/jmx_prometheus_javaagent/${jmx_exporter.version}</library>
> >
>  
> <library>mvn:io.opentelemetry.javaagent/opentelemetry-javaagent/${opentelemetry_agent.version}</library>
> >           </libraries>
> >           <blacklistedBundles>
> >             <bundle>mvn:org.apache.groovy/groovy/[4,5)</bundle>
> >
>  <bundle>mvn:com.fasterxml.woodstox/woodstox-core/7.0.0</bundle>
> >             <bundle>mvn:io.undertow/undertow-core/2.2.37.Final</bundle>
> >
>  <bundle>mvn:io.undertow/undertow-servlet/2.2.37.Final</bundle>
> >
>  <!--<bundle>mvn:org.codehaus.woodstox/stax2-api/4.2.1</bundle>
> >
>  <bundle>mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1</bundle>
> >             <bundle>mvn:org.yaml/snakeyaml/1.30</bundle>-->
> >           </blacklistedBundles>
> >           <javase>17</javase>
> >         </configuration>
> >         <groupId>org.apache.karaf.tooling</groupId>
> >       </plugin>
> >     </plugins>
> >     <resources>
> >       <resource>
> >         <directory>src/main/resources</directory>
> >         <filtering>false</filtering>
> >         <includes>
> >           <include>**/*</include>
> >         </includes>
> >       </resource>
> >       <resource>
> >         <directory>src/main/filtered-resources</directory>
> >         <filtering>true</filtering>
> >         <includes>
> >           <include>**/*</include>
> >         </includes>
> >       </resource>
> >     </resources>
> >   </build>
> > </project>
> >
> >
> >
> > Am Mi., 1. Apr. 2026 um 15:22 Uhr schrieb Jean-Baptiste Onofré <
> [email protected]>:
> >>
> >> Hi Matthias
> >>
> >> I suspect it's related to a change I did on the karaf-maven-plugin
> (around assembly).
> >>
> >> Can you share with me the pom.xml to reproduce it ?
> >>
> >> Thanks,
> >>
> >> Regards
> >> JB
> >>
> >> On Tue, Mar 31, 2026 at 6:46 PM Matthias Leinweber <
> [email protected]> wrote:
> >>>
> >>> Dear Karaf Users,
> >>>
> >>> I am currently maintaining a Karaf assembly and am in the process of
> upgrading to version 4.4.10. However, I am encountering an error message
> during startup and would appreciate guidance on how to begin debugging this
> issue
> >>>
> >>> java.lang.RuntimeException: Repository spec is empty string. :
> mvn:org.apache.karaf.features/standard/4.4.10/xml/features
> >>> at
> org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:121)
> >>> at
> org.apache.karaf.features.internal.service.RepositoryImpl.<init>(RepositoryImpl.java:51)
> >>> at
> org.apache.karaf.features.internal.service.RepositoryCacheImpl.create(RepositoryCacheImpl.java:51)
> >>> at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRepository(FeaturesServiceImpl.java:386)
> >>> at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRepository(FeaturesServiceImpl.java:381)
> >>> at
> org.apache.karaf.features.internal.service.BootFeaturesInstaller.addRepositories(BootFeaturesInstaller.java:136)
> >>> at
> org.apache.karaf.features.internal.service.BootFeaturesInstaller.installBootFeatures(BootFeaturesInstaller.java:95)
> >>> at
> org.apache.karaf.features.internal.service.BootFeaturesInstaller.start(BootFeaturesInstaller.java:89)
> >>> at
> org.apache.karaf.features.internal.osgi.Activator.doStart(Activator.java:215)
> >>> at
> org.apache.karaf.util.tracker.BaseActivator.run(BaseActivator.java:312)
> >>> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
> >>> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
> >>> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
> >>> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
> >>> at java.base/java.lang.Thread.run(Thread.java:1583)
> >>> Caused by: shaded.org.ops4j.lang.NullArgumentException: Repository
> spec is empty string.
> >>> at
> shaded.org.ops4j.lang.NullArgumentException.validateNotEmpty(NullArgumentException.java:108)
> >>> at
> org.ops4j.pax.url.mvn.internal.config.MavenRepositoryURL.<init>(MavenRepositoryURL.java:221)
> >>> at
> org.ops4j.pax.url.mvn.internal.config.MavenConfigurationImpl.getRepositories(MavenConfigurationImpl.java:401)
> >>> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.selectRemoteRepositories(AetherBasedResolver.java:928)
> >>> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:368)
> >>> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:352)
> >>> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:322)
> >>> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:312)
> >>> at
> org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:120)
> >>> at java.base/java.net.URL.openStream(URL.java:1325)
> >>> at
> org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:114)
> >>> ... 14 more
> >>>
> >>>
> >>> Could you please advise on the best approach or specific logs I should
> examine to identify the root cause? I get this erorr for every feature
> defined in my karaf-assembly
> >>>
> >>> Best regards,
> >>>
> >>> Matthias Leinweber
> >>>
>

Reply via email to