summaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-web
diff options
context:
space:
mode:
authorBrett Porter <brett@apache.org>2009-12-24 02:40:57 +0000
committerBrett Porter <brett@apache.org>2009-12-24 02:40:57 +0000
commit79de06cf3e28ff6e0bb6b917e2a6ddcd2cbeef4b (patch)
treee50da4037aad1ba41ef6936ccc440659ce09e5d4 /archiva-modules/archiva-web
parent9076b869b338749e4bec6e8cc89ca176cf079086 (diff)
downloadarchiva-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')
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java12
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java13
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;