diff --git a/querydsl-core/src/main/java/com/mysema/query/types/OperationImpl.java b/querydsl-core/src/main/java/com/mysema/query/types/OperationImpl.java index b5ea624fb..2fe3f08ca 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/OperationImpl.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/OperationImpl.java @@ -13,13 +13,12 @@ */ package com.mysema.query.types; +import javax.annotation.concurrent.Immutable; import java.io.IOException; import java.io.ObjectInputStream; import java.lang.reflect.Field; import java.util.List; -import javax.annotation.concurrent.Immutable; - import com.google.common.collect.ImmutableList; @@ -104,9 +103,12 @@ public class OperationImpl extends ExpressionBase implements Operation Field field = OperationImpl.class.getDeclaredField("operator"); field.setAccessible(true); field.set(this, OperatorImpl.OPS.get(operator.getId())); - } catch (Exception e) { + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { throw new RuntimeException(e); } + } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/PathMetadata.java b/querydsl-core/src/main/java/com/mysema/query/types/PathMetadata.java index 79ed1ef58..59fcafc14 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/PathMetadata.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/PathMetadata.java @@ -106,7 +106,9 @@ public final class PathMetadata implements Serializable{ Field field = PathMetadata.class.getDeclaredField("hashCode"); field.setAccessible(true); field.set(this, 31 * element.hashCode() + pathType.hashCode()); - } catch (Exception e) { + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { throw new RuntimeException(e); } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/DslExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/DslExpression.java index 0090123c3..6862e0b26 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/DslExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/DslExpression.java @@ -13,11 +13,10 @@ */ package com.mysema.query.types.expr; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.lang.reflect.Field; - -import com.mysema.query.types.*; +import com.mysema.query.types.Expression; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; +import com.mysema.query.types.PathImpl; /** * DslExpression is the base class for DSL expressions, but {@link SimpleExpression} is the base class @@ -32,11 +31,8 @@ public abstract class DslExpression implements Expression { protected final Expression mixin; - protected transient final int hashCode; - public DslExpression(Expression mixin) { this.mixin = mixin; - this.hashCode = mixin.hashCode(); } @Override @@ -70,7 +66,7 @@ public abstract class DslExpression implements Expression { @Override public final int hashCode() { - return hashCode; + return mixin.hashCode(); } @Override @@ -78,16 +74,4 @@ public abstract class DslExpression implements Expression { return mixin.toString(); } - private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { - try { - ois.defaultReadObject(); - Field field = DslExpression.class.getDeclaredField("hashCode"); - field.setAccessible(true); - field.set(this, mixin.hashCode()); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - }