@Override
    public synchronized Object invoke(Object proxy, Method method, Object[] args)
        throws Throwable {
      try {
        return method.invoke(client, args);
      } catch (InvocationTargetException e) {
        throw e.getTargetException();
      }
    }
Creates a synchronized wrapper for any {@link IMetaStoreClient}.
This may be used by multi-threaded applications until we have
fixed all reentrancy bugs.

@param client unsynchronized client
@return synchronized client
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java