diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 74d50e135..d9654e216 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,6 +1,8 @@ 7.3.9 - fix: Can't add task to project management (perlDreamer Consulting, LLC) - fix: Error in RSS Feed (perlDreamer Consulting, LLC) + - rfe: Asset->get should return a copy of the properties hashref + 7.3.8 - Fixed a template variable rewriting problem with HTML::Template::Expr diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 26d82b50e..6dcfa50dd 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -461,7 +461,8 @@ sub get { if (defined $propertyName) { return $self->{_properties}{$propertyName}; } - return $self->{_properties}; + my %copyOfHashRef = %{$self->{_properties}}; + return \%copyOfHashRef; } diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm index 75f3e227d..46773f8ac 100644 --- a/lib/WebGUI/AssetClipboard.pm +++ b/lib/WebGUI/AssetClipboard.pm @@ -78,8 +78,7 @@ Assets that normally autocommit their workflows (like CS Posts, and Wiki Pages) sub duplicate { my $self = shift; my $options = shift; - my %assetProperties = %{$self->get()}; - my $newAsset = $self->getParent->addChild(\%assetProperties, undef, undef, {skipAutoCommitWorkflows=>$options->{skipAutoCommitWorkflows}}); + my $newAsset = $self->getParent->addChild($self->get, undef, undef, {skipAutoCommitWorkflows=>$options->{skipAutoCommitWorkflows}}); my $sth = $self->session->db->read("select * from metaData_values where assetId = ?", [$self->getId]); while (my $h = $sth->hashRef) { $self->session->db->write("insert into metaData_values (fieldId, assetId, value) values (?, ?, ?)", [$h->{fieldId}, $newAsset->getId, $h->{value}]);