In the ideal situation webstart startup logic should behave as follows:
If all of the following is true:
a) initial JNLP file is local (even if it is in browser cache yet)
b) all required JNLP files contain <update check="background">
c) all required resources are present in the cache
Then startup of webstart application should not require any network requests.
Background thread should check for updates and install updates to the cache.
Reuse background update logic introduced for plugin2.
Attempt to start from cache only. If this fails then try again with network connections enabled. In case if application fails with error mark it as one requiring foreground update check (to check if update will resolve the failure).