Changes to ExportWriteData If fieldStartDelimiter == "", do not makeDoubleDelimiterString. line 255: if (fieldStartDelimiter.length() == 0) { doubleDelimiter = false; } ControlInfo: Does not validate delimiter if it is empty int charDelSize = getFieldStartDelimiter().length(); if (charDelSize > 1) { char charDel = (getFieldStartDelimiter()).charAt(0); //The period was specified as a character string delimiter. if(charDel == '.') { throw LoadError.periodAsCharDelimiterNotAllowed(); } // check for the invalid delimiters. A delimiter is not valid it // is used more than once, i.e same character is used // character data delimiter and also as a column delimiter. // An hex decimal character (0-9, a-f ,A-F ) is not a // valid delimiter, because binary data can be imported/exported // as hex string. if(colDel == charDel || colDel == '.' || Character.isSpaceChar(colDel) || Character.isSpaceChar(charDel) || Character.digit(colDel, 16) != -1 || Character.digit(charDel, 16) != -1 ) { throw LoadError.delimitersAreNotMutuallyExclusive(); } } else { if(colDel == '.' || Character.isSpaceChar(colDel) || Character.digit(colDel, 16) != -1) { throw LoadError.delimitersAreNotMutuallyExclusive(); } } ExportAbstract: //rowObjects[colNum]=rs.getString(colNum + 1); String value = rs.getString(colNum + 1); int ctype = rsm.getColumnType(colNum +1); if (ctype == Types.TIMESTAMP) { String trunValue = null; if (value != null) { int len = value.length(); if (len > 18) { // TODO: An improvement to // this code would be to // find the final zero, // get the length to the // end of the string, and // add extra zeros or // truncate as needed.) trunValue = value.substring(0, 19) + ".000"; } else { trunValue = value; } } rowObjects[colNum]=trunValue; } else { rowObjects[colNum]=value; }