diff options
author | Brett Porter <brett@apache.org> | 2009-12-24 02:40:57 +0000 |
---|---|---|
committer | Brett Porter <brett@apache.org> | 2009-12-24 02:40:57 +0000 |
commit | 79de06cf3e28ff6e0bb6b917e2a6ddcd2cbeef4b (patch) | |
tree | e50da4037aad1ba41ef6936ccc440659ce09e5d4 /archiva-modules/archiva-web | |
parent | 9076b869b338749e4bec6e8cc89ca176cf079086 (diff) | |
download | archiva-79de06cf3e28ff6e0bb6b917e2a6ddcd2cbeef4b.tar.gz archiva-79de06cf3e28ff6e0bb6b917e2a6ddcd2cbeef4b.zip |
[MRM-1283] propagate errors occurring during resolution
git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@893686 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-web')
2 files changed, 22 insertions, 3 deletions
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java index ba0eeeb15..ceb9ca8b2 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Set; import org.apache.archiva.metadata.model.ProjectVersionMetadata; +import org.apache.archiva.metadata.repository.MetadataResolutionException; import org.apache.archiva.metadata.repository.MetadataResolver; import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet; import org.apache.commons.collections.CollectionUtils; @@ -223,7 +224,16 @@ public class BrowseAction { if ( versionMetadata == null ) { - versionMetadata = metadataResolver.getProjectVersion( repoId, groupId, artifactId, version ); + try + { + versionMetadata = metadataResolver.getProjectVersion( repoId, groupId, artifactId, version ); + } + catch ( MetadataResolutionException e ) + { + log.error( + "Skipping invalid metadata while compiling shared model for " + groupId + ":" + artifactId + + " in repo " + repoId + ": " + e.getMessage() ); + } } } diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java index dda04be67..9f2502481 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java @@ -34,6 +34,7 @@ import org.apache.archiva.metadata.model.Dependency; import org.apache.archiva.metadata.model.MailingList; import org.apache.archiva.metadata.model.ProjectVersionMetadata; import org.apache.archiva.metadata.model.ProjectVersionReference; +import org.apache.archiva.metadata.repository.MetadataResolutionException; import org.apache.archiva.metadata.repository.MetadataResolver; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.model.ArtifactReference; @@ -107,13 +108,21 @@ public class ShowArtifactAction List<String> repos = getObservableRepos(); // In the future, this should be replaced by the repository grouping mechanism, so that we are only making // simple resource requests here and letting the resolver take care of it + String errorMsg = null; for ( String repoId : repos ) { if ( versionMetadata == null ) { // we don't want the implementation being that intelligent - so another resolver to do the // "just-in-time" nature of picking up the metadata (if appropriate for the repository type) is used - versionMetadata = metadataResolver.getProjectVersion( repoId, groupId, artifactId, version ); + try + { + versionMetadata = metadataResolver.getProjectVersion( repoId, groupId, artifactId, version ); + } + catch ( MetadataResolutionException e ) + { + errorMsg = e.getMessage(); + } if ( versionMetadata != null ) { repositoryId = repoId; @@ -149,7 +158,7 @@ public class ShowArtifactAction if ( versionMetadata == null ) { - addActionError( "Artifact not found" ); + addActionError( errorMsg != null ? errorMsg : "Artifact not found" ); return ERROR; } model = versionMetadata; |