Erro Servlet.service()

pessoal, to enfrentando o seguinte problema.

primeiramente desculpe se o titulo não condis com o problema, mas não sabia o que colocar.

as parcelas são salvas corretamente no banco mas a pagina da erro e no console aparece isso aqui>>

Hibernate:
select
cliente0_.id as id1_0_0_,
cliente0_.anotacao as anotacao2_0_0_,
cliente0_.nome as nome3_0_0_,
cliente0_.status as status4_0_0_
from
cliente cliente0_
where
cliente0_.id=?
Hibernate:
insert
into
emprestimo
(id, anotacao, cliente_id, data_emprestimo, n_parcelas, percentual, primeira_emprestimo, valor_emprestado, valor_solicitado)
values
(null, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
insert
into
parcela
(id, data_pagamento, emprestimo_id, n_parcela, valor_parcela)
values
(null, ?, ?, ?, ?)
Hibernate:
insert
into
parcela
(id, data_pagamento, emprestimo_id, n_parcela, valor_parcela)
values
(null, ?, ?, ?, ?)
Hibernate:
insert
into
parcela
(id, data_pagamento, emprestimo_id, n_parcela, valor_parcela)
values
(null, ?, ?, ?, ?)
Hibernate:
insert
into
parcela
(id, data_pagamento, emprestimo_id, n_parcela, valor_parcela)
values
(null, ?, ?, ?, ?)
Hibernate:
insert
into
parcela
(id, data_pagamento, emprestimo_id, n_parcela, valor_parcela)
values
(null, ?, ?, ?, ?)
Hibernate:
select
emprestimo0_.cliente_id as cliente_9_1_0_,
emprestimo0_.id as id1_1_0_,
emprestimo0_.id as id1_1_1_,
emprestimo0_.anotacao as anotacao2_1_1_,
emprestimo0_.cliente_id as cliente_9_1_1_,
emprestimo0_.data_emprestimo as data_emp3_1_1_,
emprestimo0_.n_parcelas as n_parcel4_1_1_,
emprestimo0_.percentual as percentu5_1_1_,
emprestimo0_.primeira_emprestimo as primeira6_1_1_,
emprestimo0_.valor_emprestado as valor_em7_1_1_,
emprestimo0_.valor_solicitado as valor_so8_1_1_
from
emprestimo emprestimo0_
where
emprestimo0_.cliente_id=?
e[2m2017-05-31 12:41:42.230e[0;39m e[31mERRORe[0;39m e[35m8911e[0;39m e[2m—e[0;39m e[2m[nio-8080-exec-2]e[0;39m e[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] e[0;39m e[2m:e[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.StackOverflowError] with root cause

java.lang.StackOverflowError: null
at sun.misc.FloatingDecimal$BinaryToASCIIBuffer.dtoa(FloatingDecimal.java:431) ~[na:1.8.0_131]
at sun.misc.FloatingDecimal$BinaryToASCIIBuffer.access$100(FloatingDecimal.java:259) ~[na:1.8.0_131]
at sun.misc.FloatingDecimal.getBinaryToASCIIConverter(FloatingDecimal.java:1785) ~[na:1.8.0_131]
at sun.misc.FloatingDecimal.getBinaryToASCIIConverter(FloatingDecimal.java:1738) ~[na:1.8.0_131]
at sun.misc.FloatingDecimal.toJavaFormatString(FloatingDecimal.java:70) ~[na:1.8.0_131]
at java.lang.Double.toString(Double.java:204) ~[na:1.8.0_131]
at java.lang.Double.toString(Double.java:644) ~[na:1.8.0_131]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_131]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_131]
at com.banking.emprestimos.model.Emprestimo.toString(Emprestimo.java:27) ~[classes/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_131]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_131]
at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_131]
at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]

@Service
public class EmprestimoService {

	@Autowired
	private Emprestimos emprestimos;

	
	private Parcela p = new Parcela();
	
	
	
	@Transactional
	public void salvar(Emprestimo emprestimo) {

		// --------------- calcula o valor a receber -------------
		Double a = emprestimo.getValorSolicitado();//valor que esta pedindo
		Double b = emprestimo.getPercentual();//percentualde juros sobre o valor emprestado
		Double c = (a + (a * b / 100));//valor total que deverá ser pago
		
		emprestimo.setValorEmprestado(c);//salva o valor a ser cobrado
	
	
	

		
		
			gerarPrcelas(emprestimo);
		emprestimos.save(emprestimo);

	}
	
	public void gerarPrcelas(Emprestimo emprestimo) {

		ArrayList<Parcela> parcelas = new ArrayList<>();

		int nParcelas = emprestimo.getNParcelas();
		double valorParcelas = emprestimo.getValorEmprestado() / nParcelas;
		for (int i = 0; i < nParcelas; i++) {
			p.setNParcela(i);
			p.setValorParcela(valorParcelas);
			p.setEmprestimo(emprestimo);

			parcelas.add(p);
			p = new Parcela();
		}
		emprestimo.setListaParcelas(parcelas);

	}
}

Meu controller:

	@RequestMapping(value = "/novo", method = RequestMethod.POST)
	public String salvar(Emprestimo emprestimo, Model model) {

		try {
			emprestimoService.salvar(emprestimo);
			
		} catch (Exception e) {
		System.out.println(e.getMessage());	
		System.out.println("Salvo>>>>>>>" + emprestimo);
		}
	
		System.out.println("Salvo>>>>>>>" + emprestimo);
		return "redirect:/emprestimos/novo";
	}