1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-26 22:12:05 +01:00

SMACK-328 Added patches to fix threading issue with usage of SimpleDateFormatter.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_2_0@12030 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
rcollier 2011-02-21 20:45:00 +00:00
parent 75094d0199
commit 64d36a52e3
2 changed files with 17 additions and 16 deletions

View file

@ -46,8 +46,9 @@ public class QueueDetails implements PacketExtension {
*/ */
public static final String NAMESPACE = "http://jabber.org/protocol/workgroup"; public static final String NAMESPACE = "http://jabber.org/protocol/workgroup";
private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); private static final String DATE_FORMAT = "yyyyMMdd'T'HH:mm:ss";
private SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
/** /**
* The list of users in the queue. * The list of users in the queue.
*/ */
@ -124,7 +125,7 @@ public class QueueDetails implements PacketExtension {
if (timestamp != null) { if (timestamp != null) {
buf.append("<join-time>"); buf.append("<join-time>");
buf.append(DATE_FORMATTER.format(timestamp)); buf.append(dateFormat.format(timestamp));
buf.append("</join-time>"); buf.append("</join-time>");
} }
@ -139,8 +140,10 @@ public class QueueDetails implements PacketExtension {
* Provider class for QueueDetails packet extensions. * Provider class for QueueDetails packet extensions.
*/ */
public static class Provider implements PacketExtensionProvider { public static class Provider implements PacketExtensionProvider {
public PacketExtension parseExtension(XmlPullParser parser) throws Exception { public PacketExtension parseExtension(XmlPullParser parser) throws Exception {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
QueueDetails queueDetails = new QueueDetails(); QueueDetails queueDetails = new QueueDetails();
int eventType = parser.getEventType(); int eventType = parser.getEventType();
@ -163,7 +166,7 @@ public class QueueDetails implements PacketExtension {
eventType = parser.next(); eventType = parser.next();
while ((eventType != XmlPullParser.END_TAG) while ((eventType != XmlPullParser.END_TAG)
|| (! "user".equals(parser.getName()))) || (! "user".equals(parser.getName())))
{ {
if ("position".equals(parser.getName())) { if ("position".equals(parser.getName())) {
position = Integer.parseInt(parser.nextText()); position = Integer.parseInt(parser.nextText());
} }
@ -171,23 +174,19 @@ public class QueueDetails implements PacketExtension {
time = Integer.parseInt(parser.nextText()); time = Integer.parseInt(parser.nextText());
} }
else if ("join-time".equals(parser.getName())) { else if ("join-time".equals(parser.getName())) {
joinTime = DATE_FORMATTER.parse(parser.nextText()); joinTime = dateFormat.parse(parser.nextText());
} }
else if( parser.getName().equals( "waitTime" ) ) { else if( parser.getName().equals( "waitTime" ) ) {
Date wait = DATE_FORMATTER.parse( parser.nextText() ); Date wait = dateFormat.parse(parser.nextText());
System.out.println( wait ); System.out.println( wait );
} }
eventType = parser.next(); eventType = parser.next();
if (eventType != XmlPullParser.END_TAG) { if (eventType != XmlPullParser.END_TAG) {
// throw exception // throw exception
} }
} }
queueDetails.addUser(new QueueUser(uid, position, time, joinTime)); queueDetails.addUser(new QueueUser(uid, position, time, joinTime));

View file

@ -39,7 +39,8 @@ public class QueueOverview implements PacketExtension {
*/ */
public static String NAMESPACE = "http://jabber.org/protocol/workgroup"; public static String NAMESPACE = "http://jabber.org/protocol/workgroup";
private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); private static final String DATE_FORMAT = "yyyyMMdd'T'HH:mm:ss";
private SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
private int averageWaitTime; private int averageWaitTime;
private Date oldestEntry; private Date oldestEntry;
@ -101,7 +102,7 @@ public class QueueOverview implements PacketExtension {
buf.append("<count>").append(userCount).append("</count>"); buf.append("<count>").append(userCount).append("</count>");
} }
if (oldestEntry != null) { if (oldestEntry != null) {
buf.append("<oldest>").append(DATE_FORMATTER.format(oldestEntry)).append("</oldest>"); buf.append("<oldest>").append(dateFormat.format(oldestEntry)).append("</oldest>");
} }
if (averageWaitTime != -1) { if (averageWaitTime != -1) {
buf.append("<time>").append(averageWaitTime).append("</time>"); buf.append("<time>").append(averageWaitTime).append("</time>");
@ -118,7 +119,8 @@ public class QueueOverview implements PacketExtension {
public PacketExtension parseExtension (XmlPullParser parser) throws Exception { public PacketExtension parseExtension (XmlPullParser parser) throws Exception {
int eventType = parser.getEventType(); int eventType = parser.getEventType();
QueueOverview queueOverview = new QueueOverview(); QueueOverview queueOverview = new QueueOverview();
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
if (eventType != XmlPullParser.START_TAG) { if (eventType != XmlPullParser.START_TAG) {
// throw exception // throw exception
@ -135,7 +137,7 @@ public class QueueOverview implements PacketExtension {
queueOverview.setAverageWaitTime(Integer.parseInt(parser.nextText())); queueOverview.setAverageWaitTime(Integer.parseInt(parser.nextText()));
} }
else if ("oldest".equals(parser.getName())) { else if ("oldest".equals(parser.getName())) {
queueOverview.setOldestEntry((DATE_FORMATTER.parse(parser.nextText()))); queueOverview.setOldestEntry((dateFormat.parse(parser.nextText())));
} }
else if ("status".equals(parser.getName())) { else if ("status".equals(parser.getName())) {
queueOverview.setStatus(WorkgroupQueue.Status.fromString(parser.nextText())); queueOverview.setStatus(WorkgroupQueue.Status.fromString(parser.nextText()));