diff --git a/source/java/org/alfresco/repo/avm/AVMNodeFactory.java b/source/java/org/alfresco/repo/avm/AVMNodeFactory.java index 7efb311b63..1927f371ad 100644 --- a/source/java/org/alfresco/repo/avm/AVMNodeFactory.java +++ b/source/java/org/alfresco/repo/avm/AVMNodeFactory.java @@ -22,6 +22,7 @@ import org.alfresco.repo.avm.hibernate.LayeredDirectoryNodeBean; import org.alfresco.repo.avm.hibernate.LayeredFileNodeBean; import org.alfresco.repo.avm.hibernate.PlainDirectoryNodeBean; import org.alfresco.repo.avm.hibernate.PlainFileNodeBean; +import org.hibernate.proxy.HibernateProxy; /** * Responsible for instantiating AVMNode concrete subclasses from @@ -40,6 +41,8 @@ public class AVMNodeFactory { return null; } + HibernateProxy proxy = (HibernateProxy)bean; + bean = (AVMNodeBean)proxy.getHibernateLazyInitializer().getImplementation(); if (bean instanceof PlainFileNodeBean) { return new PlainFileNode((PlainFileNodeBean)bean); diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java index 68313ef3e6..343e57fe44 100644 --- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java +++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java @@ -79,6 +79,8 @@ public class AVMServiceTest extends TestCase ArrayList toSnapshot = new ArrayList(); toSnapshot.add("main"); fService.createSnapshot(toSnapshot); + AVMNode node = fService.lookup(-1, "main:/"); + assertTrue(node instanceof PlainDirectoryNode); } catch (Exception e) { diff --git a/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml b/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml index c27b85caea..e62e5d6993 100644 --- a/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml +++ b/source/java/org/alfresco/repo/avm/hibernate/AVM.hbm.xml @@ -7,7 +7,7 @@ + optimistic-lock="version" lazy="true"> @@ -50,11 +50,11 @@ + lazy="true"> + discriminator-value="layereddirectory" lazy="true"> + discriminator-value="plaindirectory" proxy="PlainDirectoryNodeBean" lazy="true"> + name="PlainFileNodeBeanImpl" proxy="PlainFileNodeBean" lazy="true"> + discriminator-value="layeredfile" proxy="LayeredFileNodeBean" lazy="true"> diff --git a/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java b/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java index f1e9f3553a..dedc7078d6 100644 --- a/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java +++ b/source/java/org/alfresco/repo/avm/hibernate/ContentBeanImpl.java @@ -39,6 +39,13 @@ public class ContentBeanImpl implements ContentBean */ private long fVers; + /** + * Default constructor. + */ + public ContentBeanImpl() + { + } + /** * Basic constructor with an id. */