diff --git a/OpenSim/Data/Null/NullAuthenticationData.cs b/OpenSim/Data/Null/NullAuthenticationData.cs
index 3fb3105ec5..620deb9786 100644
--- a/OpenSim/Data/Null/NullAuthenticationData.cs
+++ b/OpenSim/Data/Null/NullAuthenticationData.cs
@@ -76,6 +76,5 @@ namespace OpenSim.Data.Null
return false;
}
-
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Data/Null/NullUserAccountData.cs b/OpenSim/Data/Null/NullUserAccountData.cs
index 9eb94e643c..ede23fb8fe 100644
--- a/OpenSim/Data/Null/NullUserAccountData.cs
+++ b/OpenSim/Data/Null/NullUserAccountData.cs
@@ -88,7 +88,7 @@ namespace OpenSim.Data.Null
m_DataByUUID[data.PrincipalID] = data;
m_DataByName[data.FirstName + " " + data.LastName] = data;
- if (data.Data.ContainsKey("Email") && data.Data["Email"] != string.Empty)
+ if (data.Data.ContainsKey("Email") && data.Data["Email"] != null && data.Data["Email"] != string.Empty)
m_DataByEmail[data.Data["Email"]] = data;
return true;
diff --git a/OpenSim/Data/SQLite/Resources/RegionStore.migrations b/OpenSim/Data/SQLite/Resources/RegionStore.migrations
index c47a85d026..c461bf0727 100644
--- a/OpenSim/Data/SQLite/Resources/RegionStore.migrations
+++ b/OpenSim/Data/SQLite/Resources/RegionStore.migrations
@@ -1,4 +1,4 @@
-:VERSION 1
+:VERSION 1
BEGIN TRANSACTION;
@@ -219,59 +219,6 @@ COMMIT;
BEGIN TRANSACTION;
-CREATE TABLE estate_groups (
- EstateID int(10) NOT NULL,
- uuid char(36) NOT NULL
-);
-
-CREATE TABLE estate_managers (
- EstateID int(10) NOT NULL,
- uuid char(36) NOT NULL
-);
-
-CREATE TABLE estate_map (
- RegionID char(36) NOT NULL default '00000000-0000-0000-0000-000000000000',
- EstateID int(11) NOT NULL
-);
-
-CREATE TABLE estate_settings (
- EstateID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- EstateName varchar(64) default NULL,
- AbuseEmailToEstateOwner tinyint(4) NOT NULL,
- DenyAnonymous tinyint(4) NOT NULL,
- ResetHomeOnTeleport tinyint(4) NOT NULL,
- FixedSun tinyint(4) NOT NULL,
- DenyTransacted tinyint(4) NOT NULL,
- BlockDwell tinyint(4) NOT NULL,
- DenyIdentified tinyint(4) NOT NULL,
- AllowVoice tinyint(4) NOT NULL,
- UseGlobalTime tinyint(4) NOT NULL,
- PricePerMeter int(11) NOT NULL,
- TaxFree tinyint(4) NOT NULL,
- AllowDirectTeleport tinyint(4) NOT NULL,
- RedirectGridX int(11) NOT NULL,
- RedirectGridY int(11) NOT NULL,
- ParentEstateID int(10) NOT NULL,
- SunPosition double NOT NULL,
- EstateSkipScripts tinyint(4) NOT NULL,
- BillableFactor float NOT NULL,
- PublicAccess tinyint(4) NOT NULL
-);
-insert into estate_settings (EstateID,EstateName,AbuseEmailToEstateOwner,DenyAnonymous,ResetHomeOnTeleport,FixedSun,DenyTransacted,BlockDwell,DenyIdentified,AllowVoice,UseGlobalTime,PricePerMeter,TaxFree,AllowDirectTeleport,RedirectGridX,RedirectGridY,ParentEstateID,SunPosition,PublicAccess,EstateSkipScripts,BillableFactor) values ( 99, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
-delete from estate_settings;
-CREATE TABLE estate_users (
- EstateID int(10) NOT NULL,
- uuid char(36) NOT NULL
-);
-
-CREATE TABLE estateban (
- EstateID int(10) NOT NULL,
- bannedUUID varchar(36) NOT NULL,
- bannedIp varchar(16) NOT NULL,
- bannedIpHostMask varchar(16) NOT NULL,
- bannedNameMask varchar(64) default NULL
-);
-
drop table regionsettings;
CREATE TABLE regionsettings (
regionUUID char(36) NOT NULL,
@@ -307,7 +254,7 @@ CREATE TABLE regionsettings (
fixed_sun int(11) NOT NULL,
sun_position float NOT NULL,
covenant char(36) default NULL,
- Sandbox tinyint(4) NOT NULL,
+ sandbox tinyint(4) NOT NULL,
PRIMARY KEY (regionUUID)
);
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 85703dc2ca..81d0ac4f6e 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -93,7 +93,7 @@ namespace OpenSim.Data.SQLite
ds = new DataSet("Region");
- m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
+ m_log.Info("[SQLITE REGION DB]: Sqlite - connecting: " + connectionString);
m_conn = new SqliteConnection(m_connectionString);
m_conn.Open();
@@ -156,7 +156,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on prims table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on prims table");
}
try
@@ -165,16 +165,25 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on primshapes table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on primshapes table");
}
+ try
+ {
+ itemsDa.Fill(ds.Tables["primitems"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on primitems table");
+ }
+
try
{
terrainDa.Fill(ds.Tables["terrain"]);
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on terrain table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on terrain table");
}
try
@@ -183,7 +192,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on land table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on land table");
}
try
@@ -192,7 +201,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on landaccesslist table");
}
try
@@ -201,7 +210,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on regionsettings table");
}
// We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
@@ -434,7 +443,7 @@ namespace OpenSim.Data.SQLite
lock (ds)
{
DataRow[] primsForRegion = prims.Select(byRegion);
- m_log.Info("[REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
+// m_log.Info("[SQLITE REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
// First, create all groups
foreach (DataRow primRow in primsForRegion)
@@ -456,8 +465,8 @@ namespace OpenSim.Data.SQLite
}
else
{
- m_log.Info(
- "[REGION DB]: No shape found for prim in storage, so setting default box shape");
+ m_log.Warn(
+ "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
@@ -469,11 +478,11 @@ namespace OpenSim.Data.SQLite
}
catch (Exception e)
{
- m_log.Error("[REGION DB]: Failed create prim object in new group, exception and data follows");
- m_log.Info("[REGION DB]: " + e.ToString());
+ m_log.Error("[SQLITE REGION DB]: Failed create prim object in new group, exception and data follows");
+ m_log.Error("[SQLITE REGION DB]: ", e);
foreach (DataColumn col in prims.Columns)
{
- m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
+ m_log.Error("[SQLITE REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
}
}
}
@@ -498,7 +507,7 @@ namespace OpenSim.Data.SQLite
else
{
m_log.Warn(
- "[REGION DB]: No shape found for prim in storage, so setting default box shape");
+ "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
@@ -508,11 +517,11 @@ namespace OpenSim.Data.SQLite
}
catch (Exception e)
{
- m_log.Error("[REGION DB]: Failed create prim object in group, exception and data follows");
- m_log.Info("[REGION DB]: " + e.ToString());
+ m_log.Error("[SQLITE REGION DB]: Failed create prim object in group, exception and data follows");
+ m_log.Error("[SQLITE REGION DB]: ", e);
foreach (DataColumn col in prims.Columns)
{
- m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
+ m_log.Error("[SQLITE REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
}
}
}
@@ -525,20 +534,23 @@ namespace OpenSim.Data.SQLite
///
/// the prim
private void LoadItems(SceneObjectPart prim)
- {
- //m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
-
+ {
+// m_log.DebugFormat("[SQLITE REGION DB]: Loading inventory for {0} {1}", prim.Name, prim.UUID);
+
DataTable dbItems = ds.Tables["primitems"];
- String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
+ String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
DataRow[] dbItemRows = dbItems.Select(sql);
IList inventory = new List();
+// m_log.DebugFormat(
+// "[SQLITE REGION DB]: Found {0} items for {1} {2}", dbItemRows.Length, prim.Name, prim.UUID);
+
foreach (DataRow row in dbItemRows)
{
TaskInventoryItem item = buildItem(row);
inventory.Add(item);
- //m_log.DebugFormat("[DATASTORE]: Restored item {0}, {1}", item.Name, item.ItemID);
+// m_log.DebugFormat("[SQLITE REGION DB]: Restored item {0} {1}", item.Name, item.ItemID);
}
prim.Inventory.RestoreInventoryItems(inventory);
@@ -574,7 +586,7 @@ namespace OpenSim.Data.SQLite
// the following is an work around for .NET. The perf
// issues associated with it aren't as bad as you think.
- m_log.Info("[REGION DB]: Storing terrain revision r" + revision.ToString());
+ m_log.Debug("[SQLITE REGION DB]: Storing terrain revision r" + revision.ToString());
String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" +
" values(:RegionUUID, :Revision, :Heightfield)";
@@ -630,11 +642,11 @@ namespace OpenSim.Data.SQLite
}
else
{
- m_log.Info("[REGION DB]: No terrain found for region");
+ m_log.Warn("[SQLITE REGION DB]: No terrain found for region");
return null;
}
- m_log.Info("[REGION DB]: Loaded terrain revision r" + rev.ToString());
+ m_log.Debug("[SQLITE REGION DB]: Loaded terrain revision r" + rev.ToString());
}
}
return terret;
@@ -1417,7 +1429,7 @@ namespace OpenSim.Data.SQLite
}
catch (InvalidCastException)
{
- m_log.ErrorFormat("[PARCEL]: unable to get parcel telehub settings for {1}", newData.Name);
+ m_log.ErrorFormat("[SQLITE REGION DB]: unable to get parcel telehub settings for {1}", newData.Name);
newData.UserLocation = Vector3.Zero;
newData.UserLookAt = Vector3.Zero;
}
@@ -1926,7 +1938,7 @@ namespace OpenSim.Data.SQLite
///
public void StorePrimInventory(UUID primID, ICollection items)
{
- //m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
+// m_log.DebugFormat("[SQLITE REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
DataTable dbItems = ds.Tables["primitems"];
diff --git a/OpenSim/Data/Tests/Resources/TestDataConnections.ini b/OpenSim/Data/Tests/Resources/TestDataConnections.ini
index 5e68ab0ac1..7b55467734 100644
--- a/OpenSim/Data/Tests/Resources/TestDataConnections.ini
+++ b/OpenSim/Data/Tests/Resources/TestDataConnections.ini
@@ -21,4 +21,4 @@
[TestConnections]
MySqlConnection="Server=localhost;Port=3306;Database=opensim-nunit;User ID=opensim-nunit;Password=opensim-nunit;"
SqlConnection="Server=.\SQL2008;Database=opensim-nunit;Trusted_Connection=True;"
-SqliteConnection=""
\ No newline at end of file
+SqliteConnection="URI=file:opensim-nunit.db,version=3"
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 30eb9b889a..b255415c85 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -111,10 +111,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
protected IGridService GridService
{
- get
- {
- return m_Scenes[0].GridService;
- }
+ get { return m_Scenes[0].GridService; }
+ }
+
+ public IUserAccountService UserAccountService
+ {
+ get { return m_Scenes[0].UserAccountService; }
}
public IScene Scene
@@ -221,33 +223,37 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
client.OnLogout += OnLogout;
- if (m_Friends.ContainsKey(client.AgentId))
+ lock (m_Friends)
{
- m_Friends[client.AgentId].Refcount++;
- return;
+ if (m_Friends.ContainsKey(client.AgentId))
+ {
+ m_Friends[client.AgentId].Refcount++;
+ return;
+ }
+
+ UserFriendData newFriends = new UserFriendData();
+
+ newFriends.PrincipalID = client.AgentId;
+ newFriends.Friends = m_FriendsService.GetFriends(client.AgentId);
+ newFriends.Refcount = 1;
+ newFriends.RegionID = UUID.Zero;
+
+ m_Friends.Add(client.AgentId, newFriends);
}
-
- UserFriendData newFriends = new UserFriendData();
-
- newFriends.PrincipalID = client.AgentId;
- newFriends.Friends = m_FriendsService.GetFriends(client.AgentId);
- newFriends.Refcount = 1;
- newFriends.RegionID = UUID.Zero;
-
- m_Friends.Add(client.AgentId, newFriends);
-
+
//StatusChange(client.AgentId, true);
}
private void OnClientClosed(UUID agentID, Scene scene)
{
- if (m_Friends.ContainsKey(agentID))
- {
- if (m_Friends[agentID].Refcount == 1)
- m_Friends.Remove(agentID);
- else
- m_Friends[agentID].Refcount--;
- }
+ lock (m_Friends)
+ if (m_Friends.ContainsKey(agentID))
+ {
+ if (m_Friends[agentID].Refcount == 1)
+ m_Friends.Remove(agentID);
+ else
+ m_Friends[agentID].Refcount--;
+ }
}
private void OnLogout(IClientAPI client)
@@ -555,12 +561,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
private void OnApproveFriendRequest(IClientAPI client, UUID agentID, UUID friendID, List callingCardFolders)
{
+ m_log.DebugFormat("[FRIENDS]: {0} accepted friendship from {1}", agentID, friendID);
+
FriendsService.StoreFriend(agentID, friendID.ToString(), 1);
FriendsService.StoreFriend(friendID, agentID.ToString(), 1);
// update the local cache
m_Friends[agentID].Friends = FriendsService.GetFriends(agentID);
- m_log.DebugFormat("[FRIENDS]: {0} accepted friendship from {1}", agentID, friendID);
//
// Notify the friend
@@ -609,7 +616,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
if (friendSession != null)
{
GridRegion region = GridService.GetRegionByUUID(m_Scenes[0].RegionInfo.ScopeID, friendSession.RegionID);
- m_FriendsSimConnector.FriendshipDenied(region, agentID, client.Name, friendID);
+ if (region != null)
+ m_FriendsSimConnector.FriendshipDenied(region, agentID, client.Name, friendID);
+ else
+ m_log.WarnFormat("[FRIENDS]: Could not find region {0} in locating {1}", friendSession.RegionID, friendID);
}
}
}
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
index 0883c5ba83..496f2abdfb 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
@@ -35,6 +35,7 @@ using OpenSim.Framework;
using OpenSim.Server.Base;
using OpenSim.Framework.Servers.HttpServer;
using FriendInfo = OpenSim.Services.Interfaces.FriendInfo;
+using OpenSim.Services.Interfaces;
using OpenMetaverse;
using log4net;
@@ -61,7 +62,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
sr.Close();
body = body.Trim();
- m_log.DebugFormat("[XXX]: query String: {0}", body);
+ //m_log.DebugFormat("[XXX]: query String: {0}", body);
try
{
@@ -115,9 +116,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
if (!UUID.TryParse(request["ToID"].ToString(), out toID))
return FailureResult();
- GridInstantMessage im = new GridInstantMessage(m_FriendsModule.Scene, fromID, "", toID,
+ UserAccount account = m_FriendsModule.UserAccountService.GetUserAccount(m_FriendsModule.Scene.RegionInfo.ScopeID, fromID);
+ string name = (account == null) ? "Unknown" : account.FirstName + " " + account.LastName;
+
+ GridInstantMessage im = new GridInstantMessage(m_FriendsModule.Scene, fromID, name, toID,
(byte)InstantMessageDialog.FriendshipOffered, message, false, Vector3.Zero);
-
+
+ // !! HACK
+ im.imSessionID = im.fromAgentID;
+
if (m_FriendsModule.LocalFriendshipOffered(toID, im))
return SuccessResult();
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
index 307db974b8..ab5f485660 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
@@ -390,7 +390,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
protected UserAccount GetUserInfo(string firstName, string lastName, string pass)
{
- UserAccount account = m_aScene.UserAccountService.GetUserAccount(m_aScene.RegionInfo.ScopeID, firstName, lastName);
+ UserAccount account
+ = m_aScene.UserAccountService.GetUserAccount(m_aScene.RegionInfo.ScopeID, firstName, lastName);
+
if (null == account)
{
m_log.ErrorFormat(
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index c81f295d8c..507662fd73 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -55,14 +55,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
{
protected ManualResetEvent mre = new ManualResetEvent(false);
- private void InventoryReceived(UUID userId)
- {
- lock (this)
- {
- Monitor.PulseAll(this);
- }
- }
-
private void SaveCompleted(
Guid id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream,
Exception reportedException)
@@ -76,11 +68,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
// Commenting for now! The mock inventory service needs more beef, at least for
// GetFolderForType
// REFACTORING PROBLEM. This needs to be rewritten.
- //[Test]
+ [Test]
public void TestSaveIarV0_1()
{
TestHelper.InMethod();
- log4net.Config.XmlConfigurator.Configure();
+// log4net.Config.XmlConfigurator.Configure();
InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
@@ -195,189 +187,175 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
///
///
/// This test also does some deeper probing of loading into nested inventory structures
- /// REFACTORING PROBLEM. This needs to be rewritten.
-// [Test]
-// public void TestLoadIarV0_1ExistingUsers()
-// {
-// TestHelper.InMethod();
+ [Test]
+ public void TestLoadIarV0_1ExistingUsers()
+ {
+ TestHelper.InMethod();
+ //log4net.Config.XmlConfigurator.Configure();
-// //log4net.Config.XmlConfigurator.Configure();
+ string userFirstName = "Mr";
+ string userLastName = "Tiddles";
+ UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000555");
+ string userItemCreatorFirstName = "Lord";
+ string userItemCreatorLastName = "Lucan";
+ UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
-// string userFirstName = "Mr";
-// string userLastName = "Tiddles";
-// UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000555");
-// string userItemCreatorFirstName = "Lord";
-// string userItemCreatorLastName = "Lucan";
-// UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
-
-// string item1Name = "b.lsl";
-// string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1Name, UUID.Random());
+ string item1Name = "b.lsl";
+ string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1Name, UUID.Random());
-// MemoryStream archiveWriteStream = new MemoryStream();
-// TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
+ MemoryStream archiveWriteStream = new MemoryStream();
+ TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
-// InventoryItemBase item1 = new InventoryItemBase();
-// item1.Name = item1Name;
-// item1.AssetID = UUID.Random();
-// item1.GroupID = UUID.Random();
-// item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName);
-// //item1.CreatorId = userUuid.ToString();
-// //item1.CreatorId = "00000000-0000-0000-0000-000000000444";
-// item1.Owner = UUID.Zero;
+ InventoryItemBase item1 = new InventoryItemBase();
+ item1.Name = item1Name;
+ item1.AssetID = UUID.Random();
+ item1.GroupID = UUID.Random();
+ item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName);
+ //item1.CreatorId = userUuid.ToString();
+ //item1.CreatorId = "00000000-0000-0000-0000-000000000444";
+ item1.Owner = UUID.Zero;
-// string item1FileName
-// = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName);
-// tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
-// tar.Close();
+ string item1FileName
+ = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName);
+ tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
+ tar.Close();
-// MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
-// SerialiserModule serialiserModule = new SerialiserModule();
-// InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+ SerialiserModule serialiserModule = new SerialiserModule();
+ InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
-// // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
-// Scene scene = SceneSetupHelpers.SetupScene("inventory");
-// IUserAdminService userAdminService = scene.CommsManager.UserAdminService;
+ // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
+ Scene scene = SceneSetupHelpers.SetupScene("inventory");
-// SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
-// userAdminService.AddUser(
-// userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid);
-// userAdminService.AddUser(
-// userItemCreatorFirstName, userItemCreatorLastName, "hampshire",
-// String.Empty, 1000, 1000, userItemCreatorUuid);
+ SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
+
+ UserProfileTestUtils.CreateUserWithInventory(
+ scene, userFirstName, userLastName, userUuid, "meowfood");
+ UserProfileTestUtils.CreateUserWithInventory(
+ scene, userItemCreatorFirstName, userItemCreatorLastName, userItemCreatorUuid, "hampshire");
-// archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "meowfood", archiveReadStream);
+ archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "meowfood", archiveReadStream);
-// CachedUserInfo userInfo
-// = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
-
-// InventoryItemBase foundItem1
-// = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, item1Name);
+ InventoryItemBase foundItem1
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userUuid, item1Name);
-// Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
+ Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
-//// We have to disable this check since loaded items that did find users via OSPA resolution are now only storing the
-//// UUID, not the OSPA itself.
-//// Assert.That(
-//// foundItem1.CreatorId, Is.EqualTo(item1.CreatorId),
-//// "Loaded item non-uuid creator doesn't match original");
+// We have to disable this check since loaded items that did find users via OSPA resolution are now only storing the
+// UUID, not the OSPA itself.
// Assert.That(
-// foundItem1.CreatorId, Is.EqualTo(userItemCreatorUuid.ToString()),
+// foundItem1.CreatorId, Is.EqualTo(item1.CreatorId),
// "Loaded item non-uuid creator doesn't match original");
+ Assert.That(
+ foundItem1.CreatorId, Is.EqualTo(userItemCreatorUuid.ToString()),
+ "Loaded item non-uuid creator doesn't match original");
+ Assert.That(
+ foundItem1.CreatorIdAsUuid, Is.EqualTo(userItemCreatorUuid),
+ "Loaded item uuid creator doesn't match original");
+ Assert.That(foundItem1.Owner, Is.EqualTo(userUuid),
+ "Loaded item owner doesn't match inventory reciever");
+
+ // Now try loading to a root child folder
+ UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userUuid, "xA");
+ archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
+ archiverModule.DearchiveInventory(userFirstName, userLastName, "xA", "meowfood", archiveReadStream);
+
+ InventoryItemBase foundItem2
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userUuid, "xA/" + item1Name);
+ Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2");
+
+ // Now try loading to a more deeply nested folder
+ UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userUuid, "xB/xC");
+ archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
+ archiverModule.DearchiveInventory(userFirstName, userLastName, "xB/xC", "meowfood", archiveReadStream);
+
+ InventoryItemBase foundItem3
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userUuid, "xB/xC/" + item1Name);
+ Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3");
+ }
+
+ [Test]
+ public void TestIarV0_1WithEscapedChars()
+ {
+ TestHelper.InMethod();
+// log4net.Config.XmlConfigurator.Configure();
+
+ string itemName = "You & you are a mean/man/";
+ string humanEscapedItemName = @"You & you are a mean\/man\/";
+ string userPassword = "meowfood";
+
+ InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
+
+ Scene scene = SceneSetupHelpers.SetupScene("Inventory");
+ SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
+
+ // Create user
+ string userFirstName = "Jock";
+ string userLastName = "Stirrup";
+ UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020");
+ UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, "meowfood");
+
+ // Create asset
+ SceneObjectGroup object1;
+ SceneObjectPart part1;
+ {
+ string partName = "part name";
+ UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040");
+ PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
+ Vector3 groupPosition = new Vector3(10, 20, 30);
+ Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
+ Vector3 offsetPosition = new Vector3(5, 10, 15);
+
+ part1
+ = new SceneObjectPart(
+ ownerId, shape, groupPosition, rotationOffset, offsetPosition);
+ part1.Name = partName;
+
+ object1 = new SceneObjectGroup(part1);
+ scene.AddNewSceneObject(object1, false);
+ }
+
+ UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060");
+ AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1);
+ scene.AssetService.Store(asset1);
+
+ // Create item
+ UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080");
+ InventoryItemBase item1 = new InventoryItemBase();
+ item1.Name = itemName;
+ item1.AssetID = asset1.FullID;
+ item1.ID = item1Id;
+ InventoryFolderBase objsFolder
+ = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects");
+ item1.Folder = objsFolder.ID;
+ scene.AddInventoryItem(userId, item1);
+
+ MemoryStream archiveWriteStream = new MemoryStream();
+ archiverModule.OnInventoryArchiveSaved += SaveCompleted;
+
+ mre.Reset();
+ archiverModule.ArchiveInventory(
+ Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream);
+ mre.WaitOne(60000, false);
+
+ // LOAD ITEM
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+
+ archiverModule.DearchiveInventory(userFirstName, userLastName, "Scripts", userPassword, archiveReadStream);
+
+ InventoryItemBase foundItem1
+ = InventoryArchiveUtils.FindItemByPath(
+ scene.InventoryService, userId, "Scripts/Objects/" + humanEscapedItemName);
+
+ Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
// Assert.That(
-// foundItem1.CreatorIdAsUuid, Is.EqualTo(userItemCreatorUuid),
-// "Loaded item uuid creator doesn't match original");
-// Assert.That(foundItem1.Owner, Is.EqualTo(userUuid),
-// "Loaded item owner doesn't match inventory reciever");
-
-// // Now try loading to a root child folder
-// UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userInfo.UserProfile.ID, "xA");
-// archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
-// archiverModule.DearchiveInventory(userFirstName, userLastName, "xA", "meowfood", archiveReadStream);
-
-// InventoryItemBase foundItem2
-// = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xA/" + item1Name);
-// Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2");
-
-// // Now try loading to a more deeply nested folder
-// UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC");
-// archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
-// archiverModule.DearchiveInventory(userFirstName, userLastName, "xB/xC", "meowfood", archiveReadStream);
-
-// InventoryItemBase foundItem3
-// = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC/" + item1Name);
-// Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3");
- //}
-
- // REFACTORING PROBLEM. Needs rewrite.
-// [Test]
-// public void TestIarV0_1WithEscapedChars()
-// {
-// TestHelper.InMethod();
-//// log4net.Config.XmlConfigurator.Configure();
-
-// string itemName = "You & you are a mean/man/";
-// string humanEscapedItemName = @"You & you are a mean\/man\/";
-// string userPassword = "meowfood";
-
-// InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
-
-// Scene scene = SceneSetupHelpers.SetupScene("Inventory");
-// SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
-// CommunicationsManager cm = scene.CommsManager;
-
-// // Create user
-// string userFirstName = "Jock";
-// string userLastName = "Stirrup";
-// UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020");
-
-// lock (this)
-// {
-// UserProfileTestUtils.CreateUserWithInventory(
-// cm, userFirstName, userLastName, userPassword, userId, InventoryReceived);
-// Monitor.Wait(this, 60000);
-// }
-
-// // Create asset
-// SceneObjectGroup object1;
-// SceneObjectPart part1;
-// {
-// string partName = "part name";
-// UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040");
-// PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
-// Vector3 groupPosition = new Vector3(10, 20, 30);
-// Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
-// Vector3 offsetPosition = new Vector3(5, 10, 15);
-
-// part1
-// = new SceneObjectPart(
-// ownerId, shape, groupPosition, rotationOffset, offsetPosition);
-// part1.Name = partName;
-
-// object1 = new SceneObjectGroup(part1);
-// scene.AddNewSceneObject(object1, false);
-// }
-
-// UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060");
-// AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1);
-// scene.AssetService.Store(asset1);
-
-// // Create item
-// UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080");
-// InventoryItemBase item1 = new InventoryItemBase();
-// item1.Name = itemName;
-// item1.AssetID = asset1.FullID;
-// item1.ID = item1Id;
-// InventoryFolderBase objsFolder
-// = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects");
-// item1.Folder = objsFolder.ID;
-// scene.AddInventoryItem(userId, item1);
-
-// MemoryStream archiveWriteStream = new MemoryStream();
-// archiverModule.OnInventoryArchiveSaved += SaveCompleted;
-
-// mre.Reset();
-// archiverModule.ArchiveInventory(
-// Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream);
-// mre.WaitOne(60000, false);
-
-// // LOAD ITEM
-// MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
-
-// archiverModule.DearchiveInventory(userFirstName, userLastName, "Scripts", userPassword, archiveReadStream);
-
-// InventoryItemBase foundItem1
-// = InventoryArchiveUtils.FindItemByPath(
-// scene.InventoryService, userId, "Scripts/Objects/" + humanEscapedItemName);
-
-// Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
-//// Assert.That(
-//// foundItem1.CreatorId, Is.EqualTo(userUuid),
-//// "Loaded item non-uuid creator doesn't match that of the loading user");
-// Assert.That(
-// foundItem1.Name, Is.EqualTo(itemName),
-// "Loaded item name doesn't match saved name");
-// }
+// foundItem1.CreatorId, Is.EqualTo(userUuid),
+// "Loaded item non-uuid creator doesn't match that of the loading user");
+ Assert.That(
+ foundItem1.Name, Is.EqualTo(itemName),
+ "Loaded item name doesn't match saved name");
+ }
///
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
@@ -386,76 +364,69 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
///
/// This may possibly one day get overtaken by the as yet incomplete temporary profiles feature
/// (as tested in the a later commented out test)
- /// REFACTORING PROBLEM. Needs rewrite.
-// [Test]
-// public void TestLoadIarV0_1AbsentUsers()
-// {
-// TestHelper.InMethod();
+ /// This test is currently disabled
+ [Test]
+ public void TestLoadIarV0_1AbsentUsers()
+ {
+ TestHelper.InMethod();
+ //log4net.Config.XmlConfigurator.Configure();
-// //log4net.Config.XmlConfigurator.Configure();
+ string userFirstName = "Charlie";
+ string userLastName = "Chan";
+ UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000999");
+ string userItemCreatorFirstName = "Bat";
+ string userItemCreatorLastName = "Man";
+ //UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000008888");
-// string userFirstName = "Charlie";
-// string userLastName = "Chan";
-// UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000999");
-// string userItemCreatorFirstName = "Bat";
-// string userItemCreatorLastName = "Man";
-// //UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000008888");
-
-// string itemName = "b.lsl";
-// string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random());
+ string itemName = "b.lsl";
+ string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random());
-// MemoryStream archiveWriteStream = new MemoryStream();
-// TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
+ MemoryStream archiveWriteStream = new MemoryStream();
+ TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
-// InventoryItemBase item1 = new InventoryItemBase();
-// item1.Name = itemName;
-// item1.AssetID = UUID.Random();
-// item1.GroupID = UUID.Random();
-// item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName);
-// //item1.CreatorId = userUuid.ToString();
-// //item1.CreatorId = "00000000-0000-0000-0000-000000000444";
-// item1.Owner = UUID.Zero;
+ InventoryItemBase item1 = new InventoryItemBase();
+ item1.Name = itemName;
+ item1.AssetID = UUID.Random();
+ item1.GroupID = UUID.Random();
+ item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName);
+ //item1.CreatorId = userUuid.ToString();
+ //item1.CreatorId = "00000000-0000-0000-0000-000000000444";
+ item1.Owner = UUID.Zero;
-// string item1FileName
-// = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName);
-// tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
-// tar.Close();
+ string item1FileName
+ = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName);
+ tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
+ tar.Close();
-// MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
-// SerialiserModule serialiserModule = new SerialiserModule();
-// InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+ SerialiserModule serialiserModule = new SerialiserModule();
+ InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
-// // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
-// Scene scene = SceneSetupHelpers.SetupScene("inventory");
-// IUserAdminService userAdminService = scene.CommsManager.UserAdminService;
+ // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
+ Scene scene = SceneSetupHelpers.SetupScene("inventory");
-// SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
-// userAdminService.AddUser(
-// userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid);
+ SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
+ UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userUuid, "meowfood");
-// archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "meowfood", archiveReadStream);
+ archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "meowfood", archiveReadStream);
-// CachedUserInfo userInfo
-// = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
-
-// InventoryItemBase foundItem1
-// = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, itemName);
+ InventoryItemBase foundItem1
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userUuid, itemName);
-// Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
-//// Assert.That(
-//// foundItem1.CreatorId, Is.EqualTo(userUuid),
-//// "Loaded item non-uuid creator doesn't match that of the loading user");
+ Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
// Assert.That(
-// foundItem1.CreatorIdAsUuid, Is.EqualTo(userUuid),
-// "Loaded item uuid creator doesn't match that of the loading user");
-// }
+// foundItem1.CreatorId, Is.EqualTo(userUuid),
+// "Loaded item non-uuid creator doesn't match that of the loading user");
+ Assert.That(
+ foundItem1.CreatorIdAsUuid, Is.EqualTo(userUuid),
+ "Loaded item uuid creator doesn't match that of the loading user");
+ }
///
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
/// no account exists with the creator name
///
/// Disabled since temporary profiles have not yet been implemented.
- /// REFACTORING PROBLEM. Needs rewrite.
///
//[Test]
//public void TestLoadIarV0_1TempProfiles()
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
index a355661f6c..e1bc243c9e 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
@@ -44,10 +44,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
public UserAccountCache()
{
- // Warning: the size values are a bit fuzzy. What matters
- // most for this cache is the count value (128 entries).
m_UUIDCache = new ExpiringCache();
- m_NameCache = new ExpiringCache(); // this one is unbound
+ m_NameCache = new ExpiringCache();
}
public void Cache(UUID userID, UserAccount account)
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 4d04af16e7..58698ee189 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -69,7 +69,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule();
- m_scene = SceneSetupHelpers.SetupScene("useraccounts");
+ m_scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(m_scene, m_archiverModule, serialiserModule, terrainModule);
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index ee17fbf8ed..f8591ba8ad 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -267,7 +267,7 @@ namespace OpenSim.Region.Framework.Scenes
}
catch (Exception e)
{
- m_log.Error("[SCENE]: SceneBase.cs: Close() - Failed with exception " + e.ToString());
+ m_log.Error(string.Format("[SCENE]: SceneBase.cs: Close() - Failed with exception ", e));
}
}
@@ -376,7 +376,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void RegisterModuleInterface(M mod)
{
- m_log.DebugFormat("[SCENE BASE]: Registering interface {0}", typeof(M));
+// m_log.DebugFormat("[SCENE BASE]: Registering interface {0}", typeof(M));
List