device property fetcher: handle exception condition correctly

Device properties are obtained asynchronously in a runnable. If the
properties were fetched correctly, it updated the cache state to
indicate that the cache is populated. However, if there was a failure,
the cache state was not updated. As a result, future requests
assumed that the runnable was still executing.

This CL sets the state to unpopulated if there was any error while
fetching the properties.

Change-Id: I19313b9182e8acf8a47938da1034c13ad89a2235
1 file changed