From 7d1e4dd2dfdffb1d7df1c34ecda23b2967be5760 Mon Sep 17 00:00:00 2001 From: leventov Date: Tue, 7 Oct 2014 00:52:26 +0400 Subject: [PATCH] HCOLL-156 changed default value object factory from AllocateInstanceObjectFactory to NewInstanceObjectFactory --- .../openhft/chronicle/map/SerializationBuilder.java | 9 ++++++--- .../map/fromdocs/OpenJDKAndHashMapExamplesTest.java | 13 ++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/SerializationBuilder.java b/src/main/java/net/openhft/chronicle/map/SerializationBuilder.java index 6728d638f..afdefe5f6 100644 --- a/src/main/java/net/openhft/chronicle/map/SerializationBuilder.java +++ b/src/main/java/net/openhft/chronicle/map/SerializationBuilder.java @@ -63,10 +63,10 @@ final class SerializationBuilder implements Cloneable { this.bufferIdentity = role; this.eClass = eClass; - ObjectFactory factory = this.factory; - if (factory == null && role == Role.VALUE) { + ObjectFactory factory = null; + if (role == Role.VALUE) { factory = concreteClass(eClass) && marshallerUseFactory(eClass) ? - new AllocateInstanceObjectFactory(eClass) : + new NewInstanceObjectFactory(eClass) : NullObjectFactory.INSTANCE; } @@ -85,6 +85,9 @@ final class SerializationBuilder implements Cloneable { if (marshaller != null) marshaller(marshaller, factory); } + if (role == Role.VALUE && concreteClass(eClass) && marshallerUseFactory(eClass)) { + factory(factory); + } } @SuppressWarnings("unchecked") diff --git a/src/test/java/net/openhft/chronicle/map/fromdocs/OpenJDKAndHashMapExamplesTest.java b/src/test/java/net/openhft/chronicle/map/fromdocs/OpenJDKAndHashMapExamplesTest.java index dbf61accc..7c90b209e 100644 --- a/src/test/java/net/openhft/chronicle/map/fromdocs/OpenJDKAndHashMapExamplesTest.java +++ b/src/test/java/net/openhft/chronicle/map/fromdocs/OpenJDKAndHashMapExamplesTest.java @@ -52,15 +52,11 @@ public class OpenJDKAndHashMapExamplesTest { @Test public void bondExample() throws IOException, InterruptedException { - Class bondVODirectClass = directClassFor(BondVOInterface.class); - NewInstanceObjectFactory bondVODirectObjectFactory = - new NewInstanceObjectFactory(bondVODirectClass); File file = new File(TMP + "/chm-myBondPortfolioCHM-" + System.nanoTime()); file.deleteOnExit(); ChronicleMap chm = ChronicleMapBuilder - .of(String.class, bondVODirectClass) - .valueFactory(bondVODirectObjectFactory) - .entrySize(512) + .of(String.class, directClassFor(BondVOInterface.class)) + .keySize(10) .create(file); @@ -80,9 +76,8 @@ public class OpenJDKAndHashMapExamplesTest { ChronicleMap chmB = ChronicleMapBuilder - .of(String.class, bondVODirectClass) - .valueFactory(bondVODirectObjectFactory) - .entrySize(320) + .of(String.class, directClassFor(BondVOInterface.class)) + .keySize(10) .create(file); // ZERO Copy but creates a new off heap reference each time