Uma exceção do mapa dozer relacionada aos devtools de inicialização do Spring

Eu encontrei uma exceção muito estranha e não sei como encontrar o motivo.

Contexto comercial: adicione mercadorias e, entretanto, é a lista de preços, uma mercadoria tem 5 preços para o usuário no nível diff.

No controlador, primeiro converta o goodForm em mercadorias usando o bulldozer, depois chame goodsService para salvar mercadorias. Em goodsService após salvar mercadorias, lista de preços de mercadorias transversais e preencher bensId para preço de mercadorias,

GoodsForm:
@Mapping("priceList")
List<GoodsPriceForm> goodsPriceFormList;
Goods:
List<GoodsPrice> priceList;

Controller: 
Goods goods = BeanMapper.map(goodsForm, Goods.class);
goodsService.saveGoods(adminId, goods);

GoodsService:
goodsDao.save(goods);
goods.getPriceList().forEach(p -> p.setGoodsId(goods.getId()));
goodsPriceDao.save(goods.getPriceList());

Mas lança exceção:

2015-11-27 17:10:57,042 [http-nio-8081-exec-8] ERROR o.a.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: com.foo.goods.model.GoodsPrice cannot be cast to com.foo.goods.model.GoodsPrice] with root cause
java.lang.ClassCastException: com.foo.goods.model.GoodsPrice cannot be cast to com.foo.goods.model.GoodsPrice
at com.foo.goods.service.GoodsService$Lambda$11/310447431.accept(Unknown Source) ~[na:na]
at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_51]
at com.foo.goods.service.GoodsService.saveGoods(GoodsService.java:34) ~[classes/:na]

Essa mensagem de erro me deixa muito confusa. Além disso, eu escrevo um teste de unidade queria repetir isso, mas falhou.

GoodsForm form = new GoodsForm();
form.setGoodsPriceFormList(Lists.newArrayList(new GoodsPriceForm((byte) 1, BigDecimal.valueOf(10)),
new GoodsPriceForm((byte) 2, BigDecimal.valueOf(9)),
new GoodsPriceForm((byte) 3, BigDecimal.valueOf(8))));

Goods goods = BeanMapper.map(form, Goods.class);
goods.getPriceList().forEach(p -> p.setGoodsId(goods.getId()));

Execute este teste de unidade, ele executou ok. Então, por que na situação real da Web (Spring boot + Jpa) falhou, mas na situação de teste de unidade está tudo bem?

Controller:
System.out.println("PriceList: " + goods.getPriceList().getClass().getClassLoader());//PriceList: null
System.out.println(goods.getPriceList().get(0).getClass().getClassLoader()); //java.lang.ClassCastException: com.foo.goods.model.GoodsPrice cannot be cast to com.foo.goods.model.GoodsPrice

Se eu gerar um jar empacotado, execute-o

java -jar target/myapp.jar

Neste caso, sem exceção acima.

E comentei o spring-boot-devtools no pom.xml e iniciei o aplicativo, sem exceção.

questionAnswers(2)

yourAnswerToTheQuestion