changeset 1094:39dd7bed2325 icedtea-2.6pre09

Merge 2014/10/14
author andrew
date Thu, 16 Oct 2014 19:18:13 +0100
parents 4e25a5278078 (current diff) fea1db443eb1 (diff)
children 70a94bce8d6e
files .hgtags src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ArrayBeanInfoImpl.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ValueListBeanInfoImpl.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayERProperty.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DefaultValueLoaderDecorator.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Discarder.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DomLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyXsiLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Loader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ProxyLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/SAXConnector.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Scope.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/TextLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/UnmarshallingContext.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ValuePropertyLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiNilLoader.java src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiTypeLoader.java
diffstat 22 files changed, 219 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Sat Sep 13 16:38:49 2014 +0100
+++ b/.hgtags	Thu Oct 16 19:18:13 2014 +0100
@@ -437,6 +437,9 @@
 2d103c97c9bd0b3357e6d5e2b5b9ffb64c271288 jdk7u55-b31
 b15b4084288fa4ea9caf7f6b4e79d164c77bb1d6 jdk7u55-b32
 efd71c6ca0832e894b7e1619111860062fa96458 jdk7u55-b33
+485d7912bc20775bda670ea2236c883366590dd7 jdk7u55-b34
+587be38f9a6d60fbefc92dbe9fbd4c83d579c680 jdk7u55-b35
+62332eaec2ff8fc8bece2a905554ac08e375a661 jdk7u55-b36
 cb5f95263f620967f5097c5ff8e0b27cfb9e8c44 jdk7u60-b00
 f675dfce1e61a6ed01732ae7cfbae941791cba74 jdk7u60-b01
 8a3b9e8492a5ac4e2e0c166dbfc5d058be244377 jdk7u60-b02
@@ -465,6 +468,10 @@
 b312ec543dc09db784e161eb89607d4afd4cab1e jdk7u60-b18
 23598a667bb89b57d5abab5b37781a0952e16cf9 jdk7u65-b01
 1d21eb9011a060c7761c9a8a53e69d58bbea4893 jdk7u60-b19
+39e67887a3b112bf74f84df2aac0f46c65bfb005 jdk7u60-b30
+dfc2c4b9b16bd2d68435ddc9bb12036982021844 jdk7u60-b31
+0e17943c39fadb810b4dd2e9ac732503b86043f4 jdk7u60-b32
+910559d7f754d8fd6ab80a627869877443358316 jdk7u60-b33
 8ac19021e6af5d92b46111a6c41430f36ccdb901 jdk7u65-b02
 a70d681bc273a110d10cf3c4f9b35b25ca6a600f jdk7u65-b03
 7cd17f96988509e99fbb71003aeb76d92b638fef jdk7u65-b04
@@ -485,8 +492,55 @@
 dedfc93eeb5f4b28ad1a91902a0676aef0937e42 jdk7u65-b18
 db4cccbfd72fc265b736a273797963754434a7d2 jdk7u65-b19
 0cd66509e11335fac490076cbdcb2f47c592de86 jdk7u65-b32
