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
Fix For: 4.0
I think IllegalArgumentException would make sense. A testcase could look like this:
{code}
/*
* JBoss, Home of Professional Open Source
* Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors
* as indicated by the @authors tag. All rights reserved.
* See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
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}
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira