Bom, eu olhei ae a dúvida do amigo, e decompilei o jar aqui... pela chamada do seu método, acredito que deve estar passando source nulo...
Olha a fonte do metodo:
public static void copyInputStreamToFile(InputStream source, File destination)
throws IOException
{
FileOutputStream output;
try
{
output = openOutputStream(destination);
try {
IOUtils.copy(source, output);
} finally {
IOUtils.closeQuietly(output);
}
} finally {
IOUtils.closeQuietly(source);
}
}
Repare que no fonte abaixo do metodo copy, existe a manipulação dos dois objetos InputStream e File:
public static int copy(InputStream input, OutputStream output)
throws IOException
{
long count = copyLarge(input, output);
if (count > [telefone removido])
return -1;
return (int)count;
}
depois ira chamar o copyLarge na pilha para esse fluxo, mas de qualquer forma todos os metodos estão manipulando input e output, acredito que voce deva estar passando um dos dois parametros nulos, mas como as vezes a pilha é meio complicada de acompanhar pode ser outro null pointer dentro do seu método,
da uma confirmada se quando voce ta fazendo algo do tipo:
InputStream source = getClass().getResourceAsStream("/resources/teste.txt");
seu source esta conseguindo obter o inputStrema para o arquivo a ser copiado.