You found a bug! We've classified it as DSGNR-2671 . We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix.
  1. #1
    Touch Premium Member msinn's Avatar
    Join Date
    Jul 2009
    Location
    in front of my pc
    Posts
    280
    Vote Rating
    5
    msinn is on a distinguished road

      0  

    Default SA2 Build 676 does not start with a project started with buid 640

    SA2 Build 676 does not start with a project started with buid 640


    REQUIRED INFORMATION Architect Build tested:
    • Build: 667, also 640
    Project Type:
    • ExtJS 4.1
    Description:
    • Hello Architect Team,

      in generally I have problems with the automatic update of Architect. It did not work till build 676.
      This is the first time after a while, when it works again .
      But... it disappears from the desktop , when I try to open a project started with build 640.
      I still see Architect as an active process under Windows -Task Manager.
      It starts when I open a new project, but there are no errors in the log file. It disappears from the desktop, just when I try to open that project over the SA2 menu. I restored the build 640, but the problem ist still there . Or it shows just as attached and hungs up and whe I try to close it:
    Problemsignatur:
    Problemereignisname: AppHangB1
    Anwendungsname: Sencha Architect.exe
    Anwendungsversion: 0.0.0.0
    Anwendungszeitstempel: 50a19c11
    Absturzsignatur: e993
    Absturztyp: 0
    Betriebsystemversion: 6.1.7601.2.1.0.256.48
    Gebietsschema-ID: 1031
    Zusätzliche Absturzsignatur 1: e99344c0e2ba471ee5c2dc00ea96cdce
    Zusätzliche Absturzsignatur 2: 7407
    Zusätzliche Absturzsignatur 3: 74070338864e1d7a460b1b1b512b4171
    Zusätzliche Absturzsignatur 4: e993
    Zusätzliche Absturzsignatur 5: e99344c0e2ba471ee5c2dc00ea96cdce
    Zusätzliche Absturzsignatur 6: 7407
    Zusätzliche Absturzsignatur 7: 74070338864e1d7a460b1b1b512b4171

    Since I can not archive the project anymore I'll send you the zipped project directory to take a look at it. THX
    Steps to reproduce the problem:
    • foo
    The result that was expected:
    • SA loads the project
    The result that occurs instead:
    • SA GUI disappears from the desktop, but is still working as process unde Windows Task Manager
    HELPFUL INFORMATION Screenshot, Project, or Video: Possible fix:
    • not provided
    Operating System:
    • Win7
    First I would like to thank you for your time and knowledge

    Win 7 Ext JS 4.1.3 IE(6-9), FF17

  2. #2
    Sencha - Architect Dev Team Phil.Strong's Avatar
    Join Date
    Mar 2007
    Location
    Baltimore, MD
    Posts
    1,849
    Vote Rating
    57
    Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice

      0  

    Default


    Looking at this now. I've isolated it to be an issue with GLineChart. Let you know when I do.
    Phil Strong
    @philstrong
    #SenchaArchitect
    Sencha Architect Development Team

  3. #3
    Sencha - Architect Dev Team Phil.Strong's Avatar
    Join Date
    Mar 2007
    Location
    Baltimore, MD
    Posts
    1,849
    Vote Rating
    57
    Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice

      1  

    Default


    Ok so the issue is in the GLineChart which is a Chart with a numeric and a time axis.

    The time axis had an invalid step
    Code:
    "step": "['d',1/24]",
    This was crashing the application which it should not so I'll investigate this further.

    However if you open that file

    metadata/view/GLineChart and find the 2nd child (cn) type: "timeaxis" and remove the line that has "step": "['d',1/24]",

    this will work around the issue.
    Phil Strong
    @philstrong
    #SenchaArchitect
    Sencha Architect Development Team

  4. #4
    Sencha - Architect Dev Team Phil.Strong's Avatar
    Join Date
    Mar 2007
    Location
    Baltimore, MD
    Posts
    1,849
    Vote Rating
    57
    Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice

      0  

    Default


    This appears to be a bug in the framework.

    you can use step: ['h', 1] (same as above)
    Phil Strong
    @philstrong
    #SenchaArchitect
    Sencha Architect Development Team

  5. #5
    Sencha - Architect Dev Team Phil.Strong's Avatar
    Join Date
    Mar 2007
    Location
    Baltimore, MD
    Posts
    1,849
    Vote Rating
    57
    Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice

      0  

    Default


    This is a bug in the documentation as time axis is only handling integers and not floating point.

  6. #6
    Touch Premium Member msinn's Avatar
    Join Date
    Jul 2009
    Location
    in front of my pc
    Posts
    280
    Vote Rating
    5
    msinn is on a distinguished road

      0  

    Default


    Thank you for the answer, I changed the metadata file and removed the fraction '1/24' and now I can open the project again, but without rendering the labels for hours anymore...

    I'm a little bit confunsed, because it worked with fraction after publishing (without errors in the console showing all the labels for hours). The problem occurs when I attempt to open the project with Architect again.
    So If I'm lucky and archived the project, then I'm able to open it from the archive, even if there is the fraction in the step property. So for now I have to archive the project at each saving, otherwise I'll not be able anymore to open that project again, till you'll find the problem.

    Does this mean, that Architect will lock up, each time there is a bug in the library, and we are not able to open that project anymore, till you'll take a look into it?
    Why don't you provide us with a debugging tool to be a little more independent in such cases?



    step : ArrayAn array with two components: The first is the unit of the step (day, month, year, etc). The second one is a number. If the number is an integer, it represents the number of units for the step ([Ext.Date.DAY, 2] means "Every other day"). If the number is a fraction, it represents the number of steps per unit ([Ext.Date.DAY, 1/2] means "Twice a day"). If the unit is the month, the steps may be adjusted depending on the month. For instance [Ext.Date.MONTH, 1/3], which means "Three times a month", generates steps on the 1st, the 10th and the 20th of every month regardless of whether a month has 28 days or 31 days. The steps are generated as follows: - [Ext.Date.MONTH, n]: on the current date every 'n' months, maxed to the number of days in the month. - [Ext.Date.MONTH, 1/2]: on the 1st and 15th of every month. - [Ext.Date.MONTH, 1/3]: on the 1st, 10th and 20th of every month. - [Ext.Date.MONTH, 1/4]: on the 1st, 8th, 15th and 22nd of every month.
    Defaults to: [Ext.Date.DAY, 1].
    Code:
    isNumber: function(value) {   return typeof value === 'number' && isFinite(value); }
    Code:
    //from Ext.chart.axis.Time
    // @private modifies the store and creates the labels for the axes.
        calcEnds: function() {
            var me = this, range, step = me.step;
            if (step) {
                range = me.getRange();
                range = Ext.draw.Draw.snapEndsByDateAndStep(new Date(range.min), new Date(range.max), Ext.isNumber(step) ? [Date.MILLI, step]: step);
                if (me.minimum) {
                    range.from = me.minimum;
                }
                if (me.maximum) {
                    range.to = me.maximum;
                }
                return range;
            } else {
                return me.callParent(arguments);
            }
        }
    Code:
        snapEndsByDateAndStep: function(from, to, step, lockEnds) {
            var fromStat = [from.getFullYear(), from.getMonth(), from.getDate(),
                    from.getHours(), from.getMinutes(), from.getSeconds(), from.getMilliseconds()],
                steps, testFrom, testTo, date, month, day, fractionalMonth,
                stepUnit = step[0], stepValue = step[1];
            if (lockEnds) {
                testFrom = from;
            } else {
                switch (stepUnit) {
                    case Ext.Date.MILLI:
                        testFrom = new Date(fromStat[0], fromStat[1], fromStat[2], fromStat[3],
                                fromStat[4], fromStat[5], Math.floor(fromStat[6] / stepValue) * stepValue);
                        break;
                    case Ext.Date.SECOND:
                        testFrom = new Date(fromStat[0], fromStat[1], fromStat[2], fromStat[3],
                                fromStat[4], Math.floor(fromStat[5] / stepValue) * stepValue, 0);
                        break;
                    case Ext.Date.MINUTE:
                        testFrom = new Date(fromStat[0], fromStat[1], fromStat[2], fromStat[3],
                                Math.floor(fromStat[4] / stepValue) * stepValue, 0, 0);
                        break;
                    case Ext.Date.HOUR:
                        testFrom = new Date(fromStat[0], fromStat[1], fromStat[2],
                                Math.floor(fromStat[3] / stepValue) * stepValue, 0, 0, 0);
                        break;
                    case Ext.Date.DAY:
                        testFrom = new Date(fromStat[0], fromStat[1],
                                Math.floor((fromStat[2] - 1) / stepValue) * stepValue + 1, 0, 0, 0, 0);
                        break;
                    case Ext.Date.MONTH:
                        testFrom = new Date(fromStat[0], Math.floor(fromStat[1] / stepValue) * stepValue, 1, 0, 0, 0, 0);
                        break;
                    default: // Ext.Date.YEAR
                        testFrom = new Date(Math.floor(fromStat[0] / stepValue) * stepValue, 0, 1, 0, 0, 0, 0);
                        break;
                }
            }
    
            fractionalMonth = ((stepUnit === Ext.Date.MONTH) && (stepValue == 1/2 || stepValue == 1/3 || stepValue == 1/4));
            steps = (fractionalMonth ? [] : 0);
    
            // TODO(zhangbei) : We can do it better somehow...
            testTo = new Date(testFrom);
            while (testTo < to) {
                if (fractionalMonth) {
                    date = new Date(testTo);
                    year = date.getFullYear();
                    month = date.getMonth();
                    day = date.getDate();
                    switch(stepValue) {
                        case 1/2:   // the 1st and 15th of every month
                            if (day >= 15) {
                                day = 1;
                                if (++month > 11) {
                                    year++;
                                }
                            }
                            else {
                                day = 15;
                            }
                            break;
    
                        case 1/3:   // the 1st, 10th and 20th of every month
                            if (day >= 20) {
                                day = 1;
                                if (++month > 11) {
                                    year++;
                                }
                            }
                            else {
                                if (day >= 10) {
                                    day = 20
                                }
                                else {
                                    day = 10;
                                }
                            }
                            break;
    
                        case 1/4:   // the 1st, 8th, 15th and 22nd of every month
                            if (day >= 22) {
                                day = 1;
                                if (++month > 11) {
                                    year++;
                                }
                            }
                            else {
                                if (day >= 15) {
                                    day = 22
                                }
                                else {
                                    if (day >= 8) {
                                        day = 15
                                    }
                                    else {
                                        day = 8;
                                    }
                                }
                            }
                            break;
                    }
                    testTo.setYear(year);
                    testTo.setMonth(month);
                    testTo.setDate(day);
                    steps.push(new Date(testTo));
                }
                else {
                    testTo = Ext.Date.add(testTo, stepUnit, stepValue);                
                    steps++;
                }
            }
    
            if (lockEnds) {
                testTo = to;
            }
            
            if (fractionalMonth) {
                return {
                    from : +testFrom,
                    to : +testTo,
                    steps : steps   // array of steps
                };            
            }
            else {
                return {
                    from : +testFrom,
                    to : +testTo,
                    step : (testTo - testFrom) / steps,
                    steps : steps   // number of steps
                };            
            }
        }
    First I would like to thank you for your time and knowledge

    Win 7 Ext JS 4.1.3 IE(6-9), FF17

  7. #7
    Sencha - Architect Dev Team Phil.Strong's Avatar
    Join Date
    Mar 2007
    Location
    Baltimore, MD
    Posts
    1,849
    Vote Rating
    57
    Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice Phil.Strong is just really nice

      0  

    Default


    I'm a little bit confunsed, because it worked with fraction after publishing (without errors in the console showing all the labels for hours). The problem occurs when I attempt to open the project with Architect again.
    New information tells me that this does in fact work with later versions of Ext JS 4. Versions not released yet to the public.

    You were not getting "script runs too long" on that page?

    Does this mean, that Architect will lock up, each time there is a bug in the library, and we are not able to open that project anymore, till you'll take a look into it?
    Why don't you provide us with a debugging tool to be a little more independent in such cases?
    Only bugs that create an infinite loop. However we are working on a way to isolate even these types of bugs to allow for recovery.

    The archive thing is really quirky.

    Bottom line is until Ext JS 4.2 is released I'd stick with using "h", 1
    Phil Strong
    @philstrong
    #SenchaArchitect
    Sencha Architect Development Team

Thread Participants: 1