[Mono-list] Mono-Only XDocument.Save Error
Drew DeVault
sircmpwn at gmail.com
Mon Feb 6 07:06:08 UTC 2012
I can duplicate this problem on Linux Mint 12 and Ubuntu 11.10, but
Microsoft.NET on Windows 7 does not have the issue. The issue is that my
XDocument becomes corrupted the moment it loads, and cannot be saved.
Strangely, I am able to traverse it and manipulate it in memory. The
following code:
Stream s = File.Open("example.xml", FileMode.Open);
XDocument d = XDocument.Load(s);
s.Close();
d.Save("example.xml");
Produces the following exception:
[23:19:05] PartyCraft.CurrentDomain_UnhandledException: Error:
InvalidOperationException: This XmlWriter does not accept Text at this
state Prolog.
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException:
This XmlWriter does not accept Text at this state Prolog.
at System.Xml.XmlTextWriter.ShiftStateContent (System.String occured,
Boolean allowAttribute) [0x00000] in <filename unknown>:0
at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000]
in <filename unknown>:0
at System.Xml.DefaultXmlWriter.WriteString (System.String text)
[0x00000] in <filename unknown>:0
at System.Xml.Linq.XText.WriteTo (System.Xml.XmlWriter w) [0x00000] in
<filename unknown>:0
at System.Xml.Linq.XDocument.WriteTo (System.Xml.XmlWriter w) [0x00000]
in <filename unknown>:0
at System.Xml.Linq.XNode.ToString (SaveOptions options) [0x00000] in
<filename unknown>:0
at System.Xml.Linq.XNode.ToString () [0x00000] in <filename unknown>:0
at PartyCraftServer.XmlSettings.set_Item (System.String key,
System.String value) [0x00000] in <filename unknown>:0
at PartyCraftServer.Commands.SettingCommand.ExecuteCommand
(LibMinecraft.Server.RemoteClient client, System.String[] parameters)
[0x00000] in <filename unknown>:0
at PartyCraftServer.Commands.Command.Execute
(LibMinecraft.Server.RemoteClient client, System.String command)
[0x00000] in <filename unknown>:0
at PartyCraftServer.PartyCraft.Run () [0x00000] in <filename unknown>:0
at PartyCraftServer.Program.Main (System.String[] args) [0x00000] in
<filename unknown>:0
The same exception occurs on d.ToString();
The XML that is being loaded looks like this:
<?xml version="1.0" encoding="utf-8" ?>
<partyCraft>
<server maxplayers="100">
<motd>PartyCraft Test Server</motd>
<messages>
<death>
<!--TODO-->
<suicide>§e{0} killed themselves.</suicide>
<creeper>§e{0} looked at a creeper funny.</creeper>
</death>
</messages>
</server>
<command>
<alias>
<setting>s</setting>
</alias>
</command>
<plugins>
<!--TODO-->
<plugin>TestPlugin.dll</plugin>
</plugins>
</partyCraft>
And when saved, even though an exception occurs, the document is
overwritten with this:
<?xml version="1.0" encoding="utf-8" ?>
This is the output from mono --version:
Mono JIT compiler version 2.10.5 (Debian 2.10.5-1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors.
www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
Any help would be appreciated.
--
Drew "Sir Cmpwn" DeVault
More information about the Mono-list
mailing list