I'm getting the following error in my Java code
Exception in thread "Thread-2" java.lang.NullPointerException
at java.io.File.<init>(Unknown Source)
at Indexador.indexaArquivosDoDiretorio(Indexador.java:42)
at Princ$1$1.run(Princ.java:235)
at java.lang.Thread.run(Unknown Source)
I do not know why I started giving this error, I believe it's something related to File objects that do not accept String. Here is the code:
public void indexaArquivosDoDiretorio() {
try {
Properties prop = getProp();
// Diretório que irá guardar o índice;
String diretorioDosIndices = prop.getProperty("diretorio.indice");
// Diretório que contém os documentos que serão indexados;
String diretorioParaIndexar = prop.getProperty("diretorio.fonte");
File diretorio = new File(diretorioDosIndices);
apagaIndices(diretorio);
// Directory: representa o diretório do índice;
Directory d = new SimpleFSDirectory(diretorio);
// Analyser/StandardAnalyser: fazem o pré-processamento do texto.
// Existem analisadores inclusive em português;
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_47);
// IndexWriterConfig: configurações para criação do índice. No
// projeto serão utilizados os valores padrão;
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_47,
analyzer);
// Inicializa o IndexWriter para gravação;
writer = new IndexWriter(d, config);
long inicio = System.currentTimeMillis();
indexaArquivosDoDiretorio(new File(diretorioParaIndexar));
// Fecha o IndexWriter e comita as mudanças
writer.commit();
writer.close();
long fim = System.currentTimeMillis();
JOptionPane.showMessageDialog(
null,
"Quantidade de arquivos indexados: " + i + "\n"
+ "Tempo para indexar: "
+ String.valueOf((fim - inicio) / 1000) + "s");
} catch (IOException e) {
logger.error(e);
}
}
Line 42:
File diretorio = new File(diretorioDosIndices);