PDA

View Full Version : [OPEN] SA2 Build 676 does not start with a project started with buid 640



msinn
13 Nov 2012, 11:13 PM
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:

40022

Possible fix:

not provided

Operating System:

Win7

Phil.Strong
15 Nov 2012, 11:42 AM
Looking at this now. I've isolated it to be an issue with GLineChart. Let you know when I do.

Phil.Strong
15 Nov 2012, 11:51 AM
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

"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
15 Nov 2012, 12:12 PM
This appears to be a bug in the framework.

you can use step: ['h', 1] (same as above)

Phil.Strong
15 Nov 2012, 12:22 PM
This is a bug in the documentation as time axis is only handling integers and not floating point.

msinn
15 Nov 2012, 11:11 PM
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 (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.chart.axis.Time-cfg-step) : Array (http://docs.sencha.com/ext-js/4-1/#!/api/Array)An 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 (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-DAY), 2] means "Every other day"). If the number is a fraction, it represents the number of steps per unit ([Ext.Date.DAY (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-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 (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-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 (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-MONTH), n]: on the current date every 'n' months, maxed to the number of days in the month. - [Ext.Date.MONTH (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-MONTH), 1/2]: on the 1st and 15th of every month. - [Ext.Date.MONTH (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-MONTH), 1/3]: on the 1st, 10th and 20th of every month. - [Ext.Date.MONTH (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-MONTH), 1/4]: on the 1st, 8th, 15th and 22nd of every month.
Defaults to: [Ext.Date.DAY (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date-property-DAY), 1].





isNumber: function(value) { return typeof value === 'number' && isFinite(value); }




//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);
}
}




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
};
}
}

Phil.Strong
19 Nov 2012, 1:56 PM
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