else {
// The the Broker instance
Broker broker = Broker.getInstance();
// Get the Describer for the specified type
Describer describer = broker.getDescriber(type);
// Retrieve the best Resolver
Resolver resolver = broker.getBestResolver(id);
// Retrieve the Discovery interface from the Resolver
Discovery discovery = resolver.getDiscovery(id);
// Stream the description to the StringWriter
StringWriter sw = new StringWriter(BUFFER_SIZE);
describer.describe(id, discovery, sw);
result = sw.toString();
synchronized ( cacheMutex ) {
cache.put(key, result);
}