--- nfo/perl/libs/Tangram/Storage.pm 2002/12/16 20:41:51 1.6 +++ nfo/perl/libs/Tangram/Storage.pm 2003/05/07 16:20:26 1.10 @@ -253,10 +253,23 @@ { my $self = shift; - eval ("use Data::UUID;"); - return if $@; - my $ug = Data::UUID->new(); - my $guid = $ug->create_str(); + my $guid; + + # try to use Data::UUID first ... + eval("use Data::UUID;"); + if (!$@) { + my $ug = Data::UUID->new(); + $guid = $ug->create_str(); + + # ... if this fails, try to fallback to Data::UUID::PurePerl instead ... + } else { + eval("use Data::UUID::PurePerl;"); + if (!$@) { + $guid = Data::UUID::PurePerl::generate_id(); + } else { + croak "couldn't create globally unique identifier"; + } + } return $guid; } @@ -692,6 +705,7 @@ my $row = _fetch_object_state($self, $id, $class); my $obj = $self->read_object($id, $class->{name}, $row); + #return undef unless defined $row; # ??? $self->{-residue} = \@row; @@ -709,6 +723,7 @@ my $class = $self->{schema}->classdef( $self->{id2class}{ int(substr($id, -$self->{cid_size})) } ); my $row = _fetch_object_state($self, $id, $class); + #return undef unless defined $row; _row_to_object($self, $obj, $id, $class->{name}, $row); return $obj; @@ -780,6 +795,11 @@ $sth->execute($self->{export_id}->($id)); my $state = [ $sth->fetchrow_array() ]; + #croak "no object with id $id" unless (@{$state}); + #unless (@$state) { + # return undef unless $sth->err; + # croak "error during load of object id=$id: $sth->err"; + #} $sth->finish(); return $state;