diff options
Diffstat (limited to 'perl')
-rw-r--r-- | perl/lib/Wallet/Object/File.pm | 10 | ||||
-rw-r--r-- | perl/lib/Wallet/Server.pm | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/perl/lib/Wallet/Object/File.pm b/perl/lib/Wallet/Object/File.pm index 65fe40e..226e32c 100644 --- a/perl/lib/Wallet/Object/File.pm +++ b/perl/lib/Wallet/Object/File.pm @@ -81,9 +81,13 @@ sub rename { $object->ob_name ($new_name); # Update the file to the path for the new name, and die if we can't. - $self->{name} = $new_name; - my $new_path = $self->file_path; - move($old_path, $new_path) or die $!; + # If the old path isn't there, then assume we haven't yet stored and + # keep going. + if ($old_path) { + $self->{name} = $new_name; + my $new_path = $self->file_path; + move($old_path, $new_path) or die $!; + } $object->update; $guard->commit; diff --git a/perl/lib/Wallet/Server.pm b/perl/lib/Wallet/Server.pm index 34075ed..f6ea342 100644 --- a/perl/lib/Wallet/Server.pm +++ b/perl/lib/Wallet/Server.pm @@ -255,7 +255,7 @@ sub rename { my $host = $self->{host}; # Currently we only can rename file objects. - if (type ne 'file') { + if ($type ne 'file') { $self->error ('rename is only supported for file objects'); return; } @@ -282,7 +282,7 @@ sub rename { } # Rename the object. - $object = eval { $class->rename ($type, $name, $schema, $user, $host) }; + eval { $object->rename ($new_name, $schema, $user, $host) }; if ($@) { $self->error ($@); return; |