aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraefimov <none@none>2016-03-24 01:15:32 +0300
committeraefimov <none@none>2016-03-24 01:15:32 +0300
commit06ab85e25392041909046ea06330ed591314f1e4 (patch)
tree3ae212c23bbc48facee69c44ab754c0428b69bc4
parent9c282d8c427f51a575db83912ae5a6a3acda3f2e (diff)
downloadjdk8u_jaxws-06ab85e25392041909046ea06330ed591314f1e4.tar.gz
8145039: JAXB marshaller fails with ClassCastException on classes generated by xjc
Reviewed-by: lancea
-rw-r--r--src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java b/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java
index 62416b0d..bcea98fe 100644
--- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java
+++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -100,10 +100,15 @@ public final class CTypeRef implements TypeRef<NType,NClass> {
*/
private static QName resolveSimpleTypeName(XSType declType) {
QName name = BGMBuilder.getName(declType);
- if (name != null && !XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(name.getNamespaceURI()))
- return resolveSimpleTypeName(declType.getBaseType());
- else
- return name;
+ QName result = null;
+ if (name != null && !XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(name.getNamespaceURI())) {
+ result = resolveSimpleTypeName(declType.getBaseType());
+ } else {
+ if ( !"anySimpleType".equals(declType.getName()) ) {
+ result = name;
+ }
+ }
+ return result;
}
public CTypeRef(CNonElement type, QName elementName, QName typeName, boolean nillable, XmlString defaultValue) {