shekharpro / mb-unit

Automatically exported from code.google.com/p/mb-unit
0 stars 0 forks source link

Icarus tolerate invalid preferences files (upgrades etc). #436

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Appears to be caused by some problems loading one or more of the per-user
settings files.  We should make sure we tolerate errors here, particularly
after upgrades.

Graham, you might have noticed that in v3.0.7 I changed the name of the
root XML element of one of the settings files (as specified in the
[XmlRoot] element).  The reason is that to support pre-compiled
XmlSerializers correctly, each XML serializable root must have a distinct name.

Original issue reported on code.google.com by jeff.br...@gmail.com on 1 May 2009 at 4:35

GoogleCodeExporter commented 8 years ago
As a consequence of the change in the root element name, Icarus may throw up a 
nasty
exception dialog on first load after upgrading to v3.0.7 from earlier versions.

I don't think there's much value in showing the user the raw exception.  At 
best we
could display a message box like:

Your per-user settings were produced by a different version of Icarus and could 
not
be loaded.  Icarus has made a backup of those settings to "foo.xml" and is 
reverting
to defaults.

Original comment by jeff.br...@gmail.com on 1 May 2009 at 4:38

GoogleCodeExporter commented 8 years ago
here is a xml file that is located in AppData\Local\Gallio\Plugin Metadata Cache

it seems that this causes my problem.  I renamed items one by one till i got it 
to 
open.  This file doesn't automatically get recreated and when renamed causes 
Visual 
Studio to run very slowly (well at least startup slowley)

Original comment by j...@kinesisgroup.net on 1 May 2009 at 10:55

Attachments:

GoogleCodeExporter commented 8 years ago
here are the the other files located in \AppData\Roaming\Gallio\Icarus that I 
renamed,  these files did get automatically recreated.

Original comment by j...@kinesisgroup.net on 1 May 2009 at 10:58

Attachments:

GoogleCodeExporter commented 8 years ago
The settings file has these values in it:

  <size>
    <Width>160</Width>
    <Height>36</Height>
  </size>
  <location>
    <X>-32000</X>
    <Y>-32000</Y>
  </location>

which means the UI is not on screen. It saves the size and location as it was 
when it
was last closed, so I'm not sure where these values came from.

Original comment by grahamr...@gmail.com on 2 May 2009 at 1:49

GoogleCodeExporter commented 8 years ago
What happens if it closes while minimized?

Original comment by jeff.br...@gmail.com on 2 May 2009 at 9:45

GoogleCodeExporter commented 8 years ago
The plugin metadata cache file should get recreated on startup each time (when
absent) but it is unlikely to be the cause of the problems.  Are you sure it 
was the
ultimate cause?

In any case, I'm impressed you noticed the startup speed difference.  The cache 
is
part of some major performance optimizations in v3.0.7.  Just think, Visual 
Studio
used to start that slowly every time...

Original comment by jeff.br...@gmail.com on 2 May 2009 at 9:53

GoogleCodeExporter commented 8 years ago
Sharp thinking Jeff! Yes, that's the value you get if you close it when 
minimized.
You can get the UI back by right-clicking on the item in the taskbar and 
maximising,
but to avoid this sort of confusion I've added a check before saving the size & 
location.

Original comment by grahamr...@gmail.com on 4 May 2009 at 2:13

GoogleCodeExporter commented 8 years ago
Nice stuff.

I'm reopening the issue to cover a couple of other things I mentioned above.  
Would
be good to improve how Icarus handles invalid / corrupt settings and project 
files in
general.  The exception dialog is no fun and I know it will be a problem for 
everyone
who upgrades to v3.0.7 from v3.0.6.

Original comment by jeff.br...@gmail.com on 5 May 2009 at 2:30

GoogleCodeExporter commented 8 years ago
Ah, it was the user options you changed! I'd seen the error loading old project 
files
but it hadn't clicked. That's not a problem, I can just eat the exception 
(there's
nothing too important in those files - just layout stuff). And they'll get 
fixed next
time the project gets saved. My fault anyway (the xml root), silly copy & paste 
error.

Original comment by grahamr...@gmail.com on 7 May 2009 at 9:18

GoogleCodeExporter commented 8 years ago

Original comment by grahamr...@gmail.com on 15 May 2009 at 6:24