diff --git a/client/src/org/compiere/apps/search/Find.java b/client/src/org/compiere/apps/search/Find.java index baafb3dbd2..90b0d1da12 100644 --- a/client/src/org/compiere/apps/search/Find.java +++ b/client/src/org/compiere/apps/search/Find.java @@ -38,9 +38,6 @@ import org.compiere.util.*; * * @author Jorg Janke * @version $Id: Find.java,v 1.3 2006/07/30 00:51:27 jjanke Exp $ - * - * @author Teo Sarca, SC ARHIPAC SERVICE SRL - *
  • FR [ 1797687 ] Find Form: boolean is not working ok */ public final class Find extends CDialog implements ActionListener, ChangeListener, DataStatusListener @@ -728,10 +725,12 @@ public final class Find extends CDialog // Value ****** Object value = advancedTable.getValueAt(row, INDEX_VALUE); + if (value == null) + continue; Object parsedValue = parseValue(field, value); if (parsedValue == null) continue; - String infoDisplay = value != null ? value.toString() : parsedValue.toString(); + String infoDisplay = value.toString(); if (field.isLookup()) infoDisplay = field.getLookup().getDisplay(value); else if (field.getDisplayType() == DisplayType.YesNo) @@ -740,10 +739,12 @@ public final class Find extends CDialog if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op)) { Object value2 = advancedTable.getValueAt(row, INDEX_VALUE2); + if (value2 == null) + continue; Object parsedValue2 = parseValue(field, value2); + String infoDisplay_to = value2.toString(); if (parsedValue2 == null) continue; - String infoDisplay_to = value2 != null ? value2.toString() : parsedValue2.toString(); m_query.addRangeRestriction(ColumnSQL, parsedValue, parsedValue2, infoName, infoDisplay, infoDisplay_to); } @@ -751,7 +752,9 @@ public final class Find extends CDialog if (!(parsedValue instanceof Integer)) { continue; } - m_query.addRestriction(getSubCategoryWhereClause(((Integer) parsedValue).intValue())); + m_query + + .addRestriction(getSubCategoryWhereClause(((Integer) parsedValue).intValue())); } else m_query.addRestriction(ColumnSQL, Operator, parsedValue, @@ -865,6 +868,8 @@ public final class Find extends CDialog */ private Object parseValue (GridField field, Object in) { + if (in == null) + return null; int dt = field.getDisplayType(); try { @@ -872,8 +877,6 @@ public final class Find extends CDialog if (dt == DisplayType.Integer || (DisplayType.isID(dt) && field.getColumnName().endsWith("_ID"))) { - if (in == null) - return null; if (in instanceof Integer) return in; int i = Integer.parseInt(in.toString()); @@ -882,8 +885,6 @@ public final class Find extends CDialog // Return BigDecimal else if (DisplayType.isNumeric(dt)) { - if (in == null) - return null; if (in instanceof BigDecimal) return in; return DisplayType.getNumberFormat(dt).parse(in.toString()); @@ -891,8 +892,6 @@ public final class Find extends CDialog // Return Timestamp else if (DisplayType.isDate(dt)) { - if (in == null) - return null; if (in instanceof Timestamp) return in; long time = 0; @@ -909,13 +908,8 @@ public final class Find extends CDialog return new Timestamp(time); } // Return Y/N for Boolean - else if (DisplayType.YesNo == dt) - { - if (in == null) - return "N"; - else if (in instanceof Boolean) - return ((Boolean)in).booleanValue() ? "Y" : "N"; - } + else if (in instanceof Boolean) + return ((Boolean)in).booleanValue() ? "Y" : "N"; } catch (Exception ex) {