8134111: Unmarshaller unmarshalls XML element which doesn't have the expected namespace
Reviewed-by: lancea
This commit is contained in:
parent
ffd8b1d718
commit
ea3318a1cb
jdk/test/javax/xml/bind/marshal/8134111
67
jdk/test/javax/xml/bind/marshal/8134111/UnmarshalTest.java
Normal file
67
jdk/test/javax/xml/bind/marshal/8134111/UnmarshalTest.java
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 8134111
|
||||
* @summary test that elements without namespace is ignored by unmarshaller
|
||||
* when elementFormDefault is set to QUALIFIED.
|
||||
* @compile testTypes/package-info.java testTypes/Root.java
|
||||
* testTypes/WhenType.java testTypes/ObjectFactory.java
|
||||
* @modules java.xml.bind
|
||||
* @run testng/othervm UnmarshalTest
|
||||
*/
|
||||
|
||||
import java.io.StringReader;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import org.testng.annotations.Test;
|
||||
import static org.testng.Assert.assertNull;
|
||||
import org.xml.sax.InputSource;
|
||||
import testTypes.Root;
|
||||
|
||||
public class UnmarshalTest {
|
||||
|
||||
@Test
|
||||
public void unmarshalUnexpectedNsTest() throws Exception {
|
||||
JAXBContext context;
|
||||
Unmarshaller unm;
|
||||
// Create JAXB context from testTypes package
|
||||
context = JAXBContext.newInstance("testTypes");
|
||||
// Create unmarshaller from JAXB context
|
||||
unm = context.createUnmarshaller();
|
||||
// Unmarshall xml document with unqualified dtime element
|
||||
Root r = (Root) unm.unmarshal(new InputSource(new StringReader(DOC)));
|
||||
// Print dtime value and check if it is null
|
||||
System.out.println("dtime is:"+r.getWhen().getDtime());
|
||||
assertNull(r.getWhen().getDtime());
|
||||
}
|
||||
|
||||
//Xml document to unmarshall with unqualified dtime element
|
||||
private final String DOC =
|
||||
"<tns:root xmlns:tns=\"http://www.example.org/testNamespace/\">" +
|
||||
"<tns:when>" +
|
||||
"<dtime>2015-06-24T13:16:14.933-04:00</dtime>" +
|
||||
"</tns:when>" +
|
||||
"</tns:root>";
|
||||
}
|
70
jdk/test/javax/xml/bind/marshal/8134111/testTypes/Root.java
Normal file
70
jdk/test/javax/xml/bind/marshal/8134111/testTypes/Root.java
Normal file
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package testTypes;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
/**
|
||||
* <p>Java class for anonymous complex type.
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "", propOrder = {"when"})
|
||||
@XmlRootElement(name = "root",
|
||||
namespace = "http://www.example.org/testNamespace/")
|
||||
public class Root {
|
||||
|
||||
@XmlElement(required = true,
|
||||
namespace = "http://www.example.org/testNamespace/")
|
||||
protected WhenType when;
|
||||
|
||||
/**
|
||||
* Gets the value of the when property.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link WhenType }
|
||||
*
|
||||
*/
|
||||
public WhenType getWhen() {
|
||||
return when;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the when property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link WhenType }
|
||||
*
|
||||
*/
|
||||
public void setWhen(WhenType value) {
|
||||
this.when = value;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package testTypes;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlSchemaType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.datatype.XMLGregorianCalendar;
|
||||
|
||||
/**
|
||||
* <p>Java class for WhenType complex type.
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "WhenType",
|
||||
propOrder = {"dtime"})
|
||||
public class WhenType {
|
||||
|
||||
@XmlElement(required = true)
|
||||
@XmlSchemaType(name = "dateTime")
|
||||
protected XMLGregorianCalendar dtime;
|
||||
|
||||
/**
|
||||
* Gets the value of the dtime property.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public XMLGregorianCalendar getDtime() {
|
||||
return dtime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the dtime property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public void setDtime(XMLGregorianCalendar value) {
|
||||
this.dtime = value;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
@javax.xml.bind.annotation.XmlSchema(
|
||||
namespace = "http://www.example.org/testNamespace/",
|
||||
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
|
||||
package testTypes;
|
Loading…
x
Reference in New Issue
Block a user