мигрировали изПолучение NullPointerException на org.apache.velocity.runtime.RuntimeInstance.parse (RuntimeInstance.java:1198)
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.5</version>
в
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
При выполнении следующей инструкции
VelocityContext vc = getVelocityContext(valuesMap);
StringWriter writer = new StringWriter();
Velocity.evaluate(vc, writer, "[generate email processor - event id = " + event.getId() + "]", bodyTemplate);
Я получаю
java.lang.NullPointerException
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1198)
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1181)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1297)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
at org.apache.velocity.app.Velocity.evaluate(Velocity.java:180)
at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.generateMessage(GenerateMessageProcessor.java:1361)
at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.run(GenerateMessageProcessor.java:1155)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1198)
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1181)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1297)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
at org.apache.velocity.app.Velocity.evaluate(Velocity.java:180)
at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.generateMessage(GenerateMessageProcessor.java:1361)
at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.run(GenerateMessageProcessor.java:1155)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Я инициализирую RuntimeSingleton один раз во время выполнения приложения, как показано ниже.
if(!RuntimeSingleton.isInitialized()) {
RuntimeSingleton.init();
}
Почему я получаю исключение NullPointerException?
Почему вы не отлаживаете свой код? Таким образом, вы можете увидеть состояние переменных. – Juvanis
Я попытался и понял, что команда (парсер парсер = (парсер) parserPool.get();) бросает его (возможно, parserPool = null). Я думал, что это связано с неинициализированным классом org.apache.velocity.runtime.RuntimeInstance. Инициализируйте то же самое, что указано в описании проблемы, чтобы инициализировать его. Но все же я получаю это. – Developer
Я бы предположил, что ваш шаблон вызывает этот нулевой указатель. - Какая строка шаблона? Невозможно мне сказать. – henrik