+28d868d40df0d420b87698e1215e5039d24a8ae5 jdk7u65-b20
+1ef1681e21ca00edbc8727e849fef50637cc52d8 jdk7u67-b01
+db4cccbfd72fc265b736a273797963754434a7d2 jdk7u65-b40
+190d885fe83b5b1801ee6d7327161254545d55a8 jdk7u65-b31
+6cf7676aa11c053481c0806afda9fc91c2bfd782 jdk7u65-b33
+d63ca1c5bdb9fb2e36ec4afda431c0d1dfdfc07c jdk7u66-b00
+1dce52b208a9528266c26352e03e67ec0ddb4dd7 jdk7u66-b01
+04481967eff566b8a379a0315d2a3a255928d6ce jdk7u66-b09
+73d97ba8b2d94c904f2b087b9f28664eb19e9ce2 jdk7u66-b10
+7ecf8d9df00c185f381fa8cb92ea66fe1e5798ca jdk7u66-b11
+9ac1d99f712a04548d7e5d784f06c87e35023080 jdk7u66-b12
+f562dd8fb2b211a11b9a84849995d61b541723c3 jdk7u66-b13
+ae584331109f291e03af72cc9fcbbe5f8f789ab1 jdk7u66-b14
+36461c772d3101a8cb1eca16a9c81ed53218a4c9 jdk7u66-b15
+19ed8a653a3e8c6536fd1090c14f93e690eda7a3 jdk7u66-b16
+ea1e6f01f95c9a0984378643754d0f493bfa4484 jdk7u66-b17
+6092d0059338df25e82fbc69cc749b95e2565547 jdk7u71-b00
+814a3f0bb13071666375dd35bab7c9cc44c62448 jdk7u71-b01
+ba22fdc22c0410b91f6f992e480d9e8b4c5e85d0 jdk7u71-b02
+30edf4d8760f96b420bd40a2d9552826435356d4 jdk7u71-b03
+22cc8b125a119f9c23d0e81fc6627af330a27e4a jdk7u71-b04
+f612dbc0589894463f569fba245a98f842182d7a jdk7u71-b05
+15bdfc8b209a7c5b4e06907df11d3f795d326c14 jdk7u71-b06
+26ad03c06f31c516329059c5f053330570455887 jdk7u71-b07
+8d9d92a8e6d8610994d1596961395a4ce2bc5a69 jdk7u71-b08
+9ad7bbe28aecaf22c4f5c9ab905207ae963ec2c2 jdk7u71-b09
+32406b446fd458c6d0d8bd610eeb12d96a5f20a4 jdk7u71-b10
+b37043cee55ed025b04a3420908897e69c6c687f jdk7u71-b11
+3a432d7f01ed998ee6ca2ed04e818849a3d1e0c7 jdk7u71-b12
+9dd0dea849dd2550b58346977d9111717c1f38b2 jdk7u71-b13
+a580f2c49eacc68a11cf0e724aec4a974fb77745 jdk7u71-b14
+18676fc7713f5341f298a1ae2aee9e217fcdb5a5 jdk7u72-b01
+e4bbb79df2b13cea8c24ee2e6346e1aa30645400 jdk7u72-b02
+646f7c237e9ecde8df0fc6524b3605a89e6dc135 jdk7u72-b03
+30d42f2fde558b4aeae26cc7bda89b2badf88aab jdk7u72-b04
+761c40c9076aefac72bbff913e8bc088e565386f jdk7u72-b05
+a3961ce4d5c1fd1f9cde546e62760a008b5b9d60 jdk7u72-b06
+1153553de579fbbf8c328ea47f07accf8e2d9ac2 jdk7u72-b07
+7b00d0359f49c82b38bb2f2faafae53eacc1a995 jdk7u72-b08
+f16ea19cfd03274e9e1fd5367c3f4c23accf4e75 jdk7u72-b09
+615c0d49e8927c9b03f5694df4ddb7a5e45eaf6d jdk7u72-b10
+b34f135642cddf3c15f1fecaad320cb12cbd9472 jdk7u72-b11
+cfa494e8b9bcd29ba59f1bfa3c365418b4102f71 jdk7u72-b12
+d4be88d9bfbff3e41bc4121838e90160734d9805 jdk7u72-b13
+e33bca6f8dab3e82b2dec2c52074f19a88e1267e jdk7u72-b14
+587c4a3bfb76c03fa589f61e28ed739c537409bc jdk7u72-b30
 bef313c7ff7a7a829f8f6a305bf0c3738ad99795 jdk7u80-b00
 0eb2482c3d0663c39794ec4c268acc41c4cd387b jdk7u80-b01
 f21a65d1832ce426c02a7d87b9d83b1a4a64018c icedtea-2.6pre07
 37d1831108b5ced7f1e63e1cd58b46dba7b76cc9 icedtea-2.6pre06
 646981c9ac471feb9c600504585a4f2c59aa2f61 icedtea-2.6pre08
