]
Hardy Ferentschik resolved HSEARCH-954.
---------------------------------------
Resolution: Fixed
BackendQueueProcessor should specify behaviour for the case of null
passed to applyWork and applyStream work
------------------------------------------------------------------------------------------------------------
Key: HSEARCH-954
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-954
Project: Hibernate Search
Issue Type: Bug
Components: engine
Affects Versions: 4.0.0.CR1
Reporter: Hardy Ferentschik
Assignee: Sanne Grinovero
Fix For: 4.0.0.CR2
I think IllegalArgumentException would make sense. A testcase could look like this:
{code}
package org.hibernate.search.test.backend;
import javax.persistence.Entity;
import javax.persistence.Id;
import org.junit.Test;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.backend.impl.lucene.LuceneBackendQueueProcessor;
import org.hibernate.search.engine.spi.EntityIndexBinder;
import org.hibernate.search.impl.MutableSearchFactory;
import org.hibernate.search.indexes.impl.DirectoryBasedIndexManager;
import org.hibernate.search.indexes.spi.IndexManager;
import org.hibernate.search.test.SearchTestCase;
public class BackQueueProcessorTest extends SearchTestCase {
@Test
public void testNullWorkThrowsIllegalArgumentException() {
LuceneBackendQueueProcessor backend = getBackendQueueProcessor();
try {
backend.applyStreamWork( null );
fail( "Should throw IllegalArgumentException" );
}
catch ( IllegalArgumentException i ) {
// pass
}
try {
backend.applyWork( null );
fail( "Should throw IllegalArgumentException" );
}
catch ( IllegalArgumentException i ) {
// pass
}
}
private LuceneBackendQueueProcessor getBackendQueueProcessor() {
MutableSearchFactory searchFactory = (MutableSearchFactory) getSearchFactory();
EntityIndexBinder indexBindingForEntity = searchFactory.getIndexBindingForEntity(
Foo.class );
IndexManager[] indexManagers = indexBindingForEntity.getIndexManagers();
assertEquals( 1, indexManagers.length );
DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager)
indexManagers[0];
return (LuceneBackendQueueProcessor) indexManager.getBackendQueueProcessor();
}
@Override
protected void configure(org.hibernate.cfg.Configuration cfg) {
super.configure( cfg );
}
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class[] { Foo.class };
}
@Entity
@Indexed
public class Foo {
@Id
int id;
}
}
{code}
At the moment _NullPointerException_ is thrown
--
This message is automatically generated by JIRA.
For more information on JIRA, see: