diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index f1cf9343d6..358a1eea2a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -473,7 +473,7 @@ class DefaultRenderContext extends AbstractContext implements Ren @Override public final boolean separatorRequired() { - return separatorRequired; + return separatorRequired && !separator && !newline; } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java index 988df9df19..01bd50dedf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java @@ -114,10 +114,15 @@ class QueryPartCollectionView extends AbstractQueryPart imp int size = rendersContent.cardinality(); boolean format = ctx.format() && size >= indentSize; boolean previousQualify = ctx.qualify(); + Object previousIndented = ctx.data(DATA_LIST_ALREADY_INDENTED); + boolean indent = format && !TRUE.equals(previousIndented); if (qualify != null) ctx.qualify(qualify); + if (indent) + ctx.formatIndentStart(); + if (ctx.separatorRequired()) if (format) ctx.formatSeparator(); @@ -130,12 +135,6 @@ class QueryPartCollectionView extends AbstractQueryPart imp } else { - Object previousIndented = ctx.data(DATA_LIST_ALREADY_INDENTED); - boolean indent = format && !TRUE.equals(previousIndented); - - if (indent) - ctx.formatIndentStart(); - int j = 0; int k = 0; for (T part : this) { @@ -164,11 +163,11 @@ class QueryPartCollectionView extends AbstractQueryPart imp else ctx.visit(part); } - - if (indent) - ctx.formatIndentEnd().formatNewLine(); } + if (indent) + ctx.formatIndentEnd().formatNewLine(); + if (qualify != null) ctx.qualify(previousQualify); }