Subject: | cannot retrieve complete object data |
Greetings,
I'm using MooseX::Storage to store() and load() some classes of mine. I
was able to use those methods without any problem, but for the class
Siebel::Srvrmgr::Daemon::Action::ListParams the load method is not
working as expected.
The stored object has a hash reference called "data_parsed" that should
have multiple keys. I attached the stored object and the data in the
EIM-listParams.sto file is OK (I can see the data in a text file). The
problem is, once I load the object with the load() method, the
"data_parsed" becames an empty hash.
After debugging a bit, I was able to the see that before the object is
returned (in MooseX::Storage::Engine::expand_object), the "data_parsed"
is intact (as returned by "return $self->storage") after that, the
"data_parsed" references an empty hash.
Another thing is that the hexadecimal number of the hash reference is
one before the "return $self->storage" is one, after that the hexa is
different. For example:
1 - BEFORE:
MooseX::Storage::Engine::expand_object(C:/Perl/site/lib/MooseX/Storage/Engine.pm:53):
53: return $self->storage;
DB<9> x $self->storage
0 HASH(0x36bacec)
'cmd_line' => 'list params for server saoasdctt1 component DbXtract'
'comp_alias' => 'DbXtract'
'comp_params' => ARRAY(0x36baa1c)
0 'PA_ALIAS'
1 'PA_VALUE'
2 'PA_DATATYPE'
3 'PA_SCOPE'
4 'PA_SUBSYSTEM'
5 'PA_SETLEVEL'
6 'PA_DISP_SETLEVEL'
7 'PA_NAME'
'data_parsed' => HASH(0x3724cbc)
'16KTblSpace' => HASH(0x35e8184)
'PA_DATATYPE' => 'String'
'PA_DISP_SETLEVEL' => 'SIS_NEVER_SET'
'PA_NAME' => '16K Tablespace Name'
'PA_SCOPE' => 'Subsystem'
'PA_SETLEVEL' => 'SIS_NEVER_SET'
'PA_SUBSYSTEM' => 'Database Access'
'PA_VALUE' => ''
2 - AFTER:
DB<10> x $comp_params
0 Siebel::Srvrmgr::ListParser::Output::ListParams=HASH(0x37266b4)
'cmd_line' => 'list params for server saoasdctt1 component DbXtract'
'comp_alias' => 'DbXtract'
'comp_params' => ARRAY(0x36baa1c)
0 'PA_ALIAS'
1 'PA_VALUE'
2 'PA_DATATYPE'
3 'PA_SCOPE'
4 'PA_SUBSYSTEM'
5 'PA_SETLEVEL'
6 'PA_DISP_SETLEVEL'
7 'PA_NAME'
'data_parsed' => HASH(0x3730fcc)
empty hash
'data_type' => 'list_params'
'fields_pattern' => 'A22A19A13A11A29A23A23A46'
'raw_data' => ARRAY(0x36bae0c)
empty array
'server' => 'saoasdctt1'
This can be reproduced if the storable.pl attached (at least in the
machine I'm using for development).
If I quite using MooseX-Storabe and fall back to Storable module, I can
retrieve the complete data of the object (but all methods will fail).
I'm using Active Perl:
C:\>perl -v
This is perl 5, version 12, subversion 4 (v5.12.4) built for
MSWin32-x86-multi-thread
(with 9 registered patches, see perl -V for more detail)
in a Windows XP Service Pack 3.
Regards,
Alceu