diff --git a/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java b/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java index 0afc2f5d6..7d4381db3 100644 --- a/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java @@ -35,7 +35,7 @@ public final class JoinExpression implements Serializable { @Nullable private final Predicate condition; - private final Set flags; + private final ImmutableSet flags; private final Expression target; @@ -65,7 +65,7 @@ public final class JoinExpression implements Serializable { this.type = type; this.target = target; this.condition = condition; - this.flags = flags; + this.flags = ImmutableSet.copyOf(flags); } @Nullable diff --git a/querydsl-core/src/main/java/com/mysema/query/SearchResults.java b/querydsl-core/src/main/java/com/mysema/query/SearchResults.java index a6a782982..a7810d518 100644 --- a/querydsl-core/src/main/java/com/mysema/query/SearchResults.java +++ b/querydsl-core/src/main/java/com/mysema/query/SearchResults.java @@ -26,9 +26,10 @@ import com.google.common.collect.ImmutableList; */ public final class SearchResults { - private static final SearchResults EMPTY = new SearchResults( + private static final SearchResults EMPTY = new SearchResults( ImmutableList.of(), Long.MAX_VALUE, 0l, 0l); + @SuppressWarnings("unchecked") public static SearchResults emptyResults() { return (SearchResults)EMPTY; }; diff --git a/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java b/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java index cc87e46d4..8fe552518 100644 --- a/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java +++ b/querydsl-core/src/main/java/com/mysema/query/SimpleProjectable.java @@ -49,6 +49,7 @@ public interface SimpleProjectable { * * @return */ + @Deprecated CloseableIterator iterateDistinct(); /** @@ -63,6 +64,7 @@ public interface SimpleProjectable { * * @return */ + @Deprecated List listDistinct(); /** @@ -96,6 +98,7 @@ public interface SimpleProjectable { * * @return */ + @Deprecated SearchResults listDistinctResults(); /** @@ -110,6 +113,7 @@ public interface SimpleProjectable { * * @return */ + @Deprecated long countDistinct(); } diff --git a/querydsl-core/src/main/java/com/mysema/query/support/SerializerBase.java b/querydsl-core/src/main/java/com/mysema/query/support/SerializerBase.java index 814380a21..c62e55f80 100644 --- a/querydsl-core/src/main/java/com/mysema/query/support/SerializerBase.java +++ b/querydsl-core/src/main/java/com/mysema/query/support/SerializerBase.java @@ -49,7 +49,7 @@ public abstract class SerializerBase> implements Vis private String anonParamPrefix = "_"; - private final Map constantToLabel = new HashMap(4); + private Map constantToLabel; @SuppressWarnings("unchecked") private final S self = (S) this; @@ -82,6 +82,9 @@ public abstract class SerializerBase> implements Vis } public Map getConstantToLabel() { + if (constantToLabel == null) { + constantToLabel = new HashMap(4); + } return constantToLabel; } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/OperatorImpl.java b/querydsl-core/src/main/java/com/mysema/query/types/OperatorImpl.java index dd5f89250..722d318a8 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/OperatorImpl.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/OperatorImpl.java @@ -33,7 +33,7 @@ public final class OperatorImpl implements Operator { } public OperatorImpl(String id, ImmutableList> types) { - this.id = id.intern(); + this.id = id; this.types = types; } @@ -52,8 +52,7 @@ public final class OperatorImpl implements Operator { if (o == this) { return true; } else if (o instanceof Operator) { - // Strings are interned, so this is safe - return ((Operator)o).getId() == id; + return ((Operator)o).getId().equals(id); } else { return false; } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/PathType.java b/querydsl-core/src/main/java/com/mysema/query/types/PathType.java index 1fc64bf06..970aff2ed 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/PathType.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/PathType.java @@ -70,8 +70,6 @@ public enum PathType implements Operator> { */ VARIABLE; - private final String id = name().intern(); - @Override public List> getTypes() { return Collections.emptyList(); @@ -79,7 +77,7 @@ public enum PathType implements Operator> { @Override public String getId() { - return id; + return name(); } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/QTuple.java b/querydsl-core/src/main/java/com/mysema/query/types/QTuple.java index 948653829..74ac5afaf 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/QTuple.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/QTuple.java @@ -120,8 +120,8 @@ public class QTuple extends ExpressionBase implements FactoryExpression[]... args) { super(Tuple.class); ImmutableList.Builder> builder = ImmutableList.builder(); - for (Expression[] exprs: args){ - builder.addAll(Arrays.asList(exprs)); + for (Expression[] exprs: args) { + builder.add(exprs); } this.args = builder.build(); } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/Templates.java b/querydsl-core/src/main/java/com/mysema/query/types/Templates.java index a6c3a813e..d5d425e0a 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/Templates.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/Templates.java @@ -13,7 +13,7 @@ */ package com.mysema.query.types; -import java.util.IdentityHashMap; +import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; @@ -27,9 +27,9 @@ public class Templates { public static final Templates DEFAULT = new Templates(); - private final Map templates = new IdentityHashMap(); + private final Map templates = new HashMap(); - private final Map precedence = new IdentityHashMap(); + private final Map precedence = new HashMap(); private final TemplateFactory templateFactory; diff --git a/querydsl-core/src/main/java/com/mysema/query/util/CollectionUtils.java b/querydsl-core/src/main/java/com/mysema/query/util/CollectionUtils.java index 599376142..5886850a7 100644 --- a/querydsl-core/src/main/java/com/mysema/query/util/CollectionUtils.java +++ b/querydsl-core/src/main/java/com/mysema/query/util/CollectionUtils.java @@ -36,7 +36,7 @@ public final class CollectionUtils { public static List add(List list, T element) { if (list.isEmpty()) { return ImmutableList.of(element); - } else if (list.size() == 1) { + } else if (list instanceof ImmutableList) { final List old = list; list = Lists.newArrayList(); list.add(old.get(0)); @@ -48,7 +48,7 @@ public final class CollectionUtils { public static Set add(Set set, T element) { if (set.isEmpty()) { return ImmutableSet.of(element); - } else if (set.size() == 1) { + } else if (set instanceof ImmutableSet) { final Set old = set; set = Sets.newHashSet(); set.add(old.iterator().next()); @@ -60,7 +60,7 @@ public final class CollectionUtils { public static Set addSorted(Set set, T element) { if (set.isEmpty()) { return ImmutableSet.of(element); - } else if (set.size() == 1) { + } else if (set instanceof ImmutableSet) { Set old = set; set = Sets.newLinkedHashSet(); set.add(old.iterator().next()); @@ -72,7 +72,7 @@ public final class CollectionUtils { public static Map put(Map map, K key, V value) { if (map.isEmpty()) { return ImmutableMap.of(key, value); - } else if (map.size() == 1) { + } else if (map instanceof ImmutableMap) { map = Maps.newHashMap(map); } map.put(key, value); diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/AbstractJPASubQuery.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/AbstractJPASubQuery.java index 3541f0059..0f6d6430d 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/AbstractJPASubQuery.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/AbstractJPASubQuery.java @@ -13,8 +13,6 @@ */ package com.mysema.query.jpa; -import java.util.Collection; - import com.mysema.query.DefaultQueryMetadata; import com.mysema.query.JoinExpression; import com.mysema.query.JoinType; diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPACommonQuery.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPACommonQuery.java index be05f5481..5f979d64e 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPACommonQuery.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPACommonQuery.java @@ -13,8 +13,6 @@ */ package com.mysema.query.jpa; -import java.util.Collection; - import com.mysema.query.Query; import com.mysema.query.types.CollectionExpression; import com.mysema.query.types.EntityPath; diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java index 1a8aa5892..62fe8250e 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java @@ -28,7 +28,6 @@ import com.mysema.query.types.ExpressionUtils; import com.mysema.query.types.Path; import com.mysema.query.types.Predicate; import com.mysema.query.types.TemplateExpressionImpl; -import com.mysema.query.types.path.ListPath; /** * JPAQueryMixin extends {@link QueryMixin} to support JPQL join construction