PlantUML does not strictly follow the standard here.
However, there is a setting to go back in the right direction: skinparam conditionStyle diamond
@startuml
skinparam conditionStyle diamond
title Receive Loop
start
while (test) is ([connection open])
:Receive data;
while ( ) is ([data in receive buffer])
:Invoke decode;
:Handle decoder result;
endwhile ([else])
endwhile ([else])
end
@enduml
Is this what you are expecting ?