You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/01/16 23:57:04 UTC
svn commit: r1232213 - in /archiva/trunk/archiva-modules/archiva-base:
archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/
archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/arch...
Author: olamy
Date: Mon Jan 16 22:57:03 2012
New Revision: 1232213
URL: http://svn.apache.org/viewvc?rev=1232213&view=rev
Log:
prevent NPE on initial scan at repository creation
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java?rev=1232213&r1=1232212&r2=1232213&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java Mon Jan 16 22:57:03 2012
@@ -72,7 +72,7 @@ public class NexusIndexerConsumer
private ArchivaTaskScheduler<ArtifactIndexingTask> scheduler;
- private IndexingContext context;
+ private IndexingContext indexingContext;
private NexusIndexer nexusIndexer;
@@ -124,7 +124,7 @@ public class NexusIndexerConsumer
try
{
log.info( "Creating indexing context for repo : {}", repository.getId() );
- context = managedRepositoryAdmin.createIndexContext( repository );
+ indexingContext = managedRepositoryAdmin.createIndexContext( repository );
}
catch ( RepositoryAdminException e )
{
@@ -152,7 +152,7 @@ public class NexusIndexerConsumer
File artifactFile = new File( managedRepository, path );
ArtifactIndexingTask task =
- new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, context );
+ new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, getIndexingContext() );
try
{
log.debug( "Queueing indexing task '{}' to add or update the artifact in the index.", task );
@@ -177,7 +177,8 @@ public class NexusIndexerConsumer
// specify in indexing task that this is not a repo scan request!
ArtifactIndexingTask task =
- new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD, context, false );
+ new ArtifactIndexingTask( repository, artifactFile, ArtifactIndexingTask.Action.ADD,
+ getIndexingContext(), false );
// only update index we don't need to scan the full repo here
task.setOnlyUpdate( true );
try
@@ -194,6 +195,19 @@ public class NexusIndexerConsumer
public void completeScan()
{
+ IndexingContext context = this.indexingContext;
+ if ( context == null )
+ {
+ try
+ {
+ context = getIndexingContext();
+ }
+ catch ( ConsumerException e )
+ {
+ log.warn( "failed to get an IndexingContext:{}", e.getMessage() );
+ return;
+ }
+ }
ArtifactIndexingTask task =
new ArtifactIndexingTask( repository, null, ArtifactIndexingTask.Action.FINISH, context );
try
@@ -205,7 +219,6 @@ public class NexusIndexerConsumer
{
log.error( "Error queueing task: " + task + ": " + e.getMessage(), e );
}
- context = null;
}
public void completeScan( boolean executeOnEntireRepo )
@@ -260,4 +273,23 @@ public class NexusIndexerConsumer
{
return includes;
}
+
+
+ private IndexingContext getIndexingContext()
+ throws ConsumerException
+ {
+
+ if ( this.indexingContext == null )
+ {
+ try
+ {
+ indexingContext = managedRepositoryAdmin.createIndexContext( repository );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ throw new ConsumerException( e.getMessage(), e );
+ }
+ }
+ return indexingContext;
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java?rev=1232213&r1=1232212&r2=1232213&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java Mon Jan 16 22:57:03 2012
@@ -576,12 +576,17 @@ public class DefaultManagedRepositoryAdm
indexDirectory.mkdirs();
}
- context =
- indexer.addIndexingContext( repository.getId(), repository.getId(), managedRepository, indexDirectory,
- managedRepository.toURI().toURL().toExternalForm(),
- indexDirectory.toURI().toURL().toString(), indexCreators );
+ context = indexer.getIndexingContexts().get( repository.getId() );
- context.setSearchable( repository.isScanned() );
+ if ( context == null )
+ {
+ context = indexer.addIndexingContext( repository.getId(), repository.getId(), managedRepository,
+ indexDirectory,
+ managedRepository.toURI().toURL().toExternalForm(),
+ indexDirectory.toURI().toURL().toString(), indexCreators );
+
+ context.setSearchable( repository.isScanned() );
+ }
return context;
}
catch ( MalformedURLException e )