Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Databound Calendar bug on Firefox

    Hi,
    I've got a problem with fetch operation on Calendar. After initial fetch SmartGWT runs a dozen more for data that does not exists.
    Same datasource (and requests) provided to ListGrid works fine.
    On Chrome it also works ok, the only browser affected is Firefox.

    Tested on:
    SmartGWT 5.0p 2015-01-15
    GWT 2.7.0

    Browsers:
    Firefox 22, 31 (affected)
    Chrome 39 (not affected)

    SmartGWT Developer Console Log on Firefox.
    On Chrome there are no error messages on Developer Console.
    Code:
    19:07:03.104:TMR3:WARN:WeekSchedule:isc_Calendar_0_weekView:getVisibleEvents - event has no start-date: {
        "__ref":"{GWT Java Obj}", 
        "__module":"{GWT Module}", 
        "loadingMarker":true
    }
    19:07:03.104:TMR3:WARN:WeekSchedule:isc_Calendar_0_weekView:getVisibleEvents - event has no start-date: {
        "__ref":"{GWT Java Obj}", 
        "__module":"{GWT Module}", 
        "loadingMarker":true
    }
    19:07:03.831:XRP2:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:75. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.872:XRP5:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:112. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.883:XRP5:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:149. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.907:XRP6:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:186. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.919:XRP6:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:223. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.932:XRP6:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:260. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:03.980:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:297. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.069:XRP9:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:334. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.112:XRP0:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:371. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.154:XRP1:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:408. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.220:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:445. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.233:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:482. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.244:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:519. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.255:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:556. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.265:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:593. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.275:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:630. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.285:XRP7:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:667. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.327:XRP9:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:704. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.361:XRP0:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:741. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.432:XRP1:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:778. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.453:XRP1:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:815. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.478:XRP2:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:852. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.508:XRP4:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:889. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    19:07:04.520:XRP4:WARN:ResultSet:isc_ResultSet_2 (dataSource: isc_DSEvents_0, created by: isc_Calendar_0):fetchData callback: dsResponse.endRow set to:926. dsResponse.totalRows set to:3. endRow cannot exceed total dataset size. Clamping endRow to the end of the dataset (3).
    sample code if applicable
    Code:
    Calendar calendar = new Calendar();
    calendar.setDataSource(dataSource);
    calendar.setAutoFetchData(true);
    calendar.setStartDateField("date_start");
    calendar.setEndDateField("date_end");
    calendar.setNameField("name");
    calendar.setDescriptionField("description");
    First request/response to server:
    Code:
    _operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=isc_Calendar_0&_dataSource=isc_DSEvents_0&isc_metaDataPrefix=_&isc_dataFormat=json
    
    {"response":{"status":0,"startRow":0,"endRow":3,"totalRows":3,"data":[{"id":"1","date_start":"2014-12-03 19:58:47","date_end":"2014-12-03 20:28:47","name":"Wydarzenie","description":""},{"id":"2","date_start":"2014-11-05 20:42:00","date_end":"2014-11-05 21:12:00","name":"List","description":""},{"id":"3","date_start":"2014-01-01 01:00:00","date_end":"2014-01-01 02:00:00","name":"Event 3","description":""}]}}
    Best regards
    Mariusz Goch

    #2
    Nothing like this happens with just that test code (which is basically the same as the Showcase), and it doesn't make much sense that you could get this bug only on Firefox.

    We'd suggest:

    1. try compiled mode and if it works, try reinstalling GWT and or your browsers' GWT plugin

    2. try a different machine to avoid any issues with Firefox extensions or a corrupt Firefox install

    Comment


      #3
      Hi,

      I've done all that. And tried to figure it out for last 10h.
      I don't get it.
      Tried virtual machine with Windows and latest Firefox version. Cleaned for several times all caches and disabled all plugins (for a moment also Firebug).

      Here is full standalone test case:
      Code:
      RestDataSource ds = new RestDataSource();
      ds.setDataFormat(DSDataFormat.JSON);
      ds.setFetchDataURL("testData/events.json");
      		
      DataSourceIntegerField idField = new DataSourceIntegerField("id");
      idField.setPrimaryKey(true);
      ds.addField(idField);
      
      DataSourceTextField nameField = new DataSourceTextField("name");
      ds.addField(nameField);
              
      DataSourceTextField descField = new DataSourceTextField("description");
      ds.addField(descField);
      
      DataSourceDateTimeField startDateField = new DataSourceDateTimeField("date_start");
      ds.addField(startDateField);
      
      DataSourceDateTimeField endDateField = new DataSourceDateTimeField("date_end");
      ds.addField(endDateField);
      
      Calendar calendar = new Calendar();
      calendar.setWidth100();
      calendar.setHeight100();
      		
      calendar.setDataSource(ds);
      calendar.setAutoFetchData(true);
      		
      calendar.setStartDateField("date_start");
      calendar.setEndDateField("date_end");
      		
      calendar.setTimeFormatter(TimeDisplayFormat.TOSHORT24HOURTIME);
      		
      this.addChild(calendar);
      And contents of: testData/events.json
      Code:
      {  
         "response":{  
            "status":0,
            "startRow":0,
            "endRow":1,
            "totalRows":1,
            "data":[  
               {  
                  "id":"2241",
                  "date_start":"2015-01-21 19:00:00",
                  "date_end":"2015-01-21 22:30:00",
                  "name":"aaaa",
                  "description":""
               }
            ]
         }
      }
      The strange thing is this error on developer console:
      Code:
      02:33:55.535:TMR5:WARN:WeekSchedule:isc_Calendar_0_weekView:getVisibleEvents - event has no start-date: {
          "__ref":"{GWT Java Obj}", 
          "__module":"{GWT Module}", 
          "loadingMarker":true
      }
      Start date is given. And event is also visible on calendar.
      On Chrome this error does not appear

      I've attached screenshot from Firebug.

      Best regards
      Mariusz Goch
      Attached Files

      Comment


        #4
        You continue to only show error messages from GWT Development Mode. What happens in compiled mode?

        Comment


          #5
          I run this in Super Dev Mode not Development Mode and this logs are not copied from GWT Development Mode but SmartClient Developer Console.
          GWT Plugin for Firefox was even disabled during last tests.
          Effect is the same in Super Dev Mode and after full compilation.

          Just tried also GWT Development Mode and errors are the same.

          Try also with these options:
          Code:
          calendar.setShowWorkday(true);
          calendar.setWorkdayStart("8:00");
          calendar.setWorkdayEnd("18:00");
          calendar.setFirstDayOfWeek(1);
          calendar.setDisableWeekends(false);
          calendar.setTimeFormatter(TimeDisplayFormat.TOSHORT24HOURTIME);
          calendar.setScrollToWorkday(true);
          calendar.setShowAddEventButton(false);
          calendar.setEventOverlap(false);
          Best regards
          Mariusz Goch

          Comment


            #6
            Hi,

            Have you been able to reproduce this problem?
            I've checked on two other machines and problem is the same.
            And it only affect Firefox.

            I've been able to find out that method getVisibleEvents() i CalendarView is called couple hundred of times.
            Firstly for empty Record (loadingMarker = true) and then another several times for this one record that was fetched from server.

            I've just tried GWT 2.6.1 and situation is the same.
            What else can I check??

            Best regards
            Mariusz Goch

            Comment


              #7
              Ok, we've been able to reproduce this with your code - we'll update here when we get to the bottom of it.

              Comment


                #8
                We've made changes to address this - please retest with a build dated January 22 or later.

                Comment


                  #9
                  Hi,

                  Sorry for the delay. Didn't get a notification.
                  I've test latest version (2015-01-29).

                  It seems like the problem is solved.

                  Thank you
                  Best regards

                  Mariusz Goch

                  Comment


                    #10
                    Hi Isomorphic

                    What is the root cause of these "event has no start-date" messages?
                    In IE 11 databound Calendar and Timeline show data correct but for each event there is "event has no start-date" warning in development console.

                    09:45:45.293:TMR0:WARN:TimelineView:isc_ATimeline_0_timelineView:refreshEvents - event has no start-date: {
                    "__ref":"{GWT Java Obj}",
                    "__module":"{GWT Module}",
                    "loadingMarker":true
                    }

                    SmartClient Version: v10.0p_2015-05-20/LGPL Development Only (built 2015-05-20)

                    Comment


                      #11
                      Note the "loadingMarker:true" - this would indicate that some code which really should only execute once data has been returned by the server is instead executing while data is still being fetched, when attempts to retrieve Event objects will instead return loading markers like those shown in the logs.

                      This could be a result of your own code calling APIs before data is loaded, or possibly a framework bug. If you think it might be the latter, try to create a minimal, ready-to-run test case that replicates the problem in an up-to-date build, and we can take a look.

                      Comment


                        #12
                        Hi Isomorphic

                        Thank you for the fast and useful answer. It looks the cause was in pagination I used in DataSource. All warnings disappears as only I have disabled it.

                        Comment

                        Working...
                        X