Author: shawkins
Date: 2012-04-09 17:18:08 -0400 (Mon, 09 Apr 2012)
New Revision: 3983
Modified:
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
Log:
TEIID-1995 fix to ensure consistent error message across vms
Modified:
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
===================================================================
---
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java 2012-04-09
19:23:06 UTC (rev 3982)
+++
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java 2012-04-09
21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
package org.teiid.core.types.basic;
import java.sql.Date;
+import java.util.regex.Pattern;
import org.teiid.core.CorePlugin;
import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
public class StringToDateTransform extends Transform {
+
+ private static boolean validate = true;
+ private static Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");
//$NON-NLS-1$
+
+ static {
+ try {
+ Date.valueOf("2000-14-01"); //$NON-NLS-1$
+ } catch (Exception e) {
+ validate = false;
+ }
+ }
/**
* This method transforms a value of the source type into a value
@@ -45,9 +57,12 @@
try {
result = Date.valueOf( (String) value );
} catch(Exception e) {
+ if (!validate && pattern.matcher((String)value).matches()) {
+ throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
+ }
throw new TransformationException(e, "ERR.003.029.0018",
CorePlugin.Util.getString("ERR.003.029.0018", value)); //$NON-NLS-1$
//$NON-NLS-2$
}
- if (!result.toString().equals(value)) {
+ if (validate && !result.toString().equals(value)) {
throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
}
return result;
Modified:
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
===================================================================
---
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java 2012-04-09
19:23:06 UTC (rev 3982)
+++
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java 2012-04-09
21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
package org.teiid.core.types.basic;
import java.sql.Time;
+import java.util.regex.Pattern;
import org.teiid.core.CorePlugin;
import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
public class StringToTimeTransform extends Transform {
+
+ private static boolean validate = true;
+ private static Pattern pattern = Pattern.compile("\\d{2}:\\d{2}:\\d{2}");
//$NON-NLS-1$
+
+ static {
+ try {
+ Time.valueOf("26:10:10"); //$NON-NLS-1$
+ } catch (Exception e) {
+ validate = false;
+ }
+ }
/**
* This method transforms a value of the source type into a value
@@ -45,9 +57,12 @@
try {
result = Time.valueOf((String)value);
} catch(Exception e) {
+ if (!validate && pattern.matcher((String)value).matches()) {
+ throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
+ }
throw new TransformationException(e, "ERR.003.029.0025",
CorePlugin.Util.getString("ERR.003.029.0025", value)); //$NON-NLS-1$
//$NON-NLS-2$
}
- if (!result.toString().equals(value)) {
+ if (validate && !result.toString().equals(value)) {
throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
}
return result;
Modified:
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
===================================================================
---
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java 2012-04-09
19:23:06 UTC (rev 3982)
+++
branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java 2012-04-09
21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
package org.teiid.core.types.basic;
import java.sql.Timestamp;
+import java.util.regex.Pattern;
import org.teiid.core.CorePlugin;
import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
public class StringToTimestampTransform extends Transform {
+
+ private static boolean validate = true;
+ private static Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}
\\d{2}:\\d{2}:\\d{2}"); //$NON-NLS-1$
+
+ static {
+ try {
+ Timestamp.valueOf("2000-14-01 00:00:00"); //$NON-NLS-1$
+ } catch (Exception e) {
+ validate = false;
+ }
+ }
/**
* This method transforms a value of the source type into a value
@@ -45,10 +57,13 @@
try {
result = Timestamp.valueOf( (String) value );
} catch(Exception e) {
+ if (!validate && pattern.matcher((String)value).matches()) {
+ throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
+ }
throw new TransformationException(e, "ERR.003.029.0024",
CorePlugin.Util.getString("ERR.003.029.0024", value)); //$NON-NLS-1$
//$NON-NLS-2$
}
//validate everything except for fractional seconds
- if (!((String)value).startsWith(result.toString().substring(0, 19))) {
+ if (validate && !((String)value).startsWith(result.toString().substring(0,
19))) {
throw new
TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date",
value, getTargetType().getSimpleName())); //$NON-NLS-1$
}
return result;
Show replies by date