Tag: bugs
ATG Date Tag Converter is Buggy
by Frank Kim on Nov.23, 2009, under Page Development
(Photo: Leaf on my car by exfordy)
The ATG Date Tag Converter is buggy because Java’s DateFormat is inherently unsafe for multithreaded use. This is documented in ATG PR #123210 DateTagConverter.convertObjectToString() method is not thread safe.
You run into this problem whenever you do something like this.
<dsp:valueof param=”creationDate” converter=”date” date=”M/dd/yyyy”/>
Unfortunately there is no work around. If using the Date Tag Converter is not causing problems for you, i.e you don’t see a stack trace like below, then you can ignore this bug.
2009-04-17 00:19:08,220 ERROR [nucleusNamespace.atg.dynamo.servlet.dafpipeline.DynamoServlet] java.lang.ArrayIndexOutOfBoundsException: 502 at sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate(BaseCalendar.java:436) at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2081) at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:1996) at java.util.Calendar.setTimeInMillis(Calendar.java:1071) at java.util.Calendar.setTime(Calendar.java:1037) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:785) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:778) at java.text.DateFormat.format(DateFormat.java:314) at atg.droplet.DateTagConverter.convertObjectToString(DateTagConverter.java:176)
But if you do see a bug like this then you might need to create a custom droplet to format the date. The droplet should only use DateFormat instances that are not static. I usually make my DateFormat instances local.
RQLQueryRange does not sort dates correctly
by Frank Kim on Nov.20, 2009, under Page Development
(Photo: Roppongi District Desktop by powerbooktrance)
This was bedeviling me for awhile. I could not figure out why my RQLQueryRange droplet was not sorting by dates correctly. It turns out this is a known ATG bug which only happens when you are using Oracle, which is 99% of the time.
Considering that this bug has been open since 2003 one can assume ATG is not interested in fixing it. This is probably because there is a simple work around.
Instead of using the sortProperties parameter, put the the sort directive directly in the RQL statement in the queryRQL parameter.
<dsp:param name="queryRQL" value="ALL ORDER BY creationDate DESC"/>

