It was some openjdk compilation issue, I don't remember the details, people kept complaining so I changed the code. Doesn't really worry me either way, I just recognized the code so sent you an FYI.
Regards Scott On 27/06/2011, at 9:36 AM, Adam Heath wrote: > On 06/26/2011 04:32 PM, Scott Gray wrote: >> Bit of back and forth regarding == vs. equals: >> http://svn.apache.org/viewvc?view=revision&revision=810438 > > But what was the original problem? EntityOperator.FOO are all singletons. > Hence the lookupFoo functions. == equality should hold in all cases. If > not, it's a bug in the jdk, and I don't think that ofbiz should try to work > around that(there can be other == equality tests in the code base that might > have similiar issues). > >> Regards >> Scott >> >> On 27/06/2011, at 6:10 AM, [email protected] wrote: >> >>> Author: doogie >>> Date: Sun Jun 26 18:10:10 2011 >>> New Revision: 1139876 >>> >>> URL: http://svn.apache.org/viewvc?rev=1139876&view=rev >>> Log: >>> OPTIMIZE: ViewConditionExpr.createCondition: Use == for EntityOperator >>> equality, instead of equals(); slight speedup, and the code looks a bit >>> nicer. >>> >>> Modified: >>> >>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java >>> >>> Modified: >>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java?rev=1139876&r1=1139875&r2=1139876&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java >>> (original) >>> +++ >>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java >>> Sun Jun 26 18:10:10 2011 >>> @@ -1291,7 +1291,7 @@ public class ModelViewEntity extends Mod >>> public EntityCondition createCondition(ModelFieldTypeReader >>> modelFieldTypeReader, List<String> entityAliasStack) { >>> Object value = this.value; >>> // If IN or BETWEEN operator, see if value is a literal list >>> and split it >>> - if ((this.operator.equals(EntityOperator.IN) || >>> this.operator.equals(EntityOperator.BETWEEN)) >>> + if ((this.operator == EntityOperator.IN || this.operator == >>> EntityOperator.BETWEEN) >>> && value instanceof String) { >>> String delim = null; >>> if (((String)value).indexOf("|")>= 0) { >>> @@ -1311,7 +1311,7 @@ public class ModelViewEntity extends Mod >>> } >>> >>> // don't convert the field to the desired type if this is an IN >>> or BETWEEN operator and we have a Collection >>> - if (!((this.operator.equals(EntityOperator.IN) || >>> this.operator.equals(EntityOperator.BETWEEN)) >>> + if (!((this.operator == EntityOperator.IN || this.operator == >>> EntityOperator.BETWEEN) >>> && value instanceof Collection<?>)) { >>> // now to a type conversion for the target fieldName >>> value = >>> this.viewEntityCondition.modelViewEntity.convertFieldValue(lhsField, value, >>> modelFieldTypeReader, FastMap.<String, Object>newInstance()); >>> @@ -1326,7 +1326,7 @@ public class ModelViewEntity extends Mod >>> rhs = EntityFieldValue.makeFieldValue(this.relFieldName, >>> this.relEntityAlias, entityAliasStack, >>> this.viewEntityCondition.modelViewEntity); >>> } >>> >>> - if (this.operator.equals(EntityOperator.NOT_EQUAL)&& value != >>> null) { >>> + if (this.operator == EntityOperator.NOT_EQUAL&& value != >>> null) { >>> // since some databases don't consider nulls in != >>> comparisons, explicitly include them >>> // this makes more sense logically, but if anyone ever >>> needs it to not behave this way we should add an "or-null" attribute that >>> is true by default >>> if (ignoreCase) { >>> @@ -1340,7 +1340,7 @@ public class ModelViewEntity extends Mod >>> EntityOperator.OR, >>> EntityCondition.makeCondition(lhs, >>> EntityOperator.EQUALS, null)); >>> } >>> - } else if ( value == null&& this.relFieldName == null&& >>> (this.operator.equals(EntityOperator.EQUALS) || >>> this.operator.equals(EntityOperator.NOT_EQUAL))) { >>> + } else if ( value == null&& this.relFieldName == null&& >>> (this.operator == EntityOperator.EQUALS || this.operator == >>> EntityOperator.NOT_EQUAL)) { >>> return EntityCondition.makeCondition(lhs, this.operator, >>> null); >>> } else { >>> if (ignoreCase) { >>> >>> >> >
smime.p7s
Description: S/MIME cryptographic signature
