package org.concord.otrunk;

import java.net.URL;

import org.concord.framework.otrunk.DefaultOTObject;
import org.concord.framework.otrunk.OTObject;
import org.concord.framework.otrunk.OTResourceSchema;
import org.concord.framework.otrunk.OTrunk;

public class OTIncludeRootObject extends DefaultOTObject 
{	
	public static interface ResourceSchema extends OTResourceSchema
	{
		public URL getHref();
	}
	protected ResourceSchema resources;

	OTObject refObject = null;
	
	public OTIncludeRootObject(ResourceSchema resources)
    {
	    super(resources);
	    this.resources = resources;
    }

	public URL getHref()
	{
		return resources.getHref();
	}
	
	public OTObject getReference()
	{
		if(refObject != null){
			return refObject;
		}
		
		URL url = getHref();
		
		OTrunkImpl otrunkImpl = (OTrunkImpl)getOTObjectService().getOTrunkService(OTrunk.class);
		
		try {
			refObject = otrunkImpl.getExternalObject(url, getOTObjectService());			
			return refObject;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}

}

package org.concord.otrunk;

import java.net.URL;
import java.util.logging.Logger;

import org.concord.framework.otrunk.DefaultOTObject;
import org.concord.framework.otrunk.OTObject;
import org.concord.framework.otrunk.OTResourceSchema;
import org.concord.framework.otrunk.OTrunk;

public class OTIncludeRootObject extends DefaultOTObject 
{	
	public static interface ResourceSchema extends OTResourceSchema
	{
		public URL getHref();
	}
	protected ResourceSchema resources;

	OTObject refObject = null;
	private Logger logger = Logger.getLogger(this.getClass().getName());
	
	public OTIncludeRootObject(ResourceSchema resources)
    {
	    super(resources);
	    this.resources = resources;
    }

	public URL getHref()
	{
		return resources.getHref();
	}
	
	public OTObject getReference()
	{
		if(refObject != null){
			return refObject;
		}
		
		URL url = getHref();
		
		OTrunkImpl otrunkImpl = (OTrunkImpl)getOTObjectService().getOTrunkService(OTrunk.class);
		
		try {
			refObject = otrunkImpl.getExternalObject(url, getOTObjectService());
			logger.info("included root object: " + refObject.otExternalId());
			return refObject;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}

}

Add logging statement to OTIncludeRootObject to print the id of the root object it references.