+579128925dd9a0e9c529125c9e299dc0518037a5 jdk7u80-b02
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ArrayBeanInfoImpl.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ArrayBeanInfoImpl.java	Thu Oct 16 19:18:13 2014 +0100
@@ -79,19 +79,19 @@
 
         @Override
         public void startElement(UnmarshallingContext.State state, TagName ea) {
-            state.target = new ArrayList();
+            state.setTarget(new ArrayList());
         }
 
         @Override
         public void leaveElement(UnmarshallingContext.State state, TagName ea) {
-            state.target = toArray((List)state.target);
+            state.setTarget(toArray((List)state.getTarget()));
         }
 
         @Override
         public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
             if(ea.matches("","item")) {
-                state.loader = itemLoader;
-                state.receiver = this;
+                state.setLoader(itemLoader);
+                state.setReceiver(this);
             } else {
                 super.childElement(state,ea);
             }
@@ -103,9 +103,9 @@
         }
 
         public void receive(UnmarshallingContext.State state, Object o) {
-            ((List)state.target).add(o);
+            ((List)state.getTarget()).add(o);
         }
-    };
+    }
 
     protected Object toArray( List list ) {
         int len = list.size();
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java	Thu Oct 16 19:18:13 2014 +0100
@@ -208,8 +208,8 @@
 
         @Override
         public final void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
-            state.loader = core;
-            state.intercepter = this;
+            state.setLoader(core);
+            state.setIntercepter(this);
 
             // TODO: make sure there aren't too many duplicate of this code
             // create the object to unmarshal
@@ -231,21 +231,21 @@
             fireBeforeUnmarshal(ElementBeanInfoImpl.this, child, state);
 
             context.recordOuterPeer(child);
-            UnmarshallingContext.State p = state.prev;
-            p.backup = p.target;
-            p.target = child;
+            UnmarshallingContext.State p = state.getPrev();
+            p.setBackup(p.getTarget());
+            p.setTarget(child);
 
             core.startElement(state,ea);
         }
 
         public Object intercept(UnmarshallingContext.State state, Object o) throws SAXException {
-            JAXBElement e = (JAXBElement)state.target;
-            state.target = state.backup;
-            state.backup = null;
+            JAXBElement e = (JAXBElement)state.getTarget();
+            state.setTarget(state.getBackup());
+            state.setBackup(null);
 
-            if (state.nil) {
+            if (state.isNil()) {
                 e.setNil(true);
-                state.nil = false;
+                state.setNil(false);
             }
 
             if(o!=null)
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ValueListBeanInfoImpl.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ValueListBeanInfoImpl.java	Thu Oct 16 19:18:13 2014 +0100
@@ -90,7 +90,7 @@
                 idx = p;
             }
 
-            state.target = toArray(r);
+            state.setTarget(toArray(r));
         }
     };
 
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayERProperty.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayERProperty.java	Thu Oct 16 19:18:13 2014 +0100
@@ -98,7 +98,7 @@
             UnmarshallingContext context = state.getContext();
             context.startScope(1);
             // inherit the target so that our children can access its target
-            state.target = state.prev.target;
+            state.setTarget(state.getPrev().getTarget());
 
             // start it now, so that even if there's no children we can still return empty collection
             context.getScope(0).start(acc,lister);
@@ -116,8 +116,8 @@
                 super.childElement(state,ea);
                 return;
             }
