java.util.Date d = (java.util.Date) dateFormat.parseObject(str);
java.util.Date d; synchronized (dateFormat) { d = (java.util.Date) dateFormat.parseObject(str); }
  public static Timestamp valueOf(String str)  {    int nanos = 0;    int dot = str.indexOf('.');    if (dot != -1)      {	if (str.lastIndexOf('.') != dot)	  throw new IllegalArgumentException(str);	int len = str.length() - dot - 1;	if (len < 1 || len > 9)	  throw new IllegalArgumentException(str);	nanos = Integer.parseInt(str.substring(dot + 1));	for (int i = len; i < 9; i++)	  nanos *= 10;		str = str.substring(0, dot);      }    try      {	java.util.Date d = (java.util.Date) dateFormat.parseObject(str);	if (d == null)	  throw new IllegalArgumentException(str);	Timestamp ts = new Timestamp(d.getTime() + nanos / 1000000);	ts.nanos = nanos;	return ts;      }    catch (ParseException e)      {	throw new IllegalArgumentException(str);      }  }