You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@archiva.apache.org by Brett Porter <br...@apache.org> on 2006/11/30 04:49:45 UTC
Re: svn commit: r480817 - in /maven/archiva/trunk: archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/ archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/ archiva-reports-standard/src/test/java/org/apache/maven/arc...
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, joakime@apache.org 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() );
> }
>
> /**
>
Re: svn commit: r480817 - in /maven/archiva/trunk: archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/ archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/ archiva-reports-standard/src/test/java/org/apache/maven/arc...
Posted by Brett Porter <br...@apache.org>.
Still looking for an answer on this. I keep getting told I did it
wrong, but not why :)
I'm also keen to avoid catching exceptions that indicate programming
errors and address the cause.
- Brett
On 01/12/2006, at 6:55 AM, Brett Porter wrote:
> Like I said, a programming error. It's a bug in the discovery if it
> reports back something that doesn't exist, right?
>
> On 01/12/2006, at 12:02 AM, Joakim Erdfelt wrote:
>
>> The fact that we tie together the discovery, indexing, and
>> reporting is how.
>> We shouldn't have done that.
>
> Why not? What alternate solution do you propose?
>
> - Brett
Re: svn commit: r480817 - in /maven/archiva/trunk: archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/ archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/ archiva-reports-standard/src/test/java/org/apache/maven/arc...
Posted by Brett Porter <br...@apache.org>.
Like I said, a programming error. It's a bug in the discovery if it
reports back something that doesn't exist, right?
On 01/12/2006, at 12:02 AM, Joakim Erdfelt wrote:
> The fact that we tie together the discovery, indexing, and
> reporting is how.
> We shouldn't have done that.
Why not? What alternate solution do you propose?
- Brett
Re: svn commit: r480817 - in /maven/archiva/trunk: archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/
archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/
archiva-reports-standard/src/test/java/org/apache/maven/arc...
Posted by Joakim Erdfelt <jo...@erdfelt.com>.
The fact that we tie together the discovery, indexing, and reporting is how.
We shouldn't have done that.
This tree triggers the IllegalStateException -
http://repo1.maven.org/maven2/backport175/backport175-intellij/
edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
java.lang.IllegalStateException: Couldn't find artifact
/home/repo1/ibiblio/backport175/backport175-intellij/1.0/backport175-intellij-1.0.zip
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:299)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:118)
at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.waitForTask(ThreadedTaskQueueExecutor.java:159)
at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.run(ThreadedTaskQueueExecutor.java:127)
Caused by: java.lang.IllegalStateException: Couldn't find artifact
/home/repo1/ibiblio/backport175/backport175-intellij/1.0/backport175-intellij-1.0.zip
at
org.apache.maven.archiva.reporting.LocationArtifactReportProcessor.processArtifact(LocationArtifactReportProcessor.java:143)
at
org.apache.maven.archiva.reporting.AbstractReportGroup.processArtifact(AbstractReportGroup.java:53)
at
org.apache.maven.archiva.reporting.DefaultReportExecutor.runArtifactReports(DefaultReportExecutor.java:126)
at
org.apache.maven.archiva.scheduler.executors.IndexerTaskExecutor.execute(IndexerTaskExecutor.java:242)
This tree triggers the InvalidArtifactRTException -
http://repo1.maven.org/maven2/berkano/
edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
org.apache.maven.artifact.InvalidArtifactRTException: For artifact
{null:berkano-bookmarks:${berkanoVersion}:jar}: The groupId cannot be empty.
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:299)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:118)
at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.waitForTask(ThreadedTaskQueueExecutor.java:159)
at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.run(ThreadedTaskQueueExecutor.java:127)
Caused by: org.apache.maven.artifact.InvalidArtifactRTException: For
artifact {null:berkano-bookmarks:${berkanoVersion}:jar}: The groupId
cannot be empty.
at
org.apache.maven.artifact.DefaultArtifact.validateIdentity(DefaultArtifact.java:126)
at
org.apache.maven.artifact.DefaultArtifact.<init>(DefaultArtifact.java:119)
at
org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:155)
at
org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:114)
at
org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:108)
- Joakim Erdfelt
Brett Porter wrote:
> 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, joakime@apache.org 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() );
>> }
>>
>> /**
>>
>