-            state.loader = child.loader;
-            state.receiver = child.receiver;
+            state.setLoader(child.loader);
+            state.setReceiver(child.receiver);
         }
 
         @Override
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java	Thu Oct 16 19:18:13 2014 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -147,17 +147,17 @@
         public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
             // create or obtain the Map object
             try {
-                target.set((BeanT)state.prev.target);
+                target.set((BeanT)state.getPrev().getTarget());
                 map.set(acc.get(target.get()));
                 if(map.get() == null) {
                     map.set(ClassFactory.create(mapImplClass));
                 }
                 map.get().clear();
-                state.target = map.get();
+                state.setTarget(map.get());
             } catch (AccessorException e) {
                 // recover from error by setting a dummy Map that receives and discards the values
                 handleGenericException(e,true);
-                state.target = new HashMap();
+                state.setTarget(new HashMap());
             }
         }
 
@@ -175,7 +175,7 @@
         @Override
         public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
             if(ea.matches(entryTag)) {
-                state.loader = entryLoader;
+                state.setLoader(entryLoader);
             } else {
                 super.childElement(state,ea);
             }
@@ -195,26 +195,26 @@
     private final Loader entryLoader = new Loader(false) {
         @Override
         public void startElement(UnmarshallingContext.State state, TagName ea) {
-            state.target = new Object[2];  // this is inefficient
+            state.setTarget(new Object[2]);  // this is inefficient
         }
 
         @Override
         public void leaveElement(UnmarshallingContext.State state, TagName ea) {
-            Object[] keyValue = (Object[])state.target;
-            Map map = (Map) state.prev.target;
+            Object[] keyValue = (Object[])state.getTarget();
+            Map map = (Map) state.getPrev().getTarget();
             map.put(keyValue[0],keyValue[1]);
         }
 
         @Override
         public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
             if(ea.matches(keyTag)) {
-                state.loader = keyLoader;
-                state.receiver = keyReceiver;
+                state.setLoader(keyLoader);
+                state.setReceiver(keyReceiver);
                 return;
             }
             if(ea.matches(valueTag)) {
-                state.loader = valueLoader;
-                state.receiver = valueReceiver;
+                state.setLoader(valueLoader);
+                state.setReceiver(valueReceiver);
                 return;
             }
             super.childElement(state,ea);
@@ -232,7 +232,7 @@
             this.index = index;
         }
         public void receive(UnmarshallingContext.State state, Object o) {
-            ((Object[])state.target)[index] = o;
+            ((Object[])state.getTarget())[index] = o;
         }
     }
 
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java	Thu Oct 16 19:18:13 2014 +0100
@@ -152,7 +152,7 @@
 
     public void receive(UnmarshallingContext.State state, Object o) throws SAXException {
         try {
-            set((BeanT) state.target, (ValueT) o);
+            set((BeanT) state.getTarget(), (ValueT) o);
         } catch (AccessorException e) {
             Loader.handleGenericException(e, true);
         } catch (IllegalAccessError iae) {
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DefaultValueLoaderDecorator.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DefaultValueLoaderDecorator.java	Thu Oct 16 19:18:13 2014 +0100
@@ -44,10 +44,10 @@
     @Override
     public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
         // install the default value, but don't override the one given by the parent loader
-        if(state.elementDefaultValue==null)
-            state.elementDefaultValue = defaultValue;
+        if(state.getElementDefaultValue() == null)
+            state.setElementDefaultValue(defaultValue);
 
-        state.loader = l;
+        state.setLoader(l);
         l.startElement(state,ea);
     }
 }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Discarder.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Discarder.java	Thu Oct 16 19:18:13 2014 +0100
@@ -44,8 +44,8 @@
 
     @Override
     public void childElement(UnmarshallingContext.State state, TagName ea) {
-        state.target = null;
+        state.setTarget(null);
         // registering this allows the discarder to process the whole subtree.
-        state.loader = this;
+        state.setLoader(this);
     }
 }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DomLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/DomLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -98,10 +98,10 @@
     @Override
     public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
         UnmarshallingContext context = state.getContext();
-        if (state.target == null)
-            state.target = new State(context);
+        if (state.getTarget() == null)
+            state.setTarget(new State(context));
 
