diff --git a/shared/src/main/scala/scala/xml/NodeSeq.scala b/shared/src/main/scala/scala/xml/NodeSeq.scala
index 07e6fe87d..18c8295b2 100644
--- a/shared/src/main/scala/scala/xml/NodeSeq.scala
+++ b/shared/src/main/scala/scala/xml/NodeSeq.scala
@@ -116,6 +116,7 @@ abstract class NodeSeq extends AbstractSeq[Node] with immutable.Seq[Node] with S
that match {
case "" => fail
case "_" => makeSeq(!_.isAtom)
+ case "@" => fail
case _ if (that(0) == '@' && this.length == 1) => atResult
case _ => makeSeq(_.label == that)
}
diff --git a/shared/src/test/scala/scala/xml/AttributeTest.scala b/shared/src/test/scala/scala/xml/AttributeTest.scala
index 0b3891496..285d24795 100644
--- a/shared/src/test/scala/scala/xml/AttributeTest.scala
+++ b/shared/src/test/scala/scala/xml/AttributeTest.scala
@@ -154,4 +154,23 @@ class AttributeTest {
assertEquals(List(Group(Seq(Text("1"))), Group(Seq(Text("2")))), barList)
}
+ @Test(expected=classOf[IllegalArgumentException])
+ def invalidAttributeFailForOne: Unit = {
+ \ "@"
+ }
+
+ @Test(expected=classOf[IllegalArgumentException])
+ def invalidAttributeFailForMany: Unit = {
+ .child \ "@"
+ }
+
+ @Test(expected=classOf[IllegalArgumentException])
+ def invalidEmptyAttributeFailForOne: Unit = {
+ \@ ""
+ }
+
+ @Test(expected=classOf[IllegalArgumentException])
+ def invalidEmptyAttributeFailForMany: Unit = {
+ .child \@ ""
+ }
}