aboutsummaryrefslogtreecommitdiff
path: root/perl/lib
diff options
context:
space:
mode:
Diffstat (limited to 'perl/lib')
-rw-r--r--perl/lib/Wallet/Object/File.pm10
-rw-r--r--perl/lib/Wallet/Server.pm4
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;