-        State s = (State) state.target;
+        State s = (State) state.getTarget();
         try {
             s.declarePrefixes(context, context.getNewlyDeclaredPrefixes());
             s.handler.startElement(ea.uri, ea.local, ea.getQname(), ea.atts);
@@ -113,10 +113,10 @@
 
     @Override
     public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
-        state.loader = this;
-        State s = (State) state.prev.target;
+        state.setLoader(this);
+        State s = (State) state.getPrev().getTarget();
         s.depth++;
-        state.target = s;
+        state.setTarget(s);
     }
 
     @Override
@@ -124,7 +124,7 @@
         if(text.length()==0)
             return;     // there's no point in creating an empty Text node in DOM.
         try {
-            State s = (State) state.target;
+            State s = (State) state.getTarget();
             s.handler.characters(text.toString().toCharArray(),0,text.length());
         } catch( SAXException e ) {
             state.getContext().handleError(e);
@@ -134,7 +134,7 @@
 
     @Override
     public void leaveElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
-        State s = (State) state.target;
+        State s = (State) state.getTarget();
         UnmarshallingContext context = state.getContext();
 
         try {
@@ -156,7 +156,7 @@
             }
 
             // we are done
-            state.target = s.getElement();
+            state.setTarget(s.getElement());
         }
     }
 
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -47,7 +47,7 @@
 
     public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException {
         try {
-            xacc.parse(state.prev.target,text);
+            xacc.parse(state.getPrev().getTarget(), text);
         } catch (AccessorException e) {
             handleGenericException(e,true);
         } catch (RuntimeException e) {
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyXsiLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LeafPropertyXsiLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -55,9 +55,9 @@
 
     @Override
     public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
-        state.loader = selectLoader(state, ea);
-
-        state.loader.startElement(state, ea);
+        final Loader loader = selectLoader(state, ea);
+        state.setLoader(loader);
+        loader.startElement(state, ea);
     }
 
     protected Loader selectLoader(UnmarshallingContext.State state, TagName ea) throws SAXException {
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Loader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Loader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -88,8 +88,8 @@
     public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
         // notify the error, then recover by ignoring the whole element.
         reportUnexpectedChildElement(ea, true);
-        state.loader = Discarder.INSTANCE;
-        state.receiver = null;
+        state.setLoader(Discarder.INSTANCE);
+        state.setReceiver(null);
     }
 
     @SuppressWarnings({"StringEquality"})
@@ -191,10 +191,10 @@
             UnmarshallingContext context = state.getContext();
             Unmarshaller.Listener listener = context.parent.getListener();
             if(beanInfo.hasBeforeUnmarshalMethod()) {
-                beanInfo.invokeBeforeUnmarshalMethod(context.parent, child, state.prev.target);
+                beanInfo.invokeBeforeUnmarshalMethod(context.parent, child, state.getPrev().getTarget());
             }
             if(listener!=null) {
-                listener.beforeUnmarshal(child, state.prev.target);
+                listener.beforeUnmarshal(child, state.getPrev().getTarget());
             }
         }
     }
@@ -211,10 +211,10 @@
             UnmarshallingContext context = state.getContext();
             Unmarshaller.Listener listener = context.parent.getListener();
             if(beanInfo.hasAfterUnmarshalMethod()) {
-                beanInfo.invokeAfterUnmarshalMethod(context.parent, child, state.target);
+                beanInfo.invokeAfterUnmarshalMethod(context.parent, child, state.getTarget());
             }
             if(listener!=null)
-                listener.afterUnmarshal(child, state.target);
+                listener.afterUnmarshal(child, state.getTarget());
         }
     }
 
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ProxyLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ProxyLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -41,7 +41,7 @@
     @Override
     public final void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
         Loader loader = selectLoader(state,ea);
-        state.loader = loader;
+        state.setLoader(loader);
         loader.startElement(state,ea);
     }
 
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/SAXConnector.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/SAXConnector.java	Thu Oct 16 19:18:13 2014 +0100
@@ -116,17 +116,7 @@
         if( qname==null || qname.length()==0 )
             qname=local;
 
