public void loadProperty(T property) throws IOException
    {
        try
        {
            Future<Void> task = loadPropertyNB(property);
            task.get();
        }
        catch (ExecutionException e)
        {
            Throwable t = e.getCause();

            if (t instanceof IOException)
            {
                throw (IOException) t;
            }

            throw new IOException(t);
        }
        catch (InterruptedException e)
        {
            throw new IOException("Loading of the property "
                                  + property
                                  + " from file \""
                                  + getFile().getAbsolutePath()
                                  + "\" was interrupted.");
        }
    }
public void loadProperty ( T property ) throws IOException { try { Future < Void > task = loadPropertyNB ( property ) ; task . get ( ) ; } catch ( ExecutionException e ) { Throwable t = e . getCause ( ) ; if ( t instanceof IOException ) { throw ( IOException ) t ; } throw new IOException ( t ) ; } catch ( InterruptedException e ) { throw new IOException ( "Loading of the property " + property + " from file \"" + getFile ( ) . getAbsolutePath ( ) + "\" was interrupted." ) ; } }
Load the current value of the given property from the file without
modifying the values of any other properties. In other words,
{@link #isModified(Object)} will return <code>false</code> for the given
property after this call completes, but it will return <code>true</code>
for any other properties that have been modified since the last load or
save.<br>
<br>
This method will block and wait for the property to be loaded. See
{@link #loadPropertyNB(Object)} for a non-blocking version.

@param property
the property to load
@throws IOException
if there is an error while attempting to read the property
from the file