Everything is ok in the following example:
http://www.plantuml.com/plantuml/uml/BOvH3i8m34F_VOfyTbU03tQLZ6PQH6cd9WXnUx9r_edb5ycUpRdxvrrm6k2xQH5AcPqV4wbH-ebD02YaQreuqu2-IHsG3YrT-7LQAIQfjYk_xRqznUm-MCsw0d6kekClkjkEES8OyWS0
@startuml
start
while (data?) is (yes)
if(bad data?)then(yes)
break
else(no)
:process;
endif
endwhile (no)
stop
@enduml
However, if you add more lines of text into the "then" statement, the "break" arrow gets broken:
http://www.plantuml.com/plantuml/uml/BOun3iCW34NtVmgFS8LsQ0xInIcEWafDXAbGRryW-Ok_tlFm5wjSwlUJC0lGzfY4NE3A3q_HoFt4F03gYPjRET0fwouwv5DL6gMeewv5-4rT4PUIcmUDJ3gh91Ed-UAte-INcDrFfo5kG3_NYF47g_d0qc4V-GS0
@startuml
start
while (data?) is (yes)
if(bad data?)then(yes\nnew lines\nbreak the arrow)
break
else(no)
:process;
endif
endwhile (no)
stop
@enduml