You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@roller.apache.org by Jery Wang <je...@yahoo.com> on 2009/11/16 13:53:59 UTC
Bug in roller calendar due to different timezone between java vm timezone and weblog (user) timezone
Hi,
I am not sure if others had this bug before:
1. Java JVM use timezone A
2. User use timezone B where timezone A and B more than 12 hours. Because roller shift the hours to noon.
3. the date that has entry has url different from what is shown. For example, clicking November 16 will show entry November 15 because the url is 20091115
I made patch:
--- roller_trunk_org/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java 2009-11-08 00:18:10.582128527 +1100
+++ roller_trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java 2009-11-16 23:34:07.130778563 +1100
@@ -1099,6 +1099,7 @@
}
SimpleDateFormat formatter = DateUtil.get8charDateFormat();
+ formatter.setTimeZone(website.getTimeZoneInstance());
for (Iterator wbItr = entries.iterator(); wbItr.hasNext();) {
WeblogEntry entry = (WeblogEntry) wbItr.next();
Date sDate = DateUtil.getNoonOfDay(entry.getPubTime(), cal);
Please verify if this is necessary. I checked the result is correct, i.e., clicking November 16 will show entry with url contains 20091116
If this is a bug, I did
grep --regexp="\.format\b" * -R | sed '/build/d' | sed '/\.svn/d' | sed '/Binary/d' | sed '/docs/d' | sed '/^web\//d' | less
inside apps/weblogger and there are some SimpleDateFormat format being used without setting it with the correct timezone. But I have difficulties to decide which one needs to set its timezone with the website (user) timezone.
Anyone can help?
Regards,
Jery
Re: Search does not return result when handle contains underscore (_)
Posted by Jery Wang <je...@yahoo.com>.
Done:
https://issues.apache.org/jira/browse/ROL-1846
--- On Tue, 11/17/09, Dave <sn...@gmail.com> wrote:
From: Dave <sn...@gmail.com>
Subject: Re: Search does not return result when handle contains underscore (_)
To: dev@roller.apache.org
Date: Tuesday, November 17, 2009, 6:39 AM
Hi Jery,
Thanks for the bug reports and suggested fixes!
Please file these as bugs and include a your patch there.
https://issues.apache.org/roller
Thanks,
- Dave
On Tue, Nov 17, 2009 at 8:22 AM, Jery Wang <je...@yahoo.com> wrote:
> I found a bug where when website handle contains underscore '_', the term only takes the first phrase before underscore
>
> Anyone can patch the trunk?
>
> The patch:
>
> --- roller_trunk_org/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-08 00:18:11.663437673 +1100
> +++ roller_trunk/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-18 00:01:09.968130558 +1100
> @@ -110,8 +110,7 @@
> SEARCH_FIELDS, SEARCH_FLAGS,
> new StandardAnalyzer(Version.LUCENE_CURRENT));
>
> - Term tUsername =
> - IndexUtil.getTerm(FieldConstants.WEBSITE_HANDLE, websiteHandle);
> + Term tUsername = new Term(FieldConstants.WEBSITE_HANDLE, websiteHandle);
>
> if (tUsername != null) {
> BooleanQuery bQuery = new BooleanQuery();
>
>
>
>
>
Re: Search does not return result when handle contains underscore (_)
Posted by Dave <sn...@gmail.com>.
Hi Jery,
Thanks for the bug reports and suggested fixes!
Please file these as bugs and include a your patch there.
https://issues.apache.org/roller
Thanks,
- Dave
On Tue, Nov 17, 2009 at 8:22 AM, Jery Wang <je...@yahoo.com> wrote:
> I found a bug where when website handle contains underscore '_', the term only takes the first phrase before underscore
>
> Anyone can patch the trunk?
>
> The patch:
>
> --- roller_trunk_org/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-08 00:18:11.663437673 +1100
> +++ roller_trunk/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-18 00:01:09.968130558 +1100
> @@ -110,8 +110,7 @@
> SEARCH_FIELDS, SEARCH_FLAGS,
> new StandardAnalyzer(Version.LUCENE_CURRENT));
>
> - Term tUsername =
> - IndexUtil.getTerm(FieldConstants.WEBSITE_HANDLE, websiteHandle);
> + Term tUsername = new Term(FieldConstants.WEBSITE_HANDLE, websiteHandle);
>
> if (tUsername != null) {
> BooleanQuery bQuery = new BooleanQuery();
>
>
>
>
>
Search does not return result when handle contains underscore (_)
Posted by Jery Wang <je...@yahoo.com>.
I found a bug where when website handle contains underscore '_', the term only takes the first phrase before underscore
Anyone can patch the trunk?
The patch:
--- roller_trunk_org/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-08 00:18:11.663437673 +1100
+++ roller_trunk/apps/weblogger/web/src/java/org/apache/roller/weblogger/business/search/operations/SearchOperation.java 2009-11-18 00:01:09.968130558 +1100
@@ -110,8 +110,7 @@
SEARCH_FIELDS, SEARCH_FLAGS,
new StandardAnalyzer(Version.LUCENE_CURRENT));
- Term tUsername =
- IndexUtil.getTerm(FieldConstants.WEBSITE_HANDLE, websiteHandle);
+ Term tUsername = new Term(FieldConstants.WEBSITE_HANDLE, websiteHandle);
if (tUsername != null) {
BooleanQuery bQuery = new BooleanQuery();
Re: Bug in roller calendar due to different timezone between java vm timezone and weblog (user) timezone
Posted by Jery Wang <je...@yahoo.com>.
Here are the list of format that MAY require timezone to be set:
src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java: return format.format(getPubTime());
src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java: return format.format(getUpdateTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java: dateString = mStarDateFormat.format(
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java: sb.append( mSingleDayFormat.format( day ) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java: sb.append( mSingleDayFormat.format( day ) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java: dateString = mStarDateFormat.format(entry.getPubTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java: pw.print( formatTitle.format(day) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java: mDayNames[dnum] = dayFormatter.format(dayNameCal.getTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java: return DateUtil.format(date,format);
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java: return DateUtil.format(date,format);
src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java: return format.format(d);
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java: return messageUtils.getString("weblogEntriesPager.day.next", new Object[] {dayFormat.format(day)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java: return messageUtils.getString("weblogEntriesPager.day.prev", new Object[] {dayFormat.format(day)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java: return messageUtils.getString("weblogEntriesPager.day.nextCollection", new Object[] {dayFormat.format(nextDay)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java: return messageUtils.getString("weblogEntriesPager.day.prevCollection", new Object[] {dayFormat.format(prevDay)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java: return messageUtils.getString("weblogEntriesPager.month.next", new Object[] {monthFormat.format(month)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java: return messageUtils.getString("weblogEntriesPager.month.prev", new Object[] {monthFormat.format(month)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java: return messageUtils.getString("weblogEntriesPager.month.nextCollection", new Object[] {monthFormat.format(nextMonth)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java: return messageUtils.getString("weblogEntriesPager.month.prevCollection", new Object[] {monthFormat.format(prevMonth)});
--- On Mon, 11/16/09, Jery Wang <je...@yahoo.com> wrote:
From: Jery Wang <je...@yahoo.com>
Subject: Bug in roller calendar due to different timezone between java vm timezone and weblog (user) timezone
To: dev@roller.apache.org
Date: Monday, November 16, 2009, 4:53 AM
Hi,
I am not sure if others had this bug before:
1. Java JVM use timezone A
2. User use timezone B where timezone A and B more than 12 hours. Because roller shift the hours to noon.
3. the date that has entry has url different from what is shown. For example, clicking November 16 will show entry November 15 because the url is 20091115
I made patch:
--- roller_trunk_org/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java 2009-11-08 00:18:10.582128527 +1100
+++ roller_trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java 2009-11-16 23:34:07.130778563 +1100
@@ -1099,6 +1099,7 @@
}
SimpleDateFormat formatter = DateUtil.get8charDateFormat();
+ formatter.setTimeZone(website.getTimeZoneInstance());
for (Iterator wbItr = entries.iterator(); wbItr.hasNext();) {
WeblogEntry entry = (WeblogEntry) wbItr.next();
Date sDate = DateUtil.getNoonOfDay(entry.getPubTime(), cal);
Please verify if this is necessary. I checked the result is correct, i.e., clicking November 16 will show entry with url contains 20091116
If this is a bug, I did
grep --regexp="\.format\b" * -R | sed '/build/d' | sed '/\.svn/d' | sed '/Binary/d' | sed '/docs/d' | sed '/^web\//d' | less
inside apps/weblogger and there are some SimpleDateFormat format being used without setting it with the correct timezone. But I have difficulties to decide which one needs to set its timezone with the website (user) timezone.
Anyone can help?
Regards,
Jery