diff --git a/core/src/main/java/org/commonjava/indy/core/content/DefaultDownloadManager.java b/core/src/main/java/org/commonjava/indy/core/content/DefaultDownloadManager.java index ac69bee269..6d759e5c7d 100644 --- a/core/src/main/java/org/commonjava/indy/core/content/DefaultDownloadManager.java +++ b/core/src/main/java/org/commonjava/indy/core/content/DefaultDownloadManager.java @@ -179,8 +179,31 @@ public List list( final ArtifactStore store, final String path, f { try { - final List results = transfers.listAll( - locationExpander.expand( new VirtualResource( LocationUtils.toLocations( store ), path ) ), eventMetadata ); + List members; + try + { + members = storeManager.query() + .enabledState( true ) + .getOrderedConcreteStoresInGroup( store.getPackageType(), store.getName() ); + } + catch ( final IndyDataException e ) + { + throw new IndyWorkflowException( "Failed to lookup concrete members of: %s. Reason: %s", e, store, + e.getMessage() ); + } + + final List concreteResources = new ArrayList(); + + for ( ArtifactStore member : members ) + { + if ( ! PathMaskChecker.checkListingMask( member, path ) ) + { + continue; + } + concreteResources.add(new ConcreteResource( LocationUtils.toLocation( member ), path )); + } + + final List results = transfers.listAll( new VirtualResource( concreteResources ), eventMetadata ); for ( final ListingResult lr : results ) {