diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 6912b822a5..78b75dd60e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -59,6 +59,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.BitSet; import java.util.Collection; +import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -143,16 +144,19 @@ abstract class AbstractRecord extends AbstractStore implements Record { @Override final List getAttachables() { - List result = new ArrayList(); + List result = null; int size = size(); for (int i = 0; i < size; i++) { if (values[i] instanceof Attachable) { + if (result == null) + result = new ArrayList(); + result.add((Attachable) values[i]); } } - return result; + return result == null ? Collections.emptyList() : result; } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java index 16033fcf75..5a0c15fafb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java @@ -85,9 +85,10 @@ abstract class AbstractStore implements AttachableInternal { public final void attach(Configuration c) { configuration = c; - for (Attachable attachable : getAttachables()) { - attachable.attach(c); - } + final List attachables = getAttachables(); + final int size = attachables.size(); + for (int i = 0; i < size; i++) + attachables.get(i).attach(c); } @Override