Fix moving folders.
Casting from base class to inherited class is a no-no, and we must preserve the folder type when moving folders, otherwise it gets set to a Texture folder (type 0).0.6.4-rc1
parent
6994d9239d
commit
1894d69c8a
|
@ -227,14 +227,19 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
{
|
{
|
||||||
Uri owner = Utils.GetOpenSimUri(folder.Owner);
|
Uri owner = Utils.GetOpenSimUri(folder.Owner);
|
||||||
|
|
||||||
// Some calls that are moving or updating a folder instead of creating a new one
|
// Some calls that are moving or updating a folder instead
|
||||||
// will pass in an InventoryFolder without the name set. If this is the case we
|
// of creating a new one will pass in an InventoryFolder
|
||||||
// need to look up the name first
|
// without the name set and type set to 0. If this is the
|
||||||
|
// case we need to look up the name first and preserver
|
||||||
|
// it's type.
|
||||||
if (String.IsNullOrEmpty(folder.Name))
|
if (String.IsNullOrEmpty(folder.Name))
|
||||||
{
|
{
|
||||||
InventoryFolderWithChildren oldFolder;
|
InventoryFolderWithChildren oldFolder;
|
||||||
if (m_server.InventoryProvider.TryFetchFolder(owner, folder.ID, out oldFolder) == BackendResponse.Success)
|
if (m_server.InventoryProvider.TryFetchFolder(owner, folder.ID, out oldFolder) == BackendResponse.Success)
|
||||||
|
{
|
||||||
folder.Name = oldFolder.Name;
|
folder.Name = oldFolder.Name;
|
||||||
|
folder.Type = oldFolder.Type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BackendResponse storageResponse = m_server.InventoryProvider.TryCreateFolder(owner, folder);
|
BackendResponse storageResponse = m_server.InventoryProvider.TryCreateFolder(owner, folder);
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim
|
||||||
|
|
||||||
if (null != baseFolder)
|
if (null != baseFolder)
|
||||||
{
|
{
|
||||||
folder = (InventoryFolderWithChildren) baseFolder;
|
folder = new InventoryFolderWithChildren(baseFolder);
|
||||||
folder.Children = null; // This call only returns data for the folder itself, no children data
|
folder.Children = null; // This call only returns data for the folder itself, no children data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue