VRaptor NPE em @AppicationScoped e Vraptor-Tasks error

Estou usando o container em ApplicationScoped e estava funcionando legal, tipo aqui:

@Component
@ApplicationScoped
public class ConfigurationService {

	private final Map<Configs, String> configs = new HashMap<Configs, String>();
	private final Logger logger = LoggerFactory.getLogger(this.getClass());

	public ConfigurationService(Container container) {
		setConfigurations(container.instanceFor(ConfigurationDAO.class)); //exception aqui
	}

	private void setConfigurations(ConfigurationDAO configurationDAO) {
		List<Configuration> list = configurationDAO.list();

		if (list.isEmpty()) {
			logger.warn("No configuration was found.");
		}

		for (Configuration cf : list) {
			configs.put(cf.getKey(), cf.getValue());
		}
	}

	public String getConfig(Configs config) {
		return configs.get(config);
	}
}

E ta funcionando legal… Só de adicionar o VRaptor-Tasks no meu projeto (gradle):

compile 'org.quartz-scheduler:quartz:2.2.1' compile ('br.com.prixma:vraptor-tasks:1.1.0'){ exclude module: 'quartz' }

começa a dar NPE onde eu tenho o Container… :frowning:
Muito estranho. Possuo mais uma classe que usa o Container…

Como resolver?

Detalhe, também estou com esta exception:

[quote]Exception in thread “Thread-2” java.lang.AbstractMethodError: br.com.caelum.vraptor.tasks.TasksMonitor.schedulerStarting()V
at org.quartz.core.QuartzScheduler.notifySchedulerListenersStarting(QuartzScheduler.java:2232)
at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:563)
at org.quartz.core.QuartzScheduler$1.run(QuartzScheduler.java:592)
at java.lang.Thread.run(Unknown Source)
[/quote]

do vraptor tasks.
Obrigado

Fiz um projeto web com Gradle que mostra o problema acontecendo, agora na versão 3.5.3 do VRaptor.

Criei um RequestScoped que não faz nada chamado ComponenteQualquer, e um @ApplicationScoped chamado ApplicationStarter que usa o Container para pegar uma instancia do ComponenteQualquer. Simples.

O Task esta no build do projeto… Exatamente estas linhas do build.gradle:

	compile  'org.quartz-scheduler:quartz:2.2.1'
	compile ('br.com.prixma:vraptor-tasks:1.1.0'){
		exclude module: 'quartz'
	}

Ao rodar o projetinho NPE…

Se apagar as linhas do script que eu mencionei acima, o projeto roda sem exception (mas também não executa o ApplicationStarter) .

Neste caso não faz sentido né, porque o VRaptor só vai criar o objeto sob demanda. E no caso, não estamos solicitando que o objeto seja criado em hora nenhuma. Porém no projeto real (contexto onde o bug surgiu) o meu @ApplicationScoped já era requisitado antes… E então ficou assim: Sem Tasks: funciona beleza… Com tasks: começa a dar NPE. Engraçado que um código não tem nada a ver com o outro :slight_smile:

Mas ta aí em anexo para quem quiser olhar e me ajudar.
Obrigado!

Onde está dando NPE?

Oi lucas… no instanceFor.

Cara criei um issue no VRaptor tasks e progredimos um pouco por lá (ou não hahaha)

poderia dar uma olhada ? https://github.com/wpivotto/vraptor-tasks/issues/10

OBS: Demorei pra responder pq o guj não me avisou no email ¬¬
hahaha

respondi lá.