All of these are meant to indicate programming errors - the RT exceptions should be guarded by checking the validity of the POM used to create the artifacts. As for the illegalstateexception - how is the reports module getting handed a file that doesn't exist to report on?

- Brett

On 30/11/2006, at 2:32 PM, [EMAIL PROTECTED] wrote:

Author: joakime
Date: Wed Nov 29 19:32:08 2006
New Revision: 480817

URL: http://svn.apache.org/viewvc?view=rev&rev=480817
Log:
* Correcting LocationArtifactReportProcessor to not throw IllegalStateException as it halts the discovery and indexing. * Catching InvalidArtifactRTException in DefaultReportExecutor to allow discovery and indexing to proceed to next artifact unhindered. * Catching InvalidArtifactRTException in StandardArtifactIndexRecordFactory to allow discovery and indexeing to proceed to next artifact unhindered.


Modified:
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/ maven/archiva/indexer/record/StandardArtifactIndexRecordFactory.java maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/DefaultReportExecutor.java maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/LocationArtifactReportProcessor.java maven/archiva/trunk/archiva-reports-standard/src/test/java/org/ apache/maven/archiva/reporting/ LocationArtifactReportProcessorTest.java

Modified: maven/archiva/trunk/archiva-indexer/src/main/java/org/ apache/maven/archiva/indexer/record/ StandardArtifactIndexRecordFactory.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- indexer/src/main/java/org/apache/maven/archiva/indexer/record/ StandardArtifactIndexRecordFactory.java? view=diff&rev=480817&r1=480816&r2=480817 ====================================================================== ======== --- maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/ maven/archiva/indexer/record/ StandardArtifactIndexRecordFactory.java (original) +++ maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/ maven/archiva/indexer/record/ StandardArtifactIndexRecordFactory.java Wed Nov 29 19:32:08 2006
@@ -18,6 +18,7 @@

 import org.apache.maven.archiva.indexer.RepositoryIndexException;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.InvalidArtifactRTException;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Dependency;
@@ -251,8 +252,17 @@
     {
// TODO: this can create a -SNAPSHOT.pom when it didn't exist and a timestamped one did. This is harmless, but should be avoided
         // TODO: will this pollute with local repo metadata?
- MavenProject project = projectBuilder.buildFromRepository ( artifact, Collections.EMPTY_LIST, repository );
-        return project.getModel();
+
+        try
+        {
+ MavenProject project = projectBuilder.buildFromRepository( artifact, Collections.EMPTY_LIST, repository );
+            return project.getModel();
+        }
+        catch ( InvalidArtifactRTException e )
+        {
+ throw new ProjectBuildingException( artifact.getId(), "Unable to build project from invalid artifact ["
+                + artifact + "]", e );
+        }
     }

private void populateArchiveEntries( List files, StandardArtifactIndexRecord record, File artifactFile )

Modified: maven/archiva/trunk/archiva-reports-standard/src/main/ java/org/apache/maven/archiva/reporting/DefaultReportExecutor.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- reports-standard/src/main/java/org/apache/maven/archiva/reporting/ DefaultReportExecutor.java?view=diff&rev=480817&r1=480816&r2=480817 ====================================================================== ======== --- maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/DefaultReportExecutor.java (original) +++ maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/DefaultReportExecutor.java Wed Nov 29 19:32:08 2006
@@ -21,6 +21,7 @@
 import org.apache.maven.archiva.discoverer.MetadataDiscoverer;
import org.apache.maven.archiva.discoverer.filter.AcceptAllMetadataFilter;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.InvalidArtifactRTException;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
@@ -115,6 +116,10 @@
projectBuilder.buildFromRepository ( pomArtifact, Collections.EMPTY_LIST, repository );

                 model = project.getModel();
+            }
+            catch ( InvalidArtifactRTException e )
+            {
+ reporter.addWarning( artifact, null, null, "Invalid artifact [" + artifact + "] : " + e );
             }
             catch ( ProjectBuildingException e )
             {

Modified: maven/archiva/trunk/archiva-reports-standard/src/main/ java/org/apache/maven/archiva/reporting/ LocationArtifactReportProcessor.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- reports-standard/src/main/java/org/apache/maven/archiva/reporting/ LocationArtifactReportProcessor.java? view=diff&rev=480817&r1=480816&r2=480817 ====================================================================== ======== --- maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/LocationArtifactReportProcessor.java (original) +++ maven/archiva/trunk/archiva-reports-standard/src/main/java/org/ apache/maven/archiva/reporting/LocationArtifactReportProcessor.java Wed Nov 29 19:32:08 2006
@@ -113,7 +113,7 @@
             }
         }

-        //get the location of the artifact itself
+        // get the location of the artifact itself
File file = new File( repository.getBasedir(), artifactPath );

         if ( file.exists() )
@@ -140,7 +140,7 @@
         }
         else
         {
- throw new IllegalStateException( "Couldn't find artifact " + file ); + addFailure( reporter, artifact, "missing-artifact", "The artifact file [" + file + "] cannot be found for metadata." );
         }
     }


Modified: maven/archiva/trunk/archiva-reports-standard/src/test/ java/org/apache/maven/archiva/reporting/ LocationArtifactReportProcessorTest.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva- reports-standard/src/test/java/org/apache/maven/archiva/reporting/ LocationArtifactReportProcessorTest.java? view=diff&rev=480817&r1=480816&r2=480817 ====================================================================== ======== --- maven/archiva/trunk/archiva-reports-standard/src/test/java/org/ apache/maven/archiva/reporting/ LocationArtifactReportProcessorTest.java (original) +++ maven/archiva/trunk/archiva-reports-standard/src/test/java/org/ apache/maven/archiva/reporting/ LocationArtifactReportProcessorTest.java Wed Nov 29 19:32:08 2006
@@ -157,16 +157,10 @@
Artifact artifact = createArtifact( "groupId", "artifactId", "1.0-alpha-2" ); Artifact pomArtifact = createArtifact( "groupId", "artifactId", "1.0-alpha-2", "pom" );

-        try
-        {
- Model model = readPom( repository.pathOf ( pomArtifact ) ); - artifactReportProcessor.processArtifact( artifact, model, reportDatabase );
-            fail( "Should not have passed the artifact" );
-        }
-        catch ( IllegalStateException e )
-        {
-            // correct!
-        }
+        Model model = readPom( repository.pathOf( pomArtifact ) );
+ artifactReportProcessor.processArtifact( artifact, model, reportDatabase );
+
+        assertEquals( 1, reportDatabase.getNumFailures() );
     }

     /**

Reply via email to