Mantis #7657: similar fixes for FSAssets.
							parent
							
								
									e5a1243abc
								
							
						
					
					
						commit
						c8cd2f18f5
					
				| 
						 | 
				
			
			@ -35,6 +35,7 @@ using System.Threading;
 | 
			
		|||
using System.Reflection;
 | 
			
		||||
using OpenSim.Data;
 | 
			
		||||
using OpenSim.Framework;
 | 
			
		||||
using OpenSim.Framework.Serialization.External;
 | 
			
		||||
using OpenSim.Framework.Console;
 | 
			
		||||
using OpenSim.Server.Base;
 | 
			
		||||
using OpenSim.Services.Base;
 | 
			
		||||
| 
						 | 
				
			
			@ -394,9 +395,18 @@ namespace OpenSim.Services.FSAssetService
 | 
			
		|||
                    }
 | 
			
		||||
                    if (asset == null)
 | 
			
		||||
                        m_missingAssetsFS++;
 | 
			
		||||
                        // m_log.InfoFormat("[FSASSETS]: Asset {0}, hash {1} not found in FS", id, hash);
 | 
			
		||||
                    // m_log.InfoFormat("[FSASSETS]: Asset {0}, hash {1} not found in FS", id, hash);
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        // Deal with bug introduced in Oct. 20 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
 | 
			
		||||
                        // Fix bad assets before sending them elsewhere
 | 
			
		||||
                        if (asset.Type == (int)AssetType.Object && asset.Data != null)
 | 
			
		||||
                        {
 | 
			
		||||
                            string xml = ExternalRepresentationUtils.SanitizeXml(Utils.BytesToString(asset.Data));
 | 
			
		||||
                            asset.Data = Utils.StringToBytes(xml);
 | 
			
		||||
                        }
 | 
			
		||||
                        return asset;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                lock (m_statsLock)
 | 
			
		||||
| 
						 | 
				
			
			@ -404,6 +414,15 @@ namespace OpenSim.Services.FSAssetService
 | 
			
		|||
                    m_readTicks += Environment.TickCount - startTime;
 | 
			
		||||
                    m_readCount++;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // Deal with bug introduced in Oct. 20 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
 | 
			
		||||
                // Fix bad assets before sending them elsewhere
 | 
			
		||||
                if (newAsset.Type == (int)AssetType.Object && newAsset.Data != null)
 | 
			
		||||
                {
 | 
			
		||||
                    string xml = ExternalRepresentationUtils.SanitizeXml(Utils.BytesToString(newAsset.Data));
 | 
			
		||||
                    newAsset.Data = Utils.StringToBytes(xml);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                return newAsset;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception exception)
 | 
			
		||||
| 
						 | 
				
			
			@ -519,6 +538,14 @@ namespace OpenSim.Services.FSAssetService
 | 
			
		|||
 | 
			
		||||
                if (!File.Exists(finalFile))
 | 
			
		||||
                {
 | 
			
		||||
                    // Deal with bug introduced in Oct. 20 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
 | 
			
		||||
                    // Fix bad assets before storing on this server
 | 
			
		||||
                    if (asset.Type == (int)AssetType.Object && asset.Data != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        string xml = ExternalRepresentationUtils.SanitizeXml(Utils.BytesToString(asset.Data));
 | 
			
		||||
                        asset.Data = Utils.StringToBytes(xml);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    FileStream fs = File.Create(tempFile);
 | 
			
		||||
 | 
			
		||||
                    fs.Write(asset.Data, 0, asset.Data.Length);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -926,6 +926,7 @@
 | 
			
		|||
      <Reference name="OpenMetaverse" path="../../../bin/"/>
 | 
			
		||||
      <Reference name="OpenSim.Framework"/>
 | 
			
		||||
      <Reference name="OpenSim.Framework.Console"/>
 | 
			
		||||
      <Reference name="OpenSim.Framework.Serialization"/>
 | 
			
		||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
			
		||||
      <Reference name="OpenSim.Server.Base"/>
 | 
			
		||||
      <Reference name="OpenSim.Services.Interfaces"/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue