Buggy code:
@ Controller public class ClientController extends AbstractController { @ RequestMapping ( "//" ) public String redirect ( ) { } @ RequestMapping ( value = "//contract" , method = RequestMethod . GET ) public String contract ( Model model ) { } @ RequestMapping ( value = "//contract" , method = RequestMethod . POST ) public String contract ( Model model , RedirectAttributes ra , @ RequestParam ( value = "id1" , required = false ) String id1 , @ RequestParam ( value = "id2" , required = false ) String id2 , @ RequestParam ( value = "price" , required = false ) String price , @ RequestParam ( value = "c" , required = false ) String c , @ RequestParam ( value = "a" , required = false ) String a , @ RequestParam ( value = "b" , required = false ) String b , @ RequestParam ( value = "p" , required = false ) String p , HttpServletRequest request ) { try { if ( c != null ) { if ( ! ( kms . getState ( ) . removeContract ( Integer . parseInt ( a ) , Integer . parseInt ( b ) , Integer . parseInt ( p ) ) ) ) { ra . addFlashAttribute ( "id1" , id1 ) ; ra . addFlashAttribute ( "id2" , id2 ) ; ra . addFlashAttribute ( "price" , price ) ; ra . addFlashAttribute ( "error" , "correct" ) ; ra . addFlashAttribute ( "firstID" , kms . getConfiguration ( ) . getFirstID ( ) ) ; ra . addFlashAttribute ( "numberOfPlayers" , kms . getConfiguration ( ) . getPlayerCount ( ) ) ; <START_BUG> return "contract" ; <END_BUG> } } if ( ( ( id1 != "" ) && ( id2 != "" ) ) && ( price != "" ) ) { int idOne = Integer . parseInt ( id1 ) ; int idTwo = Integer . parseInt ( id2 ) ; int cost = Integer . parseInt ( price ) ; int add = kms . getState ( ) . addContract ( idOne , idTwo , cost , request . getRemoteAddr ( ) ) ; if ( add == 0 ) { ra . addFlashAttribute ( "success" , 42 ) ; ra . addFlashAttribute ( "a" , idOne ) ; ra . addFlashAttribute ( "b" , idTwo ) ; ra . addFlashAttribute ( "p" , cost ) ; return "redirect://contract.html" ; } else { ra . addFlashAttribute ( "id1" , id1 ) ; ra . addFlashAttribute ( "id2" , id2 ) ; ra . addFlashAttribute ( "price" , price ) ; ra . addFlashAttribute ( "error" , add ) ; } } else { ra . addFlashAttribute ( "id1" , id1 ) ; ra . addFlashAttribute ( "id2" , id2 ) ; ra . addFlashAttribute ( "price" , price ) ; ra . addFlashAttribute ( "error" , "empty" ) ; } ra . addFlashAttribute ( "firstID" , kms . getConfiguration ( ) . getFirstID ( ) ) ; ra . addFlashAttribute ( "numberOfPlayers" , kms . getConfiguration ( ) . getPlayerCount ( ) ) ; return "redirect://contract" ; } catch ( NumberFormatException e ) { e . printStackTrace ( ) ; ra . addFlashAttribute ( "error" , "fraction" ) ; ra . addFlashAttribute ( "firstID" , kms . getConfiguration ( ) . getFirstID ( ) ) ; ra . addFlashAttribute ( "numberOfPlayers" , kms . getConfiguration ( ) . getPlayerCount ( ) ) ; return "redirect://contract" ; } catch ( IllegalStateException e ) { e . printStackTrace ( ) ; if ( ( kms . getState ( ) ) instanceof Evaluation ) { ra . addFlashAttribute ( "error" , "stopped" ) ; } else { ra . addFlashAttribute ( "error" , "notRunning" ) ; } ra . addFlashAttribute ( "firstID" , kms . getConfiguration ( ) . getFirstID ( ) ) ; ra . addFlashAttribute ( "numberOfPlayers" , kms . getConfiguration ( ) . getPlayerCount ( ) ) ; return "redirect://contract" ; } } }

Fix:
return "redirect://contract" ;