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