From Giles.Heywood at CommerzbankIB.com  Tue Nov  4 09:30:37 2003
From: Giles.Heywood at CommerzbankIB.com (Heywood, Giles)
Date: Tue Nov  4 09:29:44 2003
Subject: [Rd] Object saved from 1.7.1, loaded in 1.8.0
Message-ID: <8CBAA121CEB4D5118CB200508BB2BBEF05BF734F@xmx8lonib.lonib.commerzbank.com>

I am having difficulty using in 1.8.0 an object created under 1.7.1. The
following is a 'minimal example' of the issue.  First the part in 1.7.1:

> require("methods")
[1] TRUE
> setClass("foo",representation("vector",label="character"))
[1] "foo"
> x <- new("foo",1:2,label=LETTERS[1:2])
> save(x,file="f:/temp/test_gh.171.Rdata")

Then in 1.8.0:

> require("methods")
[1] TRUE
> setClass("foo",representation("vector",label="character"))
[1] "foo"
> load("f:/temp/test_gh.171.Rdata")
> new("foo",x,label=x@label)
Error in initialize(value, ...) : Initialize method returned an object of
class "foo" instead of the required class "foo"
> new("foo",x@.Data,label=x@label)
An object of class "foo"
[1] 1 2
Slot "label":
[1] "A" "B"

> y <- new("foo",1:2,label=LETTERS[1:2])
> new("foo",y,label=y@label)
An object of class "foo"
[1] 1 2
Slot "label":
[1] "A" "B"

> attributes(class(x))
NULL
> attributes(class(y))
$package
[1] ".GlobalEnv"

> attributes(class(x)) <- attributes(class(y))
> new("foo",y,label=y@label)
An object of class "foo"
[1] 1 2
Slot "label":
[1] "A" "B"

As far as I can see, the "class" attribute now has an attribute "package",
and the absence of this attribute in objects created under 1.7.1 causes the
problem.  This lack of 'backward compatibility' has been flagged to me as a
bug in the package 'its' that I maintain on CRAN.  I'm not sure it's a
bug... should I advise users to re-generate their stored objects using e.g.
new("foo",x@.Data,label=x@label)?  Or is there something I am missing
altogether here?

TIA

Giles Heywood

OS: NT4

R.version
         
platform i386-pc-mingw32
arch     i386           
os       mingw32        
system   i386, mingw32  
status                  
major    1              
minor    8.0            
year     2003           
month    10             
day      08             
language R      


********************************************************************** 
This is a commercial communication from Commerzbank AG.\ \ T...{{dropped}}


[Rd] Object saved from 1.7.1, loaded in 1.8.0
Heywood, Giles