diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index 1488e1a5bb..83e7e4cf3e 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs @@ -170,6 +170,14 @@ namespace OpenSim.Data.MySQL } string assetDescription = asset.Description; + if(assetDescription.Length > AssetBase.MAX_LMASSET_DESC) + { + if(asset.Type == (sbyte) AssetType.Landmark) + assetDescription = assetDescription.Substring(0, AssetBase.MAX_LMASSET_DESC); + else + assetDescription = assetDescription.Substring(0, AssetBase.MAX_ASSET_DESC); + } + if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) { assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); diff --git a/OpenSim/Data/MySQL/MySQLXAssetData.cs b/OpenSim/Data/MySQL/MySQLXAssetData.cs index ec2bcc69e9..6c6f560a4c 100644 --- a/OpenSim/Data/MySQL/MySQLXAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLXAssetData.cs @@ -214,12 +214,12 @@ namespace OpenSim.Data.MySQL } string assetDescription = asset.Description; - if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) + if(assetDescription.Length > AssetBase.MAX_LMASSET_DESC) { - assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); - m_log.WarnFormat( - "[XASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", - asset.Description, asset.ID, asset.Description.Length, assetDescription.Length); + if(asset.Type == (sbyte) AssetType.Landmark) + assetDescription = assetDescription.Substring(0, AssetBase.MAX_LMASSET_DESC); + else + assetDescription = assetDescription.Substring(0, AssetBase.MAX_ASSET_DESC); } if (m_enableCompression) diff --git a/OpenSim/Data/PGSQL/PGSQLAssetData.cs b/OpenSim/Data/PGSQL/PGSQLAssetData.cs index 81adb034a9..97ea6a4ab5 100644 --- a/OpenSim/Data/PGSQL/PGSQLAssetData.cs +++ b/OpenSim/Data/PGSQL/PGSQLAssetData.cs @@ -175,12 +175,12 @@ namespace OpenSim.Data.PGSQL } string assetDescription = asset.Description; - if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) + if(assetDescription.Length > AssetBase.MAX_LMASSET_DESC) { - assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); - m_log.WarnFormat( - "[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", - asset.Description, asset.ID, asset.Description.Length, assetDescription.Length); + if(asset.Type == (sbyte) AssetType.Landmark) + assetDescription = assetDescription.Substring(0, AssetBase.MAX_LMASSET_DESC); + else + assetDescription = assetDescription.Substring(0, AssetBase.MAX_ASSET_DESC); } using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString)) diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 9c2bd2e46e..9fbd9c7fab 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs @@ -143,12 +143,12 @@ namespace OpenSim.Data.SQLite } string assetDescription = asset.Description; - if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) + if(assetDescription.Length > AssetBase.MAX_LMASSET_DESC) { - assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); - m_log.WarnFormat( - "[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", - asset.Description, asset.ID, asset.Description.Length, assetDescription.Length); + if(asset.Type == (sbyte) AssetType.Landmark) + assetDescription = assetDescription.Substring(0, AssetBase.MAX_LMASSET_DESC); + else + assetDescription = assetDescription.Substring(0, AssetBase.MAX_ASSET_DESC); } //m_log.Info("[ASSET DB]: Creating Asset " + asset.FullID.ToString()); diff --git a/OpenSim/Framework/AssetBase.cs b/OpenSim/Framework/AssetBase.cs index 87fd04affe..67239ec105 100644 --- a/OpenSim/Framework/AssetBase.cs +++ b/OpenSim/Framework/AssetBase.cs @@ -51,7 +51,8 @@ namespace OpenSim.Framework private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public static readonly int MAX_ASSET_NAME = 64; - public static readonly int MAX_ASSET_DESC = 64; + public static readonly int MAX_ASSET_DESC = 127; + public static readonly int MAX_LMASSET_DESC = 255; /// /// Data of the Asset @@ -305,7 +306,18 @@ namespace OpenSim.Framework public string Description { get { return m_description; } - set { m_description = value; } + set + { + if(value.Length > AssetBase.MAX_LMASSET_DESC) + { + if(m_type == (sbyte) AssetType.Landmark) + m_description = value.Substring(0, AssetBase.MAX_LMASSET_DESC); + else + m_description = value.Substring(0, AssetBase.MAX_ASSET_DESC); + } + else + m_description = value; + } } public DateTime CreationDate