-
-        boolean ignorable = true;
-        StructureLoader sl;
-
-        // not null only if element content is processed (StructureLoader is used)
-        // ugly
-        if((sl = this.context.getStructureLoader()) != null) {
-            ignorable = ((ClassBeanInfoImpl)sl.getBeanInfo()).hasElementOnlyContentModel();
-        }
-
-        processText(ignorable);
+        processText(!context.getCurrentState().isMixed());
 
         tagName.uri = uri;
         tagName.local = local;
@@ -162,7 +152,7 @@
     }
 
     private void processText( boolean ignorable ) throws SAXException {
-        if( predictor.expectText() && (!ignorable || !WhiteSpaceProcessor.isWhiteSpace(buffer)))
+        if (predictor.expectText() && (!ignorable || !WhiteSpaceProcessor.isWhiteSpace(buffer)))
             next.text(buffer);
         buffer.setLength(0);
     }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Scope.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/Scope.java	Thu Oct 16 19:18:13 2014 +0100
@@ -97,7 +97,7 @@
     public void add( Accessor<BeanT,PropT> acc, Lister<BeanT,PropT,ItemT,PackT> lister, ItemT value) throws SAXException{
         try {
             if(!hasStarted()) {
-                this.bean = (BeanT)context.getCurrentState().target;
+                this.bean = (BeanT)context.getCurrentState().getTarget();
                 this.acc = acc;
                 this.lister = lister;
                 this.pack = lister.startPacking(bean,acc);
@@ -121,7 +121,7 @@
     public void start( Accessor<BeanT,PropT> acc, Lister<BeanT,PropT,ItemT,PackT> lister) throws SAXException{
         try {
             if(!hasStarted()) {
-                this.bean = (BeanT)context.getCurrentState().target;
+                this.bean = (BeanT)context.getCurrentState().getTarget();
                 this.acc = acc;
                 this.lister = lister;
                 this.pack = lister.startPacking(bean,acc);
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -171,7 +171,7 @@
 
         context.recordInnerPeer(child);
 
-        state.target = child;
+        state.setTarget(child);
 
         fireBeforeUnmarshal(beanInfo, child, state);
 
@@ -196,7 +196,7 @@
                         String qname = atts.getQName(i);
                         if(atts.getURI(i).equals(WellKnownNamespace.XML_SCHEMA_INSTANCE))
                             continue;   // xsi:* attributes are meant to be processed by us, not by user apps.
-                        Object o = state.target;
+                        Object o = state.getTarget();
                         Map<QName,String> map = attCatchAll.get(o);
                         if(map==null) {
                             // TODO: use  ClassFactory.inferImplClass(sig,knownImplClasses)
@@ -238,8 +238,8 @@
             }
         }
 
-        state.loader = child.loader;
-        state.receiver = child.receiver;
+        state.setLoader(child.loader);
+        state.setReceiver(child.receiver);
     }
 
     @Override
@@ -261,7 +261,7 @@
     @Override
     public void leaveElement(UnmarshallingContext.State state, TagName ea) throws SAXException {
         state.getContext().endScope(frameSize);
-        fireAfterUnmarshal(beanInfo, state.target, state.prev);
+        fireAfterUnmarshal(beanInfo, state.getTarget(), state.getPrev());
     }
 
     private static final QNameMap<TransducedAccessor> EMPTY = new QNameMap<TransducedAccessor>();
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/TextLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/TextLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -51,7 +51,7 @@
 
     public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException {
         try {
-            state.target = xducer.parse(text);
+            state.setTarget(xducer.parse(text));
         } catch (AccessorException e) {
             handleGenericException(e,true);
         } catch (RuntimeException e) {
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/UnmarshallingContext.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/UnmarshallingContext.java	Thu Oct 16 19:18:13 2014 +0100
@@ -183,20 +183,19 @@
         /**
          * Loader that owns this element.
          */
-        public Loader loader;
+        private Loader loader;
         /**
          * Once {@link #loader} is completed, this receiver
          * receives the result.
          */
-        public Receiver receiver;
+        private Receiver receiver;
 
-        public Intercepter intercepter;
-
+        private Intercepter intercepter;
 
         /**
          * Object being unmarshalled by this {@link #loader}.
          */
-        public Object target;
+        private Object target;
 
         /**
          * Hack for making JAXBElement unmarshalling work.
@@ -225,7 +224,7 @@
          * @see ElementBeanInfoImpl.IntercepterLoader#startElement(State, TagName)
          * @see ElementBeanInfoImpl.IntercepterLoader#intercept(State, Object)
          */
-        public Object backup;
+        private Object backup;
 
         /**
          * Number of {@link UnmarshallingContext#nsBind}s declared thus far.
@@ -241,17 +240,22 @@
          * or by a child {@link Loader} when
          * {@link Loader#startElement(State, TagName)} is called.
          */
-        public String elementDefaultValue;
+        private String elementDefaultValue;
 
         /**
          * {@link State} for the parent element
          *
          * {@link State} objects form a doubly linked list.
          */
-        public State prev;
+        private State prev;
         private State next;
 
-        public boolean nil = false;
+        private boolean nil = false;
+
+        /**
+         * specifies that we are working with mixed content
+         */
+        private boolean mixed = false;
 
         /**
          * Gets the context.
@@ -262,13 +266,17 @@
 
         private State(State prev) {
             this.prev = prev;
-            if(prev!=null)
+            if(prev!=null) {
                 prev.next = this;
+                if (prev.mixed) // parent is in mixed mode
+                    this.mixed = true;
+            }
         }
 
         private void push() {
-            if(next==null)
-                allocateMoreStates();
+            if(next==null) {
+                next = new State(this);
+            }
             State n = next;
             n.numNsDecl = nsLen;
             current = n;
@@ -278,11 +286,71 @@
             assert prev!=null;
             loader = null;
             nil = false;
+            mixed = false;
             receiver = null;
             intercepter = null;
             elementDefaultValue = null;
             target = null;
             current = prev;
+            next = null;
+        }
+
+        public boolean isMixed() {
+            return mixed;
+        }
+
+        public Object getTarget() {
+            return target;
+        }
+
+        public void setLoader(Loader loader) {
+            if (loader instanceof StructureLoader) // set mixed mode
+                mixed = !((StructureLoader)loader).getBeanInfo().hasElementOnlyContentModel();
+            this.loader = loader;
+        }
+
+        public void setReceiver(Receiver receiver) {
+            this.receiver = receiver;
+        }
+
+        public State getPrev() {
+            return prev;
+        }
+
+        public void setIntercepter(Intercepter intercepter) {
+            this.intercepter = intercepter;
+        }
+
+        public void setBackup(Object backup) {
+            this.backup = backup;
+        }
+
+        public void setTarget(Object target) {
+            this.target = target;
+        }
+
+        public Object getBackup() {
+            return backup;
+        }
+
+        public boolean isNil() {
+            return nil;
+        }
+
+        public void setNil(boolean nil) {
+            this.nil = nil;
+        }
+
+        public Loader getLoader() {
+            return loader;
+        }
+
+        public String getElementDefaultValue() {
+            return elementDefaultValue;
+        }
+
+        public void setElementDefaultValue(String elementDefaultValue) {
+            this.elementDefaultValue = elementDefaultValue;
         }
     }
 
@@ -322,7 +390,6 @@
         this.parent = _parent;
         this.assoc = assoc;
         this.root = this.current = new State(null);
-        allocateMoreStates();
     }
 
     public void reset(InfosetScanner scanner,boolean isInplaceMode, JaxBeanInfo expectedType, IDResolver idResolver) {
@@ -369,22 +436,6 @@
         return null;
     }
 
-    /**
-     * Allocates a few more {@link State}s.
-     *
-     * Allocating multiple {@link State}s at once allows those objects
-     * to be allocated near each other, which reduces the working set
-     * of CPU. It improves the chance the relevant data is in the cache.
-     */
-    private void allocateMoreStates() {
-        // this method should be used only when we run out of a state.
-        assert current.next==null;
-
-        State s = current;
-        for( int i=0; i<8; i++ )
-            s = new State(s);
-    }
-
     public void clearStates() {
         State last = current;
         while (last.next != null) last = last.next;
@@ -487,16 +538,15 @@
     }
 
     public void text(CharSequence pcdata) throws SAXException {
-        State cur = current;
         pushCoordinator();
         try {
-            if(cur.elementDefaultValue!=null) {
-                if(pcdata.length()==0) {
+            if (current.elementDefaultValue != null) {
+                if (pcdata.length() == 0) {
                     // send the default value into the unmarshaller instead
-                    pcdata = cur.elementDefaultValue;
+                    pcdata = current.elementDefaultValue;
                 }
             }
-            cur.loader.text(cur,pcdata);
+            current.loader.text(current, pcdata);
         } finally {
             popCoordinator();
         }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ValuePropertyLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/ValuePropertyLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -49,18 +49,17 @@
 
     public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException {
         try {
-            xacc.parse(state.target,text);
+            xacc.parse(state.getTarget(),text);
         } catch (AccessorException e) {
             handleGenericException(e,true);
         } catch (RuntimeException e) {
-            if(state.prev != null) {
-                if(state.prev.target instanceof JAXBElement) {
-                    ; // do nothing - issue 601 - don't report exceptions like
-                      // NumberFormatException when unmarshalling "nillable" element
-                      // (I suppose JAXBElement indicates this
-                } else {
+            if(state.getPrev() != null) {
+                if (!(state.getPrev().getTarget() instanceof JAXBElement))
                     handleParseConversionException(state,e);
-                }
+                // else
+                // do nothing - issue 601 - don't report exceptions like
+                // NumberFormatException when unmarshalling "nillable" element
+                // (I suppose JAXBElement indicates this
             } else {
                 handleParseConversionException(state,e);
             }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiNilLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiNilLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -62,7 +62,7 @@
                 onNil(state);
                 boolean hasOtherAttributes = (ea.atts.getLength() - 1) > 0;
                 // see issues 6759703 and 565 - need to preserve attributes even if the element is nil; only when the type is stored in JAXBElement
-                if (!(hasOtherAttributes && (state.prev.target instanceof JAXBElement))) {
+                if (!(hasOtherAttributes && (state.getPrev().getTarget() instanceof JAXBElement))) {
                     return Discarder.INSTANCE;
                 }
             }
@@ -96,8 +96,8 @@
         @Override
         protected void onNil(UnmarshallingContext.State state) throws SAXException {
             try {
-                acc.set(state.prev.target,null);
-                state.prev.nil = true;
+                acc.set(state.getPrev().getTarget(),null);
+                state.getPrev().setNil(true);
             } catch (AccessorException e) {
                 handleGenericException(e,true);
             }
@@ -113,7 +113,7 @@
         @Override
         protected void onNil(UnmarshallingContext.State state) {
             // let the receiver add this to the lister
-            state.target = null;
+            state.setTarget(null);
         }
     }
 }
--- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiTypeLoader.java	Sat Sep 13 16:38:49 2014 +0100
+++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/XsiTypeLoader.java	Thu Oct 16 19:18:13 2014 +0100
@@ -61,7 +61,7 @@
             beanInfo = defaultBeanInfo;
 
         Loader loader = beanInfo.getLoader(null,false);
-        state.loader = loader;
+        state.setLoader(loader);
         loader.startElement(state,ea);
     }