summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-09-26 19:53:23 +0000
committerPaul Phillips <paulp@improving.org>2009-09-26 19:53:23 +0000
commit5ae38f0f2ab1823dd5e5fce6b43a54bc93f2fedc (patch)
tree975f856596cfdaf3b392d1fa79b61eb7b024933b /src
parent09b71d8beaaa9ce643f130165ec026d51fd0681d (diff)
downloadscala-5ae38f0f2ab1823dd5e5fce6b43a54bc93f2fedc.tar.gz
scala-5ae38f0f2ab1823dd5e5fce6b43a54bc93f2fedc.tar.bz2
scala-5ae38f0f2ab1823dd5e5fce6b43a54bc93f2fedc.zip
For for an XML bug I accidentally introduced in...
For for an XML bug I accidentally introduced in recent changes.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/xml/Atom.scala2
-rw-r--r--src/library/scala/xml/Text.scala10
-rw-r--r--src/library/scala/xml/parsing/FactoryAdapter.scala7
3 files changed, 13 insertions, 6 deletions
diff --git a/src/library/scala/xml/Atom.scala b/src/library/scala/xml/Atom.scala
index 44770bce1a..79dcd58bf1 100644
--- a/src/library/scala/xml/Atom.scala
+++ b/src/library/scala/xml/Atom.scala
@@ -20,7 +20,7 @@ package scala.xml
@serializable
class Atom[+A](val data: A) extends SpecialNode
{
- if (data.asInstanceOf[AnyRef] == null)
+ if (data == null)
throw new IllegalArgumentException("cannot construct Atom(null)")
final override def doCollectNamespaces = false
diff --git a/src/library/scala/xml/Text.scala b/src/library/scala/xml/Text.scala
index 34001bba70..97c8f120f9 100644
--- a/src/library/scala/xml/Text.scala
+++ b/src/library/scala/xml/Text.scala
@@ -12,8 +12,14 @@
package scala.xml
object Text {
- def apply(data: String) = new Text(data)
- def unapply(other: Any) = other match { case x: Text => Some(x.data) ; case _ => None }
+ def apply(data: String) =
+ if (data != null) new Text(data)
+ else throw new IllegalArgumentException("tried to construct Text with null")
+
+ def unapply(other: Any) = other match {
+ case x: Text => Some(x.data)
+ case _ => None
+ }
}
/** The class <code>Text</code> implements an XML node for text (PCDATA).
diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala
index 31ace71145..c210fe49c4 100644
--- a/src/library/scala/xml/parsing/FactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/FactoryAdapter.scala
@@ -135,14 +135,15 @@ abstract class FactoryAdapter extends DefaultHandler with factory.XMLLoader[Node
var m: MetaData = Null
var scpe: NamespaceBinding = TopScope
- for (i <- (0 until attributes.getLength()).toList) {
+ for (i <- 0 until attributes.getLength()) {
val qname = attributes getQName i
- val value = (attributes getValue i) match { case "" => null ; case x => x }
+ val value = attributes getValue i
val (pre, key) = splitName(qname)
+ def nullIfEmpty(s: String) = if (s == "") null else s
if (pre == "xmlns" || (pre == null && qname == "xmlns")) {
val arg = if (pre == null) null else key
- scpe = new NamespaceBinding(arg, value, scpe)
+ scpe = new NamespaceBinding(arg, nullIfEmpty(value), scpe)
}
else
m = Attribute(Option(pre), key, Text(value), m)