It's possible to create a non-void function that won't return a value. When such a function is called the engine crashes. Reproducible: Always Steps to Reproduce: 1. Open the attached system in UPPAAL 2. Switch to the Simulator view Actual Results: The engine crashes and the GUI receives a "java.io.IOException: Server connection lost" exception. Expected Results: The engine shouldn't crash. In best case the syntax checker should warn that control may reach end of the non-void function.
Created attachment 146 [details] return.xml
Confirmed. To be fair, UPPAAL does check for the presence of a return statement, but apparently there is a bug that makes it possible to fool it (as demonstrated by your model).
The problem is triggered by the if-statement not having an else case.
Resolved on the 4.0 branch from rev. 2982.
Fix confirmed in 4.0.6.
The bug is not yet fixed in other branches than 4.0.