Merge branch 'master' into careminster
commit
28c7bb99bf
|
@ -111,7 +111,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
if (emessage.StartsWith(slinfo+": "))
|
if (emessage.StartsWith(slinfo+": "))
|
||||||
emessage = emessage.Substring(slinfo.Length+2);
|
emessage = emessage.Substring(slinfo.Length+2);
|
||||||
|
|
||||||
message = String.Format("Line ({0},{1}) {2}",
|
message = String.Format("({0},{1}) {2}",
|
||||||
e.slInfo.lineNumber - 2,
|
e.slInfo.lineNumber - 2,
|
||||||
e.slInfo.charPosition - 1, emessage);
|
e.slInfo.charPosition - 1, emessage);
|
||||||
|
|
||||||
|
|
|
@ -623,7 +623,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
|
|
||||||
// The Second Life viewer's script editor begins
|
// The Second Life viewer's script editor begins
|
||||||
// countingn lines and columns at 0, so we subtract 1.
|
// countingn lines and columns at 0, so we subtract 1.
|
||||||
errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n",
|
errtext += String.Format("({0},{1}): {4} {2}: {3}\n",
|
||||||
lslPos.Key - 1, lslPos.Value - 1,
|
lslPos.Key - 1, lslPos.Value - 1,
|
||||||
CompErr.ErrorNumber, text, severity);
|
CompErr.ErrorNumber, text, severity);
|
||||||
hadErrors = true;
|
hadErrors = true;
|
||||||
|
|
|
@ -1673,7 +1673,7 @@ default
|
||||||
{
|
{
|
||||||
// The syntax error is on line 6, char 5 (expected ';', found
|
// The syntax error is on line 6, char 5 (expected ';', found
|
||||||
// '}').
|
// '}').
|
||||||
Assert.AreEqual("Line (4,4) syntax error", e.Message);
|
Assert.AreEqual("(4,4) syntax error", e.Message);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1698,7 +1698,7 @@ default
|
||||||
catch (System.Exception e)
|
catch (System.Exception e)
|
||||||
{
|
{
|
||||||
// The syntax error is on line 5, char 14 (Syntax error)
|
// The syntax error is on line 5, char 14 (Syntax error)
|
||||||
Assert.AreEqual("Line (3,13) syntax error", e.Message);
|
Assert.AreEqual("(3,13) syntax error", e.Message);
|
||||||
|
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
|
@ -974,7 +974,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
if (col == 0)
|
if (col == 0)
|
||||||
col++;
|
col++;
|
||||||
message = string.Format("Runtime error:\n" +
|
message = string.Format("Runtime error:\n" +
|
||||||
"Line ({0}): {1}", scriptLine - 1,
|
"({0}): {1}", scriptLine - 1,
|
||||||
e.InnerException.Message);
|
e.InnerException.Message);
|
||||||
|
|
||||||
System.Console.WriteLine(e.ToString()+"\n");
|
System.Console.WriteLine(e.ToString()+"\n");
|
||||||
|
|
|
@ -78,6 +78,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
private string m_ScriptErrorMessage;
|
private string m_ScriptErrorMessage;
|
||||||
private Dictionary<string, string> m_uniqueScripts = new Dictionary<string, string>();
|
private Dictionary<string, string> m_uniqueScripts = new Dictionary<string, string>();
|
||||||
private bool m_AppDomainLoading;
|
private bool m_AppDomainLoading;
|
||||||
|
private Dictionary<UUID,ArrayList> m_ScriptErrors =
|
||||||
|
new Dictionary<UUID,ArrayList>();
|
||||||
|
|
||||||
// disable warning: need to keep a reference to XEngine.EventManager
|
// disable warning: need to keep a reference to XEngine.EventManager
|
||||||
// alive to avoid it being garbage collected
|
// alive to avoid it being garbage collected
|
||||||
|
@ -657,87 +659,97 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
|
|
||||||
Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap;
|
Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap;
|
||||||
|
|
||||||
try
|
lock(m_ScriptErrors)
|
||||||
{
|
|
||||||
lock (m_AddingAssemblies)
|
|
||||||
{
|
|
||||||
m_Compiler.PerformScriptCompile(script, assetID.ToString(), item.OwnerID, out assembly, out linemap);
|
|
||||||
if (!m_AddingAssemblies.ContainsKey(assembly)) {
|
|
||||||
m_AddingAssemblies[assembly] = 1;
|
|
||||||
} else {
|
|
||||||
m_AddingAssemblies[assembly]++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string[] warnings = m_Compiler.GetWarnings();
|
|
||||||
|
|
||||||
if (warnings != null && warnings.Length != 0)
|
|
||||||
{
|
|
||||||
foreach (string warning in warnings)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// DISPLAY WARNING INWORLD
|
|
||||||
string text = "Warning:\n" + warning;
|
|
||||||
if (text.Length > 1000)
|
|
||||||
text = text.Substring(0, 1000);
|
|
||||||
if (!ShowScriptSaveResponse(item.OwnerID,
|
|
||||||
assetID, text, true))
|
|
||||||
{
|
|
||||||
if (presence != null && (!postOnRez))
|
|
||||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
|
|
||||||
|
|
||||||
World.SimChat(Utils.StringToBytes(text),
|
|
||||||
ChatTypeEnum.DebugChannel, 2147483647,
|
|
||||||
part.AbsolutePosition,
|
|
||||||
part.Name, part.UUID, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e2) // LEGIT: User Scripting
|
|
||||||
{
|
|
||||||
m_log.Error("[XEngine]: " +
|
|
||||||
"Error displaying warning in-world: " +
|
|
||||||
e2.ToString());
|
|
||||||
m_log.Error("[XEngine]: " +
|
|
||||||
"Warning:\r\n" +
|
|
||||||
warning);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// DISPLAY ERROR INWORLD
|
lock (m_AddingAssemblies)
|
||||||
m_ScriptErrorMessage += "Failed to compile script in object: '" + part.ParentGroup.RootPart.Name + "' Script name: '" + item.Name + "' Error message: " + e.Message.ToString();
|
|
||||||
|
|
||||||
m_ScriptFailCount++;
|
|
||||||
string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString();
|
|
||||||
if (text.Length > 1000)
|
|
||||||
text = text.Substring(0, 1000);
|
|
||||||
if (!ShowScriptSaveResponse(item.OwnerID,
|
|
||||||
assetID, text, false))
|
|
||||||
{
|
{
|
||||||
if (presence != null && (!postOnRez))
|
m_Compiler.PerformScriptCompile(script, assetID.ToString(), item.OwnerID, out assembly, out linemap);
|
||||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
|
if (!m_AddingAssemblies.ContainsKey(assembly)) {
|
||||||
World.SimChat(Utils.StringToBytes(text),
|
m_AddingAssemblies[assembly] = 1;
|
||||||
ChatTypeEnum.DebugChannel, 2147483647,
|
} else {
|
||||||
part.AbsolutePosition,
|
m_AddingAssemblies[assembly]++;
|
||||||
part.Name, part.UUID, false);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] warnings = m_Compiler.GetWarnings();
|
||||||
|
|
||||||
|
if (warnings != null && warnings.Length != 0)
|
||||||
|
{
|
||||||
|
foreach (string warning in warnings)
|
||||||
|
{
|
||||||
|
if (!m_ScriptErrors.ContainsKey(itemID))
|
||||||
|
m_ScriptErrors[itemID] = new ArrayList();
|
||||||
|
|
||||||
|
m_ScriptErrors[itemID].Add(warning);
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// // DISPLAY WARNING INWORLD
|
||||||
|
// string text = "Warning:\n" + warning;
|
||||||
|
// if (text.Length > 1000)
|
||||||
|
// text = text.Substring(0, 1000);
|
||||||
|
// if (!ShowScriptSaveResponse(item.OwnerID,
|
||||||
|
// assetID, text, true))
|
||||||
|
// {
|
||||||
|
// if (presence != null && (!postOnRez))
|
||||||
|
// presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
|
||||||
|
//
|
||||||
|
// World.SimChat(Utils.StringToBytes(text),
|
||||||
|
// ChatTypeEnum.DebugChannel, 2147483647,
|
||||||
|
// part.AbsolutePosition,
|
||||||
|
// part.Name, part.UUID, false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// catch (Exception e2) // LEGIT: User Scripting
|
||||||
|
// {
|
||||||
|
// m_log.Error("[XEngine]: " +
|
||||||
|
// "Error displaying warning in-world: " +
|
||||||
|
// e2.ToString());
|
||||||
|
// m_log.Error("[XEngine]: " +
|
||||||
|
// "Warning:\r\n" +
|
||||||
|
// warning);
|
||||||
|
// }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e2) // LEGIT: User Scripting
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.Error("[XEngine]: "+
|
// try
|
||||||
"Error displaying error in-world: " +
|
// {
|
||||||
e2.ToString());
|
if (!m_ScriptErrors.ContainsKey(itemID))
|
||||||
m_log.Error("[XEngine]: " +
|
m_ScriptErrors[itemID] = new ArrayList();
|
||||||
"Errormessage: Error compiling script:\r\n" +
|
// DISPLAY ERROR INWORLD
|
||||||
e.Message.ToString());
|
// m_ScriptErrorMessage += "Failed to compile script in object: '" + part.ParentGroup.RootPart.Name + "' Script name: '" + item.Name + "' Error message: " + e.Message.ToString();
|
||||||
}
|
//
|
||||||
|
m_ScriptFailCount++;
|
||||||
|
m_ScriptErrors[itemID].Add(e.Message.ToString());
|
||||||
|
// string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString();
|
||||||
|
// if (text.Length > 1000)
|
||||||
|
// text = text.Substring(0, 1000);
|
||||||
|
// if (!ShowScriptSaveResponse(item.OwnerID,
|
||||||
|
// assetID, text, false))
|
||||||
|
// {
|
||||||
|
// if (presence != null && (!postOnRez))
|
||||||
|
// presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
|
||||||
|
// World.SimChat(Utils.StringToBytes(text),
|
||||||
|
// ChatTypeEnum.DebugChannel, 2147483647,
|
||||||
|
// part.AbsolutePosition,
|
||||||
|
// part.Name, part.UUID, false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// catch (Exception e2) // LEGIT: User Scripting
|
||||||
|
// {
|
||||||
|
// m_log.Error("[XEngine]: "+
|
||||||
|
// "Error displaying error in-world: " +
|
||||||
|
// e2.ToString());
|
||||||
|
// m_log.Error("[XEngine]: " +
|
||||||
|
// "Errormessage: Error compiling script:\r\n" +
|
||||||
|
// e.Message.ToString());
|
||||||
|
// }
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1555,7 +1567,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
|
|
||||||
public ArrayList GetScriptErrors(UUID itemID)
|
public ArrayList GetScriptErrors(UUID itemID)
|
||||||
{
|
{
|
||||||
return new ArrayList();
|
System.Threading.Thread.Sleep(1000);
|
||||||
|
|
||||||
|
lock (m_ScriptErrors)
|
||||||
|
{
|
||||||
|
if (m_ScriptErrors.ContainsKey(itemID))
|
||||||
|
{
|
||||||
|
ArrayList ret = m_ScriptErrors[itemID];
|
||||||
|
m_ScriptErrors.Remove(itemID);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return new ArrayList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue