From 4a02eb3afe5945166d0d2df1b827d82af4d8d4e8 Mon Sep 17 00:00:00 2001 From: Jiangli Zhou Date: Thu, 29 Mar 2012 22:18:56 -0400 Subject: [PATCH 01/82] 7154670: The instanceKlass _implementors[] and _nof_implementors are not needed for non-interface klass Change implementor to embedded instanceKlass field. Reviewed-by: sspitsyn, minqi, coleenp --- .../jvm/hotspot/jdi/VirtualMachineImpl.java | 14 +--- .../sun/jvm/hotspot/oops/InstanceKlass.java | 18 +---- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 4 +- hotspot/src/share/vm/ci/ciInstanceKlass.cpp | 45 +++-------- hotspot/src/share/vm/ci/ciInstanceKlass.hpp | 26 +++--- .../share/vm/classfile/classFileParser.cpp | 4 +- hotspot/src/share/vm/code/dependencies.cpp | 25 +++--- hotspot/src/share/vm/memory/oopFactory.cpp | 7 +- hotspot/src/share/vm/memory/oopFactory.hpp | 3 +- hotspot/src/share/vm/oops/instanceKlass.cpp | 62 ++++++++------- hotspot/src/share/vm/oops/instanceKlass.hpp | 79 +++++++++++++------ .../src/share/vm/oops/instanceKlassKlass.cpp | 55 +++++++------ .../src/share/vm/oops/instanceKlassKlass.hpp | 3 +- hotspot/src/share/vm/runtime/vmStructs.cpp | 3 - 14 files changed, 183 insertions(+), 165 deletions(-) diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java index 4cbc1447ea9..a7d7d4ee768 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2012, 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 @@ -889,15 +889,9 @@ public class VirtualMachineImpl extends MirrorImpl implements PathSearchingVirtu Klass kls = ((ReferenceTypeImpl)type).ref(); if (kls instanceof InstanceKlass) { InstanceKlass ik = (InstanceKlass) kls; - if (ik.isInterface()) { - if (ik.nofImplementors() == 0L) { - return new ArrayList(0); - } - } else { - // if the Klass is final or if there are no subklasses loaded yet - if (ik.getAccessFlagsObj().isFinal() || ik.getSubklassKlass() == null) { - includeSubtypes = false; - } + // if the Klass is final or if there are no subklasses loaded yet + if (ik.getAccessFlagsObj().isFinal() || ik.getSubklassKlass() == null) { + includeSubtypes = false; } } else { // no subtypes for primitive array types diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java index d75d890485c..f342eb72882 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -52,7 +52,6 @@ public class InstanceKlass extends Klass { private static int HIGH_OFFSET; private static int GENERIC_SIGNATURE_INDEX_OFFSET; private static int FIELD_SLOTS; - public static int IMPLEMENTORS_LIMIT; // ClassState constants private static int CLASS_STATE_UNPARSABLE_BY_GC; @@ -70,13 +69,6 @@ public class InstanceKlass extends Klass { methodOrdering = new OopField(type.getOopField("_method_ordering"), Oop.getHeaderSize()); localInterfaces = new OopField(type.getOopField("_local_interfaces"), Oop.getHeaderSize()); transitiveInterfaces = new OopField(type.getOopField("_transitive_interfaces"), Oop.getHeaderSize()); - nofImplementors = new CIntField(type.getCIntegerField("_nof_implementors"), Oop.getHeaderSize()); - IMPLEMENTORS_LIMIT = db.lookupIntConstant("instanceKlass::implementors_limit").intValue(); - implementors = new OopField[IMPLEMENTORS_LIMIT]; - for (int i = 0; i < IMPLEMENTORS_LIMIT; i++) { - long arrayOffset = Oop.getHeaderSize() + (i * db.getAddressSize()); - implementors[i] = new OopField(type.getOopField("_implementors[0]"), arrayOffset); - } fields = new OopField(type.getOopField("_fields"), Oop.getHeaderSize()); javaFieldsCount = new CIntField(type.getCIntegerField("_java_fields_count"), Oop.getHeaderSize()); constants = new OopField(type.getOopField("_constants"), Oop.getHeaderSize()); @@ -136,8 +128,6 @@ public class InstanceKlass extends Klass { private static OopField methodOrdering; private static OopField localInterfaces; private static OopField transitiveInterfaces; - private static CIntField nofImplementors; - private static OopField[] implementors; private static OopField fields; private static CIntField javaFieldsCount; private static OopField constants; @@ -317,9 +307,6 @@ public class InstanceKlass extends Klass { public TypeArray getMethodOrdering() { return (TypeArray) methodOrdering.getValue(this); } public ObjArray getLocalInterfaces() { return (ObjArray) localInterfaces.getValue(this); } public ObjArray getTransitiveInterfaces() { return (ObjArray) transitiveInterfaces.getValue(this); } - public long nofImplementors() { return nofImplementors.getValue(this); } - public Klass getImplementor() { return (Klass) implementors[0].getValue(this); } - public Klass getImplementor(int i) { return (Klass) implementors[i].getValue(this); } public TypeArray getFields() { return (TypeArray) fields.getValue(this); } public int getJavaFieldsCount() { return (int) javaFieldsCount.getValue(this); } public int getAllFieldsCount() { return (int)getFields().getLength() / FIELD_SLOTS; } @@ -527,9 +514,6 @@ public class InstanceKlass extends Klass { visitor.doOop(methodOrdering, true); visitor.doOop(localInterfaces, true); visitor.doOop(transitiveInterfaces, true); - visitor.doCInt(nofImplementors, true); - for (int i = 0; i < IMPLEMENTORS_LIMIT; i++) - visitor.doOop(implementors[i], true); visitor.doOop(fields, true); visitor.doOop(constants, true); visitor.doOop(classLoader, true); diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index b4659d97261..34fdb591c2e 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -1694,7 +1694,9 @@ void GraphBuilder::invoke(Bytecodes::Code code) { // they are roughly equivalent to Object. ciInstanceKlass* singleton = NULL; if (target->holder()->nof_implementors() == 1) { - singleton = target->holder()->implementor(0); + singleton = target->holder()->implementor(); + assert(singleton != NULL && singleton != target->holder(), + "just checking"); assert(holder->is_interface(), "invokeinterface to non interface?"); ciInstanceKlass* decl_interface = (ciInstanceKlass*)holder; diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp index b7c2ab75850..be730a00ce9 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2012, 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 @@ -59,10 +59,7 @@ ciInstanceKlass::ciInstanceKlass(KlassHandle h_k) : _has_nonstatic_fields = ik->has_nonstatic_fields(); _nonstatic_fields = NULL; // initialized lazily by compute_nonstatic_fields: - _nof_implementors = ik->nof_implementors(); - for (int i = 0; i < implementors_limit; i++) { - _implementors[i] = NULL; // we will fill these lazily - } + _implementor = NULL; // we will fill these lazily Thread *thread = Thread::current(); if (ciObjectFactory::is_initialized()) { @@ -102,7 +99,6 @@ ciInstanceKlass::ciInstanceKlass(ciSymbol* name, _nonstatic_field_size = -1; _has_nonstatic_fields = false; _nonstatic_fields = NULL; - _nof_implementors = -1; _loader = loader; _protection_domain = protection_domain; _is_shared = false; @@ -132,17 +128,6 @@ bool ciInstanceKlass::compute_shared_has_subklass() { ) } -// ------------------------------------------------------------------ -// ciInstanceKlass::compute_shared_nof_implementors -int ciInstanceKlass::compute_shared_nof_implementors() { - // We requery this property, since it is a very old ciObject. - GUARDED_VM_ENTRY( - instanceKlass* ik = get_instanceKlass(); - _nof_implementors = ik->nof_implementors(); - return _nof_implementors; - ) -} - // ------------------------------------------------------------------ // ciInstanceKlass::loader oop ciInstanceKlass::loader() { @@ -540,7 +525,7 @@ bool ciInstanceKlass::is_leaf_type() { if (is_shared()) { return is_final(); // approximately correct } else { - return !_has_subklass && (_nof_implementors == 0); + return !_has_subklass && (nof_implementors() == 0); } } @@ -548,35 +533,31 @@ bool ciInstanceKlass::is_leaf_type() { // ciInstanceKlass::implementor // // Report an implementor of this interface. -// Returns NULL if exact information is not available. // Note that there are various races here, since my copy // of _nof_implementors might be out of date with respect // to results returned by instanceKlass::implementor. // This is OK, since any dependencies we decide to assert // will be checked later under the Compile_lock. -ciInstanceKlass* ciInstanceKlass::implementor(int n) { - if (n >= implementors_limit) { - return NULL; - } - ciInstanceKlass* impl = _implementors[n]; +ciInstanceKlass* ciInstanceKlass::implementor() { + ciInstanceKlass* impl = _implementor; if (impl == NULL) { - if (_nof_implementors > implementors_limit) { - return NULL; - } // Go into the VM to fetch the implementor. { VM_ENTRY_MARK; - klassOop k = get_instanceKlass()->implementor(n); + klassOop k = get_instanceKlass()->implementor(); if (k != NULL) { - impl = CURRENT_THREAD_ENV->get_object(k)->as_instance_klass(); + if (k == get_instanceKlass()->as_klassOop()) { + // More than one implementors. Use 'this' in this case. + impl = this; + } else { + impl = CURRENT_THREAD_ENV->get_object(k)->as_instance_klass(); + } } } // Memoize this result. if (!is_shared()) { - _implementors[n] = (impl == NULL)? this: impl; + _implementor = impl; } - } else if (impl == this) { - impl = NULL; // memoized null result from a VM query } return impl; } diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp index 05ecf87a1e2..f8d0a7bd9eb 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2012, 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 @@ -65,9 +65,11 @@ private: ciConstantPoolCache* _field_cache; // cached map index->field GrowableArray* _nonstatic_fields; - enum { implementors_limit = instanceKlass::implementors_limit }; - ciInstanceKlass* _implementors[implementors_limit]; - jint _nof_implementors; + // The possible values of the _implementor fall into following three cases: + // NULL: no implementor. + // A ciInstanceKlass that's not itself: one implementor. + // Itsef: more than one implementors. + ciInstanceKlass* _implementor; GrowableArray* _non_static_fields; @@ -97,7 +99,6 @@ protected: void compute_shared_init_state(); bool compute_shared_has_subklass(); - int compute_shared_nof_implementors(); int compute_nonstatic_fields(); GrowableArray* compute_nonstatic_fields_impl(GrowableArray* super_fields); @@ -158,10 +159,17 @@ public: assert(is_loaded(), "must be loaded"); return _nonstatic_oop_map_size; } ciInstanceKlass* super(); - jint nof_implementors() { + jint nof_implementors() { + ciInstanceKlass* impl; assert(is_loaded(), "must be loaded"); - if (_is_shared) return compute_shared_nof_implementors(); - return _nof_implementors; + impl = implementor(); + if (impl == NULL) { + return 0; + } else if (impl != this) { + return 1; + } else { + return 2; + } } ciInstanceKlass* get_canonical_holder(int offset); @@ -207,7 +215,7 @@ public: // but consider adding to vmSymbols.hpp instead. bool is_leaf_type(); - ciInstanceKlass* implementor(int n); + ciInstanceKlass* implementor(); // Is the defining class loader of this class the default loader? bool uses_default_loader(); diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 7ace834a086..218f2c986bb 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -3354,6 +3354,7 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, klassOop ik = oopFactory::new_instanceKlass(name, vtable_size, itable_size, static_field_size, total_oop_map_count, + access_flags, rt, CHECK_(nullHandle)); instanceKlassHandle this_klass (THREAD, ik); @@ -3362,7 +3363,6 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, "sanity"); // Fill in information already parsed - this_klass->set_access_flags(access_flags); this_klass->set_should_verify_class(verify); jint lh = Klass::instance_layout_helper(instance_size, false); this_klass->set_layout_helper(lh); diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp index a3fd99ecd45..3d6705680bf 100644 --- a/hotspot/src/share/vm/code/dependencies.cpp +++ b/hotspot/src/share/vm/code/dependencies.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, 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 @@ -1033,21 +1033,25 @@ klassOop ClassHierarchyWalker::find_witness_anywhere(klassOop context_type, // (Old CHA had the same limitation.) return context_type; } - for (int i = 0; i < nof_impls; i++) { - klassOop impl = instanceKlass::cast(context_type)->implementor(i); - if (impl == NULL) { - // implementors array overflowed => no exact info. + if (nof_impls > 0) { + klassOop impl = instanceKlass::cast(context_type)->implementor(); + assert(impl != NULL, "just checking"); + // If impl is the same as the context_type, then more than one + // implementor has seen. No exact info in this case. + if (impl == context_type) { return context_type; // report an inexact witness to this sad affair } if (do_counts) { NOT_PRODUCT(deps_find_witness_steps++); } if (is_participant(impl)) { - if (participants_hide_witnesses) continue; - // else fall through to process this guy's subclasses + if (!participants_hide_witnesses) { + ADD_SUBCLASS_CHAIN(impl); + } } else if (is_witness(impl) && !ignore_witness(impl)) { return impl; + } else { + ADD_SUBCLASS_CHAIN(impl); } - ADD_SUBCLASS_CHAIN(impl); } // Recursively process each non-trivial sibling chain. @@ -1174,8 +1178,9 @@ klassOop Dependencies::check_leaf_type(klassOop ctxk) { } else if (ctx->nof_implementors() != 0) { // if it is an interface, it must be unimplemented // (if it is not an interface, nof_implementors is always zero) - klassOop impl = ctx->implementor(0); - return (impl != NULL)? impl: ctxk; + klassOop impl = ctx->implementor(); + assert(impl != NULL, "must be set"); + return impl; } else { return NULL; } diff --git a/hotspot/src/share/vm/memory/oopFactory.cpp b/hotspot/src/share/vm/memory/oopFactory.cpp index c6e644c96d4..fcac438bbe3 100644 --- a/hotspot/src/share/vm/memory/oopFactory.cpp +++ b/hotspot/src/share/vm/memory/oopFactory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -127,9 +127,12 @@ constantPoolCacheOop oopFactory::new_constantPoolCache(int length, klassOop oopFactory::new_instanceKlass(Symbol* name, int vtable_len, int itable_len, int static_field_size, unsigned int nonstatic_oop_map_count, + AccessFlags access_flags, ReferenceType rt, TRAPS) { instanceKlassKlass* ikk = instanceKlassKlass::cast(Universe::instanceKlassKlassObj()); - return ikk->allocate_instance_klass(name, vtable_len, itable_len, static_field_size, nonstatic_oop_map_count, rt, CHECK_NULL); + return ikk->allocate_instance_klass(name, vtable_len, itable_len, + static_field_size, nonstatic_oop_map_count, + access_flags, rt, CHECK_NULL); } diff --git a/hotspot/src/share/vm/memory/oopFactory.hpp b/hotspot/src/share/vm/memory/oopFactory.hpp index dbb42f05332..61faf8e3db7 100644 --- a/hotspot/src/share/vm/memory/oopFactory.hpp +++ b/hotspot/src/share/vm/memory/oopFactory.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -77,6 +77,7 @@ class oopFactory: AllStatic { int vtable_len, int itable_len, int static_field_size, unsigned int nonstatic_oop_map_count, + AccessFlags access_flags, ReferenceType rt, TRAPS); // Methods diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp index 81edd80946f..aa5f7765a79 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlass.cpp @@ -567,8 +567,18 @@ void instanceKlass::set_initialization_state_and_notify_impl(instanceKlassHandle ol.notify_all(CHECK); } +// The embedded _implementor field can only record one implementor. +// When there are more than one implementors, the _implementor field +// is set to the interface klassOop itself. Following are the possible +// values for the _implementor field: +// NULL - no implementor +// implementor klassOop - one implementor +// self - more than one implementor +// +// The _implementor field only exists for interfaces. void instanceKlass::add_implementor(klassOop k) { assert(Compile_lock->owned_by_self(), ""); + assert(is_interface(), "not interface"); // Filter out my subinterfaces. // (Note: Interfaces are never on the subklass list.) if (instanceKlass::cast(k)->is_interface()) return; @@ -583,17 +593,13 @@ void instanceKlass::add_implementor(klassOop k) { // Any supers of the super have the same (or fewer) transitive_interfaces. return; - // Update number of implementors - int i = _nof_implementors++; - - // Record this implementor, if there are not too many already - if (i < implementors_limit) { - assert(_implementors[i] == NULL, "should be exactly one implementor"); - oop_store_without_check((oop*)&_implementors[i], k); - } else if (i == implementors_limit) { - // clear out the list on first overflow - for (int i2 = 0; i2 < implementors_limit; i2++) - oop_store_without_check((oop*)&_implementors[i2], NULL); + klassOop ik = implementor(); + if (ik == NULL) { + set_implementor(k); + } else if (ik != this->as_klassOop()) { + // There is already an implementor. Use itself as an indicator of + // more than one implementors. + set_implementor(this->as_klassOop()); } // The implementor also implements the transitive_interfaces @@ -603,9 +609,9 @@ void instanceKlass::add_implementor(klassOop k) { } void instanceKlass::init_implementor() { - for (int i = 0; i < implementors_limit; i++) - oop_store_without_check((oop*)&_implementors[i], NULL); - _nof_implementors = 0; + if (is_interface()) { + set_implementor(NULL); + } } @@ -1849,24 +1855,22 @@ int instanceKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { void instanceKlass::follow_weak_klass_links( BoolObjectClosure* is_alive, OopClosure* keep_alive) { assert(is_alive->do_object_b(as_klassOop()), "this oop should be live"); - if (ClassUnloading) { - for (int i = 0; i < implementors_limit; i++) { - klassOop impl = _implementors[i]; - if (impl == NULL) break; // no more in the list - if (!is_alive->do_object_b(impl)) { - // remove this guy from the list by overwriting him with the tail - int lasti = --_nof_implementors; - assert(lasti >= i && lasti < implementors_limit, "just checking"); - _implementors[i] = _implementors[lasti]; - _implementors[lasti] = NULL; - --i; // rerun the loop at this index + + if (is_interface()) { + if (ClassUnloading) { + klassOop impl = implementor(); + if (impl != NULL) { + if (!is_alive->do_object_b(impl)) { + // remove this guy + *start_of_implementor() = NULL; + } } - } - } else { - for (int i = 0; i < implementors_limit; i++) { - keep_alive->do_oop(&adr_implementors()[i]); + } else { + assert(adr_implementor() != NULL, "just checking"); + keep_alive->do_oop(adr_implementor()); } } + Klass::follow_weak_klass_links(is_alive, keep_alive); } diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp index 9cbfa0fbfb6..32a00f5c6b0 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.hpp +++ b/hotspot/src/share/vm/oops/instanceKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -56,8 +56,6 @@ // [methods ] // [local interfaces ] // [transitive interfaces ] -// [number of implementors ] -// [implementors ] klassOop[2] // [fields ] // [constants ] // [class loader ] @@ -77,9 +75,9 @@ // [oop map cache (stack maps) ] // [EMBEDDED Java vtable ] size in words = vtable_len // [EMBEDDED nonstatic oop-map blocks] size in words = nonstatic_oop_map_size -// -// The embedded nonstatic oop-map blocks are short pairs (offset, length) indicating -// where oops are located in instances of this klass. +// The embedded nonstatic oop-map blocks are short pairs (offset, length) +// indicating where oops are located in instances of this klass. +// [EMBEDDED implementor of the interface] only exist for interface // forward declaration for class -- see below for definition @@ -153,10 +151,6 @@ class instanceKlass: public Klass { oop* oop_block_beg() const { return adr_array_klasses(); } oop* oop_block_end() const { return adr_methods_default_annotations() + 1; } - enum { - implementors_limit = 2 // how many implems can we track? - }; - protected: // // The oop block. See comment in klass.hpp before making changes. @@ -200,8 +194,6 @@ class instanceKlass: public Klass { // and EnclosingMethod attributes the _inner_classes array length is // number_of_inner_classes * 4 + enclosing_method_attribute_size. typeArrayOop _inner_classes; - // Implementors of this interface (not valid if it overflows) - klassOop _implementors[implementors_limit]; // Annotations for this class, or null if none. typeArrayOop _class_annotations; // Annotation objects (byte arrays) for fields, or null if no annotations. @@ -257,7 +249,6 @@ class instanceKlass: public Klass { nmethodBucket* _dependencies; // list of dependent nmethods nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class BreakpointInfo* _breakpoints; // bpt lists, managed by methodOop - int _nof_implementors; // No of implementors of this interface (zero if not an interface) // Array of interesting part(s) of the previous version(s) of this // instanceKlass. See PreviousVersionWalker below. GrowableArray* _previous_versions; @@ -278,6 +269,13 @@ class instanceKlass: public Klass { // embedded Java itables follows here // embedded static fields follows here // embedded nonstatic oop-map blocks follows here + // embedded implementor of this interface follows here + // The embedded implementor only exists if the current klass is an + // iterface. The possible values of the implementor fall into following + // three cases: + // NULL: no implementor. + // A klassOop that's not itself: one implementor. + // Itsef: more than one implementors. friend class instanceKlassKlass; friend class SystemDictionary; @@ -649,14 +647,34 @@ class instanceKlass: public Klass { // subclass/subinterface checks bool implements_interface(klassOop k) const; - // Access to implementors of an interface. We only store the count - // of implementors, and in case, there are only a few - // implementors, we store them in a short list. - // This accessor returns NULL if we walk off the end of the list. - klassOop implementor(int i) const { - return (i < implementors_limit)? _implementors[i]: (klassOop) NULL; + // Access to the implementor of an interface. + klassOop implementor() const + { + klassOop* k = start_of_implementor(); + if (k == NULL) { + return NULL; + } else { + return *k; + } } - int nof_implementors() const { return _nof_implementors; } + + void set_implementor(klassOop k) { + assert(is_interface(), "not interface"); + oop* addr = (oop*)start_of_implementor(); + oop_store_without_check(addr, k); + } + + int nof_implementors() const { + klassOop k = implementor(); + if (k == NULL) { + return 0; + } else if (k != this->as_klassOop()) { + return 1; + } else { + return 2; + } + } + void add_implementor(klassOop k); // k is a new class that implements this interface void init_implementor(); // initialize @@ -693,7 +711,15 @@ class instanceKlass: public Klass { // Sizing (in words) static int header_size() { return align_object_offset(oopDesc::header_size() + sizeof(instanceKlass)/HeapWordSize); } - int object_size() const { return object_size(align_object_offset(vtable_length()) + align_object_offset(itable_length()) + nonstatic_oop_map_size()); } + + int object_size() const + { + return object_size(align_object_offset(vtable_length()) + + align_object_offset(itable_length()) + + (is_interface() ? + (align_object_offset(nonstatic_oop_map_size()) + (int)sizeof(klassOop)/HeapWordSize) : + nonstatic_oop_map_size())); + } static int vtable_start_offset() { return header_size(); } static int vtable_length_offset() { return oopDesc::header_size() + offset_of(instanceKlass, _vtable_len) / HeapWordSize; } static int object_size(int extra) { return align_object_size(header_size() + extra); } @@ -710,6 +736,15 @@ class instanceKlass: public Klass { return (OopMapBlock*)(start_of_itable() + align_object_offset(itable_length())); } + klassOop* start_of_implementor() const { + if (is_interface()) { + return (klassOop*)(start_of_nonstatic_oop_maps() + + nonstatic_oop_map_count()); + } else { + return NULL; + } + }; + // Allocation profiling support juint alloc_size() const { return _alloc_count * size_helper(); } void set_alloc_size(juint n) {} @@ -819,7 +854,7 @@ private: oop* adr_host_klass() const { return (oop*)&this->_host_klass;} oop* adr_signers() const { return (oop*)&this->_signers;} oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;} - oop* adr_implementors() const { return (oop*)&this->_implementors[0];} + oop* adr_implementor() const { return (oop*)start_of_implementor(); } oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;} oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;} oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;} diff --git a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp index 2ceef2a9107..808b6e56999 100644 --- a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -111,7 +111,7 @@ void instanceKlassKlass::oop_follow_contents(oop obj) { MarkSweep::mark_and_push(ik->adr_methods_parameter_annotations()); MarkSweep::mark_and_push(ik->adr_methods_default_annotations()); - // We do not follow adr_implementors() here. It is followed later + // We do not follow adr_implementor() here. It is followed later // in instanceKlass::follow_weak_klass_links() klassKlass::oop_follow_contents(obj); @@ -180,8 +180,8 @@ int instanceKlassKlass::oop_oop_iterate(oop obj, OopClosure* blk) { blk->do_oop(ik->adr_host_klass()); blk->do_oop(ik->adr_signers()); blk->do_oop(ik->adr_inner_classes()); - for (int i = 0; i < instanceKlass::implementors_limit; i++) { - blk->do_oop(&ik->adr_implementors()[i]); + if (ik->is_interface()) { + blk->do_oop(ik->adr_implementor()); } blk->do_oop(ik->adr_class_annotations()); blk->do_oop(ik->adr_fields_annotations()); @@ -232,9 +232,9 @@ int instanceKlassKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, if (mr.contains(adr)) blk->do_oop(adr); adr = ik->adr_inner_classes(); if (mr.contains(adr)) blk->do_oop(adr); - adr = ik->adr_implementors(); - for (int i = 0; i < instanceKlass::implementors_limit; i++) { - if (mr.contains(&adr[i])) blk->do_oop(&adr[i]); + if (ik->is_interface()) { + adr = ik->adr_implementor(); + if (mr.contains(adr)) blk->do_oop(adr); } adr = ik->adr_class_annotations(); if (mr.contains(adr)) blk->do_oop(adr); @@ -273,8 +273,8 @@ int instanceKlassKlass::oop_adjust_pointers(oop obj) { MarkSweep::adjust_pointer(ik->adr_host_klass()); MarkSweep::adjust_pointer(ik->adr_signers()); MarkSweep::adjust_pointer(ik->adr_inner_classes()); - for (int i = 0; i < instanceKlass::implementors_limit; i++) { - MarkSweep::adjust_pointer(&ik->adr_implementors()[i]); + if (ik->is_interface()) { + MarkSweep::adjust_pointer(ik->adr_implementor()); } MarkSweep::adjust_pointer(ik->adr_class_annotations()); MarkSweep::adjust_pointer(ik->adr_fields_annotations()); @@ -328,6 +328,9 @@ int instanceKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { for (oop* cur_oop = beg_oop; cur_oop < end_oop; ++cur_oop) { PSParallelCompact::adjust_pointer(cur_oop); } + if (ik->is_interface()) { + PSParallelCompact::adjust_pointer(ik->adr_implementor()); + } OopClosure* closure = PSParallelCompact::adjust_root_pointer_closure(); iterate_c_heap_oops(ik, closure); @@ -342,11 +345,18 @@ klassOop instanceKlassKlass::allocate_instance_klass(Symbol* name, int vtable_len, int itable_len, int static_field_size, unsigned nonstatic_oop_map_count, + AccessFlags access_flags, ReferenceType rt, TRAPS) { const int nonstatic_oop_map_size = instanceKlass::nonstatic_oop_map_size(nonstatic_oop_map_count); - int size = instanceKlass::object_size(align_object_offset(vtable_len) + align_object_offset(itable_len) + nonstatic_oop_map_size); + int size = align_object_offset(vtable_len) + align_object_offset(itable_len); + if (access_flags.is_interface()) { + size += align_object_offset(nonstatic_oop_map_size) + (int)sizeof(klassOop)/HeapWordSize; + } else { + size += nonstatic_oop_map_size; + } + size = instanceKlass::object_size(size); // Allocation KlassHandle h_this_klass(THREAD, as_klassOop()); @@ -378,6 +388,7 @@ instanceKlassKlass::allocate_instance_klass(Symbol* name, int vtable_len, int it ik->set_itable_length(itable_len); ik->set_static_field_size(static_field_size); ik->set_nonstatic_oop_map_size(nonstatic_oop_map_size); + ik->set_access_flags(access_flags); assert(k()->size() == size, "wrong size for object"); ik->set_array_klasses(NULL); @@ -470,16 +481,12 @@ void instanceKlassKlass::oop_print_on(oop obj, outputStream* st) { if (ik->is_interface()) { st->print_cr(BULLET"nof implementors: %d", ik->nof_implementors()); - int print_impl = 0; - for (int i = 0; i < instanceKlass::implementors_limit; i++) { - if (ik->implementor(i) != NULL) { - if (++print_impl == 1) - st->print_cr(BULLET"implementor: "); - st->print(" "); - ik->implementor(i)->print_value_on(st); - } + if (ik->nof_implementors() == 1) { + st->print_cr(BULLET"implementor: "); + st->print(" "); + ik->implementor()->print_value_on(st); + st->cr(); } - if (print_impl > 0) st->cr(); } st->print(BULLET"arrays: "); ik->array_klasses()->print_value_on(st); st->cr(); @@ -640,16 +647,12 @@ void instanceKlassKlass::oop_verify_on(oop obj, outputStream* st) { } // Verify implementor fields - bool saw_null_impl = false; - for (int i = 0; i < instanceKlass::implementors_limit; i++) { - klassOop im = ik->implementor(i); - if (im == NULL) { saw_null_impl = true; continue; } - guarantee(!saw_null_impl, "non-nulls must preceded all nulls"); + klassOop im = ik->implementor(); + if (im != NULL) { guarantee(ik->is_interface(), "only interfaces should have implementor set"); - guarantee(i < ik->nof_implementors(), "should only have one implementor"); guarantee(im->is_perm(), "should be in permspace"); guarantee(im->is_klass(), "should be klass"); - guarantee(!Klass::cast(klassOop(im))->is_interface(), "implementors cannot be interfaces"); + guarantee(!Klass::cast(klassOop(im))->is_interface() || im == ik->as_klassOop(), "implementors cannot be interfaces"); } // Verify local interfaces diff --git a/hotspot/src/share/vm/oops/instanceKlassKlass.hpp b/hotspot/src/share/vm/oops/instanceKlassKlass.hpp index 9cbabe24644..ced9451da58 100644 --- a/hotspot/src/share/vm/oops/instanceKlassKlass.hpp +++ b/hotspot/src/share/vm/oops/instanceKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -46,6 +46,7 @@ class instanceKlassKlass : public klassKlass { int itable_len, int static_field_size, unsigned int nonstatic_oop_map_count, + AccessFlags access_flags, ReferenceType rt, TRAPS); diff --git a/hotspot/src/share/vm/runtime/vmStructs.cpp b/hotspot/src/share/vm/runtime/vmStructs.cpp index 924cde15404..25d3b5b4179 100644 --- a/hotspot/src/share/vm/runtime/vmStructs.cpp +++ b/hotspot/src/share/vm/runtime/vmStructs.cpp @@ -292,8 +292,6 @@ static inline uint64_t cast_uint64_t(size_t x) nonstatic_field(instanceKlass, _method_ordering, typeArrayOop) \ nonstatic_field(instanceKlass, _local_interfaces, objArrayOop) \ nonstatic_field(instanceKlass, _transitive_interfaces, objArrayOop) \ - nonstatic_field(instanceKlass, _nof_implementors, int) \ - nonstatic_field(instanceKlass, _implementors[0], klassOop) \ nonstatic_field(instanceKlass, _fields, typeArrayOop) \ nonstatic_field(instanceKlass, _java_fields_count, u2) \ nonstatic_field(instanceKlass, _constants, constantPoolOop) \ @@ -2343,7 +2341,6 @@ static inline uint64_t cast_uint64_t(size_t x) /* instanceKlass enum */ \ /*************************************/ \ \ - declare_constant(instanceKlass::implementors_limit) \ \ /*************************************/ \ /* FieldInfo FieldOffset enum */ \ From beaeca558b2c0c6a74b668e0356dbc3c4a3dc5dd Mon Sep 17 00:00:00 2001 From: Axel Siebenborn Date: Thu, 5 Apr 2012 12:17:52 -0400 Subject: [PATCH 02/82] 7158988: jvm crashes while debugging on x86_32 and x86_64 Object pointer is pushed more than once on stack, where GC doesn't expect it. Reviewed-by: coleenp, kvn --- .../src/cpu/x86/vm/templateTable_x86_32.cpp | 87 +++--- .../src/cpu/x86/vm/templateTable_x86_64.cpp | 40 +-- .../test/runtime/7158988/FieldMonitor.java | 249 ++++++++++++++++++ .../test/runtime/7158988/TestFieldMonitor.sh | 94 +++++++ .../7158988/TestPostFieldModification.java | 249 ++++++++++++++++++ 5 files changed, 655 insertions(+), 64 deletions(-) create mode 100644 hotspot/test/runtime/7158988/FieldMonitor.java create mode 100644 hotspot/test/runtime/7158988/TestFieldMonitor.sh create mode 100644 hotspot/test/runtime/7158988/TestPostFieldModification.java diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp index 1cbc67e6060..6a5fb90c050 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -2651,56 +2651,49 @@ void TemplateTable::jvmti_post_fast_field_mod() { // Check to see if a field modification watch has been set before we take // the time to call into the VM. Label L2; - __ mov32(rcx, ExternalAddress((address)JvmtiExport::get_field_modification_count_addr())); - __ testl(rcx,rcx); - __ jcc(Assembler::zero, L2); - __ pop_ptr(rbx); // copy the object pointer from tos - __ verify_oop(rbx); - __ push_ptr(rbx); // put the object pointer back on tos - __ subptr(rsp, sizeof(jvalue)); // add space for a jvalue object - __ mov(rcx, rsp); - __ push_ptr(rbx); // save object pointer so we can steal rbx, - __ xorptr(rbx, rbx); - const Address lo_value(rcx, rbx, Address::times_1, 0*wordSize); - const Address hi_value(rcx, rbx, Address::times_1, 1*wordSize); - switch (bytecode()) { // load values into the jvalue object - case Bytecodes::_fast_bputfield: __ movb(lo_value, rax); break; - case Bytecodes::_fast_sputfield: __ movw(lo_value, rax); break; - case Bytecodes::_fast_cputfield: __ movw(lo_value, rax); break; - case Bytecodes::_fast_iputfield: __ movl(lo_value, rax); break; - case Bytecodes::_fast_lputfield: - NOT_LP64(__ movptr(hi_value, rdx)); - __ movptr(lo_value, rax); - break; + __ mov32(rcx, ExternalAddress((address)JvmtiExport::get_field_modification_count_addr())); + __ testl(rcx,rcx); + __ jcc(Assembler::zero, L2); + __ pop_ptr(rbx); // copy the object pointer from tos + __ verify_oop(rbx); + __ push_ptr(rbx); // put the object pointer back on tos - // need to call fld_s() after fstp_s() to restore the value for below - case Bytecodes::_fast_fputfield: __ fstp_s(lo_value); __ fld_s(lo_value); break; + // Save tos values before call_VM() clobbers them. Since we have + // to do it for every data type, we use the saved values as the + // jvalue object. + switch (bytecode()) { // load values into the jvalue object + case Bytecodes::_fast_aputfield: __ push_ptr(rax); break; + case Bytecodes::_fast_bputfield: // fall through + case Bytecodes::_fast_sputfield: // fall through + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ push_i(rax); break; + case Bytecodes::_fast_dputfield: __ push_d(); break; + case Bytecodes::_fast_fputfield: __ push_f(); break; + case Bytecodes::_fast_lputfield: __ push_l(rax); break; - // need to call fld_d() after fstp_d() to restore the value for below - case Bytecodes::_fast_dputfield: __ fstp_d(lo_value); __ fld_d(lo_value); break; + default: + ShouldNotReachHere(); + } + __ mov(rcx, rsp); // points to jvalue on the stack + // access constant pool cache entry + __ get_cache_entry_pointer_at_bcp(rax, rdx, 1); + __ verify_oop(rbx); + // rbx,: object pointer copied above + // rax,: cache entry pointer + // rcx: jvalue object on the stack + __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_modification), rbx, rax, rcx); - // since rcx is not an object we don't call store_check() here - case Bytecodes::_fast_aputfield: __ movptr(lo_value, rax); break; - - default: ShouldNotReachHere(); - } - __ pop_ptr(rbx); // restore copy of object pointer - - // Save rax, and sometimes rdx because call_VM() will clobber them, - // then use them for JVM/DI purposes - __ push(rax); - if (bytecode() == Bytecodes::_fast_lputfield) __ push(rdx); - // access constant pool cache entry - __ get_cache_entry_pointer_at_bcp(rax, rdx, 1); - __ verify_oop(rbx); - // rbx,: object pointer copied above - // rax,: cache entry pointer - // rcx: jvalue object on the stack - __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_modification), rbx, rax, rcx); - if (bytecode() == Bytecodes::_fast_lputfield) __ pop(rdx); // restore high value - __ pop(rax); // restore lower value - __ addptr(rsp, sizeof(jvalue)); // release jvalue object space - __ bind(L2); + switch (bytecode()) { // restore tos values + case Bytecodes::_fast_aputfield: __ pop_ptr(rax); break; + case Bytecodes::_fast_bputfield: // fall through + case Bytecodes::_fast_sputfield: // fall through + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ pop_i(rax); break; + case Bytecodes::_fast_dputfield: __ pop_d(); break; + case Bytecodes::_fast_fputfield: __ pop_f(); break; + case Bytecodes::_fast_lputfield: __ pop_l(rax); break; + } + __ bind(L2); } } diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp index 0e5ac274f36..6bb302f2992 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp @@ -2685,26 +2685,23 @@ void TemplateTable::jvmti_post_fast_field_mod() { __ pop_ptr(rbx); // copy the object pointer from tos __ verify_oop(rbx); __ push_ptr(rbx); // put the object pointer back on tos - __ subptr(rsp, sizeof(jvalue)); // add space for a jvalue object - __ mov(c_rarg3, rsp); - const Address field(c_rarg3, 0); - + // Save tos values before call_VM() clobbers them. Since we have + // to do it for every data type, we use the saved values as the + // jvalue object. switch (bytecode()) { // load values into the jvalue object - case Bytecodes::_fast_aputfield: __ movq(field, rax); break; - case Bytecodes::_fast_lputfield: __ movq(field, rax); break; - case Bytecodes::_fast_iputfield: __ movl(field, rax); break; - case Bytecodes::_fast_bputfield: __ movb(field, rax); break; + case Bytecodes::_fast_aputfield: __ push_ptr(rax); break; + case Bytecodes::_fast_bputfield: // fall through case Bytecodes::_fast_sputfield: // fall through - case Bytecodes::_fast_cputfield: __ movw(field, rax); break; - case Bytecodes::_fast_fputfield: __ movflt(field, xmm0); break; - case Bytecodes::_fast_dputfield: __ movdbl(field, xmm0); break; + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ push_i(rax); break; + case Bytecodes::_fast_dputfield: __ push_d(); break; + case Bytecodes::_fast_fputfield: __ push_f(); break; + case Bytecodes::_fast_lputfield: __ push_l(rax); break; + default: ShouldNotReachHere(); } - - // Save rax because call_VM() will clobber it, then use it for - // JVMTI purposes - __ push(rax); + __ mov(c_rarg3, rsp); // points to jvalue on the stack // access constant pool cache entry __ get_cache_entry_pointer_at_bcp(c_rarg2, rax, 1); __ verify_oop(rbx); @@ -2715,8 +2712,17 @@ void TemplateTable::jvmti_post_fast_field_mod() { CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_modification), rbx, c_rarg2, c_rarg3); - __ pop(rax); // restore lower value - __ addptr(rsp, sizeof(jvalue)); // release jvalue object space + + switch (bytecode()) { // restore tos values + case Bytecodes::_fast_aputfield: __ pop_ptr(rax); break; + case Bytecodes::_fast_bputfield: // fall through + case Bytecodes::_fast_sputfield: // fall through + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ pop_i(rax); break; + case Bytecodes::_fast_dputfield: __ pop_d(); break; + case Bytecodes::_fast_fputfield: __ pop_f(); break; + case Bytecodes::_fast_lputfield: __ pop_l(rax); break; + } __ bind(L2); } } diff --git a/hotspot/test/runtime/7158988/FieldMonitor.java b/hotspot/test/runtime/7158988/FieldMonitor.java new file mode 100644 index 00000000000..584d39d20ca --- /dev/null +++ b/hotspot/test/runtime/7158988/FieldMonitor.java @@ -0,0 +1,249 @@ +/* + * Copyright 2012 SAP AG. 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 FieldMonitor.java + * @bug 7158988 + * @summary verify jvm does not crash while debugging + * @run shell TestFieldMonitor.sh + * @author axel.siebenborn@sap.com + */ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import com.sun.jdi.Bootstrap; +import com.sun.jdi.Field; +import com.sun.jdi.ReferenceType; +import com.sun.jdi.VirtualMachine; +import com.sun.jdi.connect.Connector; +import com.sun.jdi.connect.IllegalConnectorArgumentsException; +import com.sun.jdi.connect.LaunchingConnector; +import com.sun.jdi.connect.VMStartException; +import com.sun.jdi.event.ClassPrepareEvent; +import com.sun.jdi.event.Event; +import com.sun.jdi.event.EventQueue; +import com.sun.jdi.event.EventSet; +import com.sun.jdi.event.ModificationWatchpointEvent; +import com.sun.jdi.event.VMDeathEvent; +import com.sun.jdi.event.VMDisconnectEvent; +import com.sun.jdi.request.ClassPrepareRequest; +import com.sun.jdi.request.EventRequest; +import com.sun.jdi.request.EventRequestManager; +import com.sun.jdi.request.ModificationWatchpointRequest; + +public class FieldMonitor { + + public static final String CLASS_NAME = "TestPostFieldModification"; + public static final String FIELD_NAME = "value"; + public static final String ARGUMENTS = "-Xshare:off -XX:+PrintGC"; + + public static void main(String[] args) + throws IOException, InterruptedException { + + StringBuffer sb = new StringBuffer(); + + for (int i=0; i < args.length; i++) { + sb.append(' '); + sb.append(args[i]); + } + //VirtualMachine vm = launchTarget(sb.toString()); + VirtualMachine vm = launchTarget(CLASS_NAME); + + System.out.println("Vm launched"); + // set watch field on already loaded classes + List referenceTypes = vm + .classesByName(CLASS_NAME); + for (ReferenceType refType : referenceTypes) { + addFieldWatch(vm, refType); + } + // watch for loaded classes + addClassWatch(vm); + + // process events + EventQueue eventQueue = vm.eventQueue(); + // resume the vm + + Process process = vm.process(); + + + // Copy target's output and error to our output and error. + Thread outThread = new StreamRedirectThread("out reader", process.getInputStream()); + Thread errThread = new StreamRedirectThread("error reader", process.getErrorStream()); + + errThread.start(); + outThread.start(); + + + vm.resume(); + boolean connected = true; + while (connected) { + EventSet eventSet = eventQueue.remove(); + for (Event event : eventSet) { + if (event instanceof VMDeathEvent + || event instanceof VMDisconnectEvent) { + // exit + connected = false; + } else if (event instanceof ClassPrepareEvent) { + // watch field on loaded class + System.out.println("ClassPrepareEvent"); + ClassPrepareEvent classPrepEvent = (ClassPrepareEvent) event; + ReferenceType refType = classPrepEvent + .referenceType(); + addFieldWatch(vm, refType); + } else if (event instanceof ModificationWatchpointEvent) { + System.out.println("sleep for 500 ms"); + Thread.sleep(500); + System.out.println("resume..."); + + ModificationWatchpointEvent modEvent = (ModificationWatchpointEvent) event; + System.out.println("old=" + + modEvent.valueCurrent()); + System.out.println("new=" + modEvent.valueToBe()); + System.out.println(); + } + } + eventSet.resume(); + } + // Shutdown begins when event thread terminates + try { + errThread.join(); // Make sure output is forwarded + outThread.join(); + } catch (InterruptedException exc) { + // we don't interrupt + } + } + + /** + * Find a com.sun.jdi.CommandLineLaunch connector + */ + static LaunchingConnector findLaunchingConnector() { + List connectors = Bootstrap.virtualMachineManager().allConnectors(); + Iterator iter = connectors.iterator(); + while (iter.hasNext()) { + Connector connector = iter.next(); + if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) { + return (LaunchingConnector)connector; + } + } + throw new Error("No launching connector"); + } + /** + * Return the launching connector's arguments. + */ + static Map connectorArguments(LaunchingConnector connector, String mainArgs) { + Map arguments = connector.defaultArguments(); + for (String key : arguments.keySet()) { + System.out.println(key); + } + + Connector.Argument mainArg = (Connector.Argument)arguments.get("main"); + if (mainArg == null) { + throw new Error("Bad launching connector"); + } + mainArg.setValue(mainArgs); + + Connector.Argument optionsArg = (Connector.Argument)arguments.get("options"); + if (optionsArg == null) { + throw new Error("Bad launching connector"); + } + optionsArg.setValue(ARGUMENTS); + return arguments; + } + + static VirtualMachine launchTarget(String mainArgs) { + LaunchingConnector connector = findLaunchingConnector(); + Map arguments = connectorArguments(connector, mainArgs); + try { + return (VirtualMachine) connector.launch(arguments); + } catch (IOException exc) { + throw new Error("Unable to launch target VM: " + exc); + } catch (IllegalConnectorArgumentsException exc) { + throw new Error("Internal error: " + exc); + } catch (VMStartException exc) { + throw new Error("Target VM failed to initialize: " + + exc.getMessage()); + } +} + + + private static void addClassWatch(VirtualMachine vm) { + EventRequestManager erm = vm.eventRequestManager(); + ClassPrepareRequest classPrepareRequest = erm + .createClassPrepareRequest(); + classPrepareRequest.addClassFilter(CLASS_NAME); + classPrepareRequest.setEnabled(true); + } + + + private static void addFieldWatch(VirtualMachine vm, + ReferenceType refType) { + EventRequestManager erm = vm.eventRequestManager(); + Field field = refType.fieldByName(FIELD_NAME); + ModificationWatchpointRequest modificationWatchpointRequest = erm + .createModificationWatchpointRequest(field); + modificationWatchpointRequest.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); + modificationWatchpointRequest.setEnabled(true); + } +} + +class StreamRedirectThread extends Thread { + + private final BufferedReader in; + + private static final int BUFFER_SIZE = 2048; + + /** + * Set up for copy. + * @param name Name of the thread + * @param in Stream to copy from + * @param out Stream to copy to + */ + StreamRedirectThread(String name, InputStream in) { + super(name); + this.in = new BufferedReader(new InputStreamReader(in)); + } + + /** + * Copy. + */ + public void run() { + try { + String line; + while ((line = in.readLine ()) != null) { + System.out.println ("testvm: " + line); + } + System.out.flush(); + } catch(IOException exc) { + System.err.println("Child I/O Transfer - " + exc); + } + } +} diff --git a/hotspot/test/runtime/7158988/TestFieldMonitor.sh b/hotspot/test/runtime/7158988/TestFieldMonitor.sh new file mode 100644 index 00000000000..8715bd546d8 --- /dev/null +++ b/hotspot/test/runtime/7158988/TestFieldMonitor.sh @@ -0,0 +1,94 @@ +#!/bin/sh + +if [ "${TESTSRC}" = "" ] +then TESTSRC=. +fi + +if [ "${TESTJAVA}" = "" ] +then + PARENT=`dirname \`which java\`` + TESTJAVA=`dirname ${PARENT}` + echo "TESTJAVA not set, selecting " ${TESTJAVA} + echo "If this is incorrect, try setting the variable manually." +fi + +if [ "${TESTCLASSES}" = "" ] +then + echo "TESTCLASSES not set. Test cannot execute. Failed." + exit 1 +fi + +BIT_FLAG="" + +# set platform-dependent variables +OS=`uname -s` +case "$OS" in + SunOS | Linux ) + NULL=/dev/null + PS=":" + FS="/" + ## for solaris, linux it's HOME + FILE_LOCATION=$HOME + if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" -a `uname -p`='sparc' ] + then + BIT_FLAG="-d64" + fi + ;; + Windows_95 | Windows_98 | Windows_ME ) + NULL=NUL + PS=";" + FS="\\" + echo "Test skipped, only for WinNT" + exit 0 + ;; + Windows_NT ) + NULL=NUL + PS=";" + FS="\\" + ;; + * ) + echo "Unrecognized system!" + exit 1; + ;; +esac + +#CLASSPATH=.${PS}${TESTCLASSES} ; export CLASSPATH + +cp ${TESTSRC}${FS}*.java . + +${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -fullversion + +${TESTJAVA}${FS}bin${FS}javac -classpath .${PS}$TESTJAVA${FS}lib${FS}tools.jar *.java + +${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -classpath .${PS}$TESTJAVA${FS}lib${FS}tools.jar FieldMonitor > test.out 2>&1 & + +P_PID=$! + +sleep 60 +STATUS=0 + +case "$OS" in + SunOS | Linux ) + ps -ef | grep $P_PID | grep -v grep > ${NULL} + if [ $? = 0 ]; then + kill -9 $P_PID + STATUS=1 + fi + ;; + * ) + ps | grep -i "FieldMonitor" | grep -v grep > ${NULL} + if [ $? = 0 ]; then + C_PID=`ps | grep -i "FieldMonitor" | awk '{print $1}'` + kill -s 9 $C_PID + STATUS=1 + fi + ;; +esac + +grep "A fatal error has been detected" test.out > ${NULL} +if [ $? = 0 ]; then + cat test.out + STATUS=1 +fi + +exit $STATUS diff --git a/hotspot/test/runtime/7158988/TestPostFieldModification.java b/hotspot/test/runtime/7158988/TestPostFieldModification.java new file mode 100644 index 00000000000..584d39d20ca --- /dev/null +++ b/hotspot/test/runtime/7158988/TestPostFieldModification.java @@ -0,0 +1,249 @@ +/* + * Copyright 2012 SAP AG. 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 FieldMonitor.java + * @bug 7158988 + * @summary verify jvm does not crash while debugging + * @run shell TestFieldMonitor.sh + * @author axel.siebenborn@sap.com + */ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import com.sun.jdi.Bootstrap; +import com.sun.jdi.Field; +import com.sun.jdi.ReferenceType; +import com.sun.jdi.VirtualMachine; +import com.sun.jdi.connect.Connector; +import com.sun.jdi.connect.IllegalConnectorArgumentsException; +import com.sun.jdi.connect.LaunchingConnector; +import com.sun.jdi.connect.VMStartException; +import com.sun.jdi.event.ClassPrepareEvent; +import com.sun.jdi.event.Event; +import com.sun.jdi.event.EventQueue; +import com.sun.jdi.event.EventSet; +import com.sun.jdi.event.ModificationWatchpointEvent; +import com.sun.jdi.event.VMDeathEvent; +import com.sun.jdi.event.VMDisconnectEvent; +import com.sun.jdi.request.ClassPrepareRequest; +import com.sun.jdi.request.EventRequest; +import com.sun.jdi.request.EventRequestManager; +import com.sun.jdi.request.ModificationWatchpointRequest; + +public class FieldMonitor { + + public static final String CLASS_NAME = "TestPostFieldModification"; + public static final String FIELD_NAME = "value"; + public static final String ARGUMENTS = "-Xshare:off -XX:+PrintGC"; + + public static void main(String[] args) + throws IOException, InterruptedException { + + StringBuffer sb = new StringBuffer(); + + for (int i=0; i < args.length; i++) { + sb.append(' '); + sb.append(args[i]); + } + //VirtualMachine vm = launchTarget(sb.toString()); + VirtualMachine vm = launchTarget(CLASS_NAME); + + System.out.println("Vm launched"); + // set watch field on already loaded classes + List referenceTypes = vm + .classesByName(CLASS_NAME); + for (ReferenceType refType : referenceTypes) { + addFieldWatch(vm, refType); + } + // watch for loaded classes + addClassWatch(vm); + + // process events + EventQueue eventQueue = vm.eventQueue(); + // resume the vm + + Process process = vm.process(); + + + // Copy target's output and error to our output and error. + Thread outThread = new StreamRedirectThread("out reader", process.getInputStream()); + Thread errThread = new StreamRedirectThread("error reader", process.getErrorStream()); + + errThread.start(); + outThread.start(); + + + vm.resume(); + boolean connected = true; + while (connected) { + EventSet eventSet = eventQueue.remove(); + for (Event event : eventSet) { + if (event instanceof VMDeathEvent + || event instanceof VMDisconnectEvent) { + // exit + connected = false; + } else if (event instanceof ClassPrepareEvent) { + // watch field on loaded class + System.out.println("ClassPrepareEvent"); + ClassPrepareEvent classPrepEvent = (ClassPrepareEvent) event; + ReferenceType refType = classPrepEvent + .referenceType(); + addFieldWatch(vm, refType); + } else if (event instanceof ModificationWatchpointEvent) { + System.out.println("sleep for 500 ms"); + Thread.sleep(500); + System.out.println("resume..."); + + ModificationWatchpointEvent modEvent = (ModificationWatchpointEvent) event; + System.out.println("old=" + + modEvent.valueCurrent()); + System.out.println("new=" + modEvent.valueToBe()); + System.out.println(); + } + } + eventSet.resume(); + } + // Shutdown begins when event thread terminates + try { + errThread.join(); // Make sure output is forwarded + outThread.join(); + } catch (InterruptedException exc) { + // we don't interrupt + } + } + + /** + * Find a com.sun.jdi.CommandLineLaunch connector + */ + static LaunchingConnector findLaunchingConnector() { + List connectors = Bootstrap.virtualMachineManager().allConnectors(); + Iterator iter = connectors.iterator(); + while (iter.hasNext()) { + Connector connector = iter.next(); + if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) { + return (LaunchingConnector)connector; + } + } + throw new Error("No launching connector"); + } + /** + * Return the launching connector's arguments. + */ + static Map connectorArguments(LaunchingConnector connector, String mainArgs) { + Map arguments = connector.defaultArguments(); + for (String key : arguments.keySet()) { + System.out.println(key); + } + + Connector.Argument mainArg = (Connector.Argument)arguments.get("main"); + if (mainArg == null) { + throw new Error("Bad launching connector"); + } + mainArg.setValue(mainArgs); + + Connector.Argument optionsArg = (Connector.Argument)arguments.get("options"); + if (optionsArg == null) { + throw new Error("Bad launching connector"); + } + optionsArg.setValue(ARGUMENTS); + return arguments; + } + + static VirtualMachine launchTarget(String mainArgs) { + LaunchingConnector connector = findLaunchingConnector(); + Map arguments = connectorArguments(connector, mainArgs); + try { + return (VirtualMachine) connector.launch(arguments); + } catch (IOException exc) { + throw new Error("Unable to launch target VM: " + exc); + } catch (IllegalConnectorArgumentsException exc) { + throw new Error("Internal error: " + exc); + } catch (VMStartException exc) { + throw new Error("Target VM failed to initialize: " + + exc.getMessage()); + } +} + + + private static void addClassWatch(VirtualMachine vm) { + EventRequestManager erm = vm.eventRequestManager(); + ClassPrepareRequest classPrepareRequest = erm + .createClassPrepareRequest(); + classPrepareRequest.addClassFilter(CLASS_NAME); + classPrepareRequest.setEnabled(true); + } + + + private static void addFieldWatch(VirtualMachine vm, + ReferenceType refType) { + EventRequestManager erm = vm.eventRequestManager(); + Field field = refType.fieldByName(FIELD_NAME); + ModificationWatchpointRequest modificationWatchpointRequest = erm + .createModificationWatchpointRequest(field); + modificationWatchpointRequest.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); + modificationWatchpointRequest.setEnabled(true); + } +} + +class StreamRedirectThread extends Thread { + + private final BufferedReader in; + + private static final int BUFFER_SIZE = 2048; + + /** + * Set up for copy. + * @param name Name of the thread + * @param in Stream to copy from + * @param out Stream to copy to + */ + StreamRedirectThread(String name, InputStream in) { + super(name); + this.in = new BufferedReader(new InputStreamReader(in)); + } + + /** + * Copy. + */ + public void run() { + try { + String line; + while ((line = in.readLine ()) != null) { + System.out.println ("testvm: " + line); + } + System.out.flush(); + } catch(IOException exc) { + System.err.println("Child I/O Transfer - " + exc); + } + } +} From 83806487dceaae2ece97579b224e3001bd90ff84 Mon Sep 17 00:00:00 2001 From: Staffan Larsen Date: Thu, 5 Apr 2012 14:16:23 +0200 Subject: [PATCH 03/82] 7133111: libsaproc debug print should be printed as unsigned long to fit large numbers on 64bit platform Reviewed-by: dcubed, mgronlun, dsamersoff --- hotspot/agent/src/os/linux/ps_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/agent/src/os/linux/ps_core.c b/hotspot/agent/src/os/linux/ps_core.c index 9739e161471..6c229da7b79 100644 --- a/hotspot/agent/src/os/linux/ps_core.c +++ b/hotspot/agent/src/os/linux/ps_core.c @@ -440,7 +440,7 @@ static bool sort_map_array(struct ps_prochandle* ph) { int j = 0; print_debug("---- sorted virtual address map ----\n"); for (j = 0; j < ph->core->num_maps; j++) { - print_debug("base = 0x%lx\tsize = %d\n", ph->core->map_array[j]->vaddr, + print_debug("base = 0x%lx\tsize = %zd\n", ph->core->map_array[j]->vaddr, ph->core->map_array[j]->memsz); } } From 2ea955a6420d910f8fc5110c42fdc7ed90616d47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20B=C3=A4ckman?= Date: Thu, 12 Apr 2012 13:24:08 +0200 Subject: [PATCH 04/82] 7160924: jvmti: GetPhase returns incorrect phase before VMInit event is issued Reviewed-by: acorn, dcubed --- hotspot/src/share/vm/runtime/thread.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp index 767668289ce..76865f6ff2c 100644 --- a/hotspot/src/share/vm/runtime/thread.cpp +++ b/hotspot/src/share/vm/runtime/thread.cpp @@ -3468,13 +3468,13 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) { create_vm_init_libraries(); } + // Notify JVMTI agents that VM initialization is complete - nop if no agents. + JvmtiExport::post_vm_initialized(); + if (!TRACE_START()) { vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION)); } - // Notify JVMTI agents that VM initialization is complete - nop if no agents. - JvmtiExport::post_vm_initialized(); - if (CleanChunkPoolAsync) { Chunk::start_chunk_pool_cleaner_task(); } From 7359b908135829a7225c8004dae477b8ea345a41 Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Thu, 12 Apr 2012 22:03:05 -0400 Subject: [PATCH 05/82] 7160467: Fix test for 7158988 Ended up checking in FieldMonitor.java as TestPostFieldModification.java Reviewed-by: kamg --- .../7158988/TestPostFieldModification.java | 243 ++---------------- 1 file changed, 26 insertions(+), 217 deletions(-) diff --git a/hotspot/test/runtime/7158988/TestPostFieldModification.java b/hotspot/test/runtime/7158988/TestPostFieldModification.java index 584d39d20ca..d730003b267 100644 --- a/hotspot/test/runtime/7158988/TestPostFieldModification.java +++ b/hotspot/test/runtime/7158988/TestPostFieldModification.java @@ -21,229 +21,38 @@ * questions. */ -/* - * @test FieldMonitor.java - * @bug 7158988 - * @summary verify jvm does not crash while debugging - * @run shell TestFieldMonitor.sh - * @author axel.siebenborn@sap.com - */ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Reader; -import java.io.Writer; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +public class TestPostFieldModification { -import com.sun.jdi.Bootstrap; -import com.sun.jdi.Field; -import com.sun.jdi.ReferenceType; -import com.sun.jdi.VirtualMachine; -import com.sun.jdi.connect.Connector; -import com.sun.jdi.connect.IllegalConnectorArgumentsException; -import com.sun.jdi.connect.LaunchingConnector; -import com.sun.jdi.connect.VMStartException; -import com.sun.jdi.event.ClassPrepareEvent; -import com.sun.jdi.event.Event; -import com.sun.jdi.event.EventQueue; -import com.sun.jdi.event.EventSet; -import com.sun.jdi.event.ModificationWatchpointEvent; -import com.sun.jdi.event.VMDeathEvent; -import com.sun.jdi.event.VMDisconnectEvent; -import com.sun.jdi.request.ClassPrepareRequest; -import com.sun.jdi.request.EventRequest; -import com.sun.jdi.request.EventRequestManager; -import com.sun.jdi.request.ModificationWatchpointRequest; + public String value; // watch modification of value -public class FieldMonitor { + public static void main(String[] args){ - public static final String CLASS_NAME = "TestPostFieldModification"; - public static final String FIELD_NAME = "value"; - public static final String ARGUMENTS = "-Xshare:off -XX:+PrintGC"; - - public static void main(String[] args) - throws IOException, InterruptedException { - - StringBuffer sb = new StringBuffer(); - - for (int i=0; i < args.length; i++) { - sb.append(' '); - sb.append(args[i]); - } - //VirtualMachine vm = launchTarget(sb.toString()); - VirtualMachine vm = launchTarget(CLASS_NAME); - - System.out.println("Vm launched"); - // set watch field on already loaded classes - List referenceTypes = vm - .classesByName(CLASS_NAME); - for (ReferenceType refType : referenceTypes) { - addFieldWatch(vm, refType); - } - // watch for loaded classes - addClassWatch(vm); - - // process events - EventQueue eventQueue = vm.eventQueue(); - // resume the vm - - Process process = vm.process(); - - - // Copy target's output and error to our output and error. - Thread outThread = new StreamRedirectThread("out reader", process.getInputStream()); - Thread errThread = new StreamRedirectThread("error reader", process.getErrorStream()); - - errThread.start(); - outThread.start(); - - - vm.resume(); - boolean connected = true; - while (connected) { - EventSet eventSet = eventQueue.remove(); - for (Event event : eventSet) { - if (event instanceof VMDeathEvent - || event instanceof VMDisconnectEvent) { - // exit - connected = false; - } else if (event instanceof ClassPrepareEvent) { - // watch field on loaded class - System.out.println("ClassPrepareEvent"); - ClassPrepareEvent classPrepEvent = (ClassPrepareEvent) event; - ReferenceType refType = classPrepEvent - .referenceType(); - addFieldWatch(vm, refType); - } else if (event instanceof ModificationWatchpointEvent) { - System.out.println("sleep for 500 ms"); - Thread.sleep(500); - System.out.println("resume..."); - - ModificationWatchpointEvent modEvent = (ModificationWatchpointEvent) event; - System.out.println("old=" - + modEvent.valueCurrent()); - System.out.println("new=" + modEvent.valueToBe()); - System.out.println(); + System.out.println("Start threads"); + // this thread modifies the field 'value' + new Thread() { + TestPostFieldModification test = new TestPostFieldModification(); + public void run() { + test.value="test"; + for(int i = 0; i < 10; i++) { + test.value += new String("_test"); } } - eventSet.resume(); - } - // Shutdown begins when event thread terminates - try { - errThread.join(); // Make sure output is forwarded - outThread.join(); - } catch (InterruptedException exc) { - // we don't interrupt - } - } + }.start(); - /** - * Find a com.sun.jdi.CommandLineLaunch connector - */ - static LaunchingConnector findLaunchingConnector() { - List connectors = Bootstrap.virtualMachineManager().allConnectors(); - Iterator iter = connectors.iterator(); - while (iter.hasNext()) { - Connector connector = iter.next(); - if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) { - return (LaunchingConnector)connector; + // this thread is used to trigger a gc + Thread d = new Thread() { + public void run() { + while(true) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + + } + System.gc(); + } } - } - throw new Error("No launching connector"); - } - /** - * Return the launching connector's arguments. - */ - static Map connectorArguments(LaunchingConnector connector, String mainArgs) { - Map arguments = connector.defaultArguments(); - for (String key : arguments.keySet()) { - System.out.println(key); - } - - Connector.Argument mainArg = (Connector.Argument)arguments.get("main"); - if (mainArg == null) { - throw new Error("Bad launching connector"); - } - mainArg.setValue(mainArgs); - - Connector.Argument optionsArg = (Connector.Argument)arguments.get("options"); - if (optionsArg == null) { - throw new Error("Bad launching connector"); - } - optionsArg.setValue(ARGUMENTS); - return arguments; - } - - static VirtualMachine launchTarget(String mainArgs) { - LaunchingConnector connector = findLaunchingConnector(); - Map arguments = connectorArguments(connector, mainArgs); - try { - return (VirtualMachine) connector.launch(arguments); - } catch (IOException exc) { - throw new Error("Unable to launch target VM: " + exc); - } catch (IllegalConnectorArgumentsException exc) { - throw new Error("Internal error: " + exc); - } catch (VMStartException exc) { - throw new Error("Target VM failed to initialize: " + - exc.getMessage()); - } -} - - - private static void addClassWatch(VirtualMachine vm) { - EventRequestManager erm = vm.eventRequestManager(); - ClassPrepareRequest classPrepareRequest = erm - .createClassPrepareRequest(); - classPrepareRequest.addClassFilter(CLASS_NAME); - classPrepareRequest.setEnabled(true); - } - - - private static void addFieldWatch(VirtualMachine vm, - ReferenceType refType) { - EventRequestManager erm = vm.eventRequestManager(); - Field field = refType.fieldByName(FIELD_NAME); - ModificationWatchpointRequest modificationWatchpointRequest = erm - .createModificationWatchpointRequest(field); - modificationWatchpointRequest.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); - modificationWatchpointRequest.setEnabled(true); - } -} - -class StreamRedirectThread extends Thread { - - private final BufferedReader in; - - private static final int BUFFER_SIZE = 2048; - - /** - * Set up for copy. - * @param name Name of the thread - * @param in Stream to copy from - * @param out Stream to copy to - */ - StreamRedirectThread(String name, InputStream in) { - super(name); - this.in = new BufferedReader(new InputStreamReader(in)); - } - - /** - * Copy. - */ - public void run() { - try { - String line; - while ((line = in.readLine ()) != null) { - System.out.println ("testvm: " + line); - } - System.out.flush(); - } catch(IOException exc) { - System.err.println("Child I/O Transfer - " + exc); - } + }; + d.setDaemon(true); + d.start(); } } From cf406f37e35049316a6b761f4856f6300d3e1da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20B=C3=A4ckman?= Date: Tue, 6 Mar 2012 12:36:59 +0100 Subject: [PATCH 06/82] 7160570: Intrinsification support for tracing framework Reviewed-by: sla, never --- hotspot/src/os/bsd/vm/osThread_bsd.hpp | 3 + hotspot/src/os/linux/vm/osThread_linux.hpp | 4 +- .../src/os/solaris/vm/osThread_solaris.hpp | 1 + .../src/os/windows/vm/osThread_windows.hpp | 4 +- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 15 +++- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 74 +++++++++++++---- hotspot/src/share/vm/c1/c1_LIRGenerator.hpp | 8 +- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 3 + hotspot/src/share/vm/classfile/vmSymbols.hpp | 10 ++- hotspot/src/share/vm/oops/instanceKlass.hpp | 1 + hotspot/src/share/vm/opto/library_call.cpp | 79 ++++++++++++++++--- hotspot/src/share/vm/opto/runtime.cpp | 6 +- hotspot/src/share/vm/opto/runtime.hpp | 4 +- hotspot/src/share/vm/runtime/osThread.hpp | 3 +- hotspot/src/share/vm/trace/traceMacros.hpp | 6 +- 15 files changed, 182 insertions(+), 39 deletions(-) diff --git a/hotspot/src/os/bsd/vm/osThread_bsd.hpp b/hotspot/src/os/bsd/vm/osThread_bsd.hpp index 0e60cc3eefd..914a0439c02 100644 --- a/hotspot/src/os/bsd/vm/osThread_bsd.hpp +++ b/hotspot/src/os/bsd/vm/osThread_bsd.hpp @@ -72,15 +72,18 @@ #ifdef _ALLBSD_SOURCE #ifdef __APPLE__ + static size_t thread_id_size() { return sizeof(thread_t); } thread_t thread_id() const { return _thread_id; } #else + static size_t thread_id_size() { return sizeof(pthread_t); } pthread_t thread_id() const { return _thread_id; } #endif #else + static size_t thread_id_size() { return sizeof(pid_t); } pid_t thread_id() const { return _thread_id; } diff --git a/hotspot/src/os/linux/vm/osThread_linux.hpp b/hotspot/src/os/linux/vm/osThread_linux.hpp index 22945135b78..fe9fe6188fa 100644 --- a/hotspot/src/os/linux/vm/osThread_linux.hpp +++ b/hotspot/src/os/linux/vm/osThread_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2012, 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 @@ -56,6 +56,8 @@ sigset_t caller_sigmask() const { return _caller_sigmask; } void set_caller_sigmask(sigset_t sigmask) { _caller_sigmask = sigmask; } + static size_t thread_id_size() { return sizeof(pid_t); } + pid_t thread_id() const { return _thread_id; } diff --git a/hotspot/src/os/solaris/vm/osThread_solaris.hpp b/hotspot/src/os/solaris/vm/osThread_solaris.hpp index 7fe1417e342..6e79e1855db 100644 --- a/hotspot/src/os/solaris/vm/osThread_solaris.hpp +++ b/hotspot/src/os/solaris/vm/osThread_solaris.hpp @@ -36,6 +36,7 @@ bool _vm_created_thread; // true if the VM created this thread, // false if primary thread or attached thread public: + static size_t thread_id_size() { return sizeof(thread_t); } thread_t thread_id() const { return _thread_id; } uint lwp_id() const { return _lwp_id; } int native_priority() const { return _native_priority; } diff --git a/hotspot/src/os/windows/vm/osThread_windows.hpp b/hotspot/src/os/windows/vm/osThread_windows.hpp index 1df8925c7a7..28cd45c5c2f 100644 --- a/hotspot/src/os/windows/vm/osThread_windows.hpp +++ b/hotspot/src/os/windows/vm/osThread_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -42,6 +42,8 @@ typedef void* HANDLE; HANDLE interrupt_event() const { return _interrupt_event; } void set_interrupt_event(HANDLE interrupt_event) { _interrupt_event = interrupt_event; } + + static size_t thread_id_size() { return sizeof(unsigned long); } unsigned long thread_id() const { return _thread_id; } #ifndef PRODUCT // Used for debugging, return a unique integer for each thread. diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index 34fdb591c2e..c11a2a2c177 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -3132,10 +3132,23 @@ bool GraphBuilder::try_inline_intrinsics(ciMethod* callee) { bool cantrap = true; vmIntrinsics::ID id = callee->intrinsic_id(); switch (id) { - case vmIntrinsics::_arraycopy : + case vmIntrinsics::_arraycopy: if (!InlineArrayCopy) return false; break; +#ifdef TRACE_HAVE_INTRINSICS + case vmIntrinsics::_classID: + case vmIntrinsics::_threadID: + preserves_state = true; + cantrap = true; + break; + + case vmIntrinsics::_counterTime: + preserves_state = true; + cantrap = false; + break; +#endif + case vmIntrinsics::_currentTimeMillis: case vmIntrinsics::_nanoTime: preserves_state = true; diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index 3c7f305222a..6ed6edf47c3 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, 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 @@ -2879,6 +2879,50 @@ void LIRGenerator::do_IfOp(IfOp* x) { __ cmove(lir_cond(x->cond()), t_val.result(), f_val.result(), reg, as_BasicType(x->x()->type())); } +void LIRGenerator::do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x) { + assert(x->number_of_arguments() == expected_arguments, "wrong type"); + LIR_Opr reg = result_register_for(x->type()); + __ call_runtime_leaf(routine, getThreadTemp(), + reg, new LIR_OprList()); + LIR_Opr result = rlock_result(x); + __ move(reg, result); +} + +#ifdef TRACE_HAVE_INTRINSICS +void LIRGenerator::do_ThreadIDIntrinsic(Intrinsic* x) { + LIR_Opr thread = getThreadPointer(); + LIR_Opr osthread = new_pointer_register(); + __ move(new LIR_Address(thread, in_bytes(JavaThread::osthread_offset()), osthread->type()), osthread); + size_t thread_id_size = OSThread::thread_id_size(); + if (thread_id_size == (size_t) BytesPerLong) { + LIR_Opr id = new_register(T_LONG); + __ move(new LIR_Address(osthread, in_bytes(OSThread::thread_id_offset()), T_LONG), id); + __ convert(Bytecodes::_l2i, id, rlock_result(x)); + } else if (thread_id_size == (size_t) BytesPerInt) { + __ move(new LIR_Address(osthread, in_bytes(OSThread::thread_id_offset()), T_INT), rlock_result(x)); + } else { + ShouldNotReachHere(); + } +} + +void LIRGenerator::do_ClassIDIntrinsic(Intrinsic* x) { + CodeEmitInfo* info = state_for(x); + CodeEmitInfo* info2 = new CodeEmitInfo(info); // Clone for the second null check + assert(info != NULL, "must have info"); + LIRItem arg(x->argument_at(1), this); + arg.load_item(); + LIR_Opr klass = new_register(T_OBJECT); + __ move(new LIR_Address(arg.result(), java_lang_Class::klass_offset_in_bytes(), T_OBJECT), klass, info); + LIR_Opr id = new_register(T_LONG); + ByteSize offset = TRACE_ID_OFFSET; + LIR_Address* trace_id_addr = new LIR_Address(klass, in_bytes(offset), T_LONG); + __ move(trace_id_addr, id); + __ logical_or(id, LIR_OprFact::longConst(0x01l), id); + __ store(id, trace_id_addr); + __ logical_and(id, LIR_OprFact::longConst(~0x3l), id); + __ move(id, rlock_result(x)); +} +#endif void LIRGenerator::do_Intrinsic(Intrinsic* x) { switch (x->id()) { @@ -2890,25 +2934,21 @@ void LIRGenerator::do_Intrinsic(Intrinsic* x) { break; } - case vmIntrinsics::_currentTimeMillis: { - assert(x->number_of_arguments() == 0, "wrong type"); - LIR_Opr reg = result_register_for(x->type()); - __ call_runtime_leaf(CAST_FROM_FN_PTR(address, os::javaTimeMillis), getThreadTemp(), - reg, new LIR_OprList()); - LIR_Opr result = rlock_result(x); - __ move(reg, result); +#ifdef TRACE_HAVE_INTRINSICS + case vmIntrinsics::_threadID: do_ThreadIDIntrinsic(x); break; + case vmIntrinsics::_classID: do_ClassIDIntrinsic(x); break; + case vmIntrinsics::_counterTime: + do_RuntimeCall(CAST_FROM_FN_PTR(address, TRACE_TIME_METHOD), 0, x); break; - } +#endif - case vmIntrinsics::_nanoTime: { - assert(x->number_of_arguments() == 0, "wrong type"); - LIR_Opr reg = result_register_for(x->type()); - __ call_runtime_leaf(CAST_FROM_FN_PTR(address, os::javaTimeNanos), getThreadTemp(), - reg, new LIR_OprList()); - LIR_Opr result = rlock_result(x); - __ move(reg, result); + case vmIntrinsics::_currentTimeMillis: + do_RuntimeCall(CAST_FROM_FN_PTR(address, os::javaTimeMillis), 0, x); + break; + + case vmIntrinsics::_nanoTime: + do_RuntimeCall(CAST_FROM_FN_PTR(address, os::javaTimeNanos), 0, x); break; - } case vmIntrinsics::_Object_init: do_RegisterFinalizer(x); break; case vmIntrinsics::_getClass: do_getClass(x); break; diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp index 56b28e4eb8e..67127df04d8 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, 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 @@ -426,6 +426,12 @@ class LIRGenerator: public InstructionVisitor, public BlockClosure { SwitchRangeArray* create_lookup_ranges(LookupSwitch* x); void do_SwitchRanges(SwitchRangeArray* x, LIR_Opr value, BlockBegin* default_sux); + void do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x); +#ifdef TRACE_HAVE_INTRINSICS + void do_ThreadIDIntrinsic(Intrinsic* x); + void do_ClassIDIntrinsic(Intrinsic* x); +#endif + public: Compilation* compilation() const { return _compilation; } FrameMap* frame_map() const { return _compilation->frame_map(); } diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index 765dec48098..47703492d1e 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -295,6 +295,9 @@ const char* Runtime1::name_for_address(address entry) { FUNCTION_CASE(entry, SharedRuntime::dtrace_method_entry); FUNCTION_CASE(entry, SharedRuntime::dtrace_method_exit); FUNCTION_CASE(entry, trace_block_entry); +#ifdef TRACE_HAVE_INTRINSICS + FUNCTION_CASE(entry, TRACE_TIME_METHOD); +#endif #undef FUNCTION_CASE diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index 92c06342dad..9cee5ac0490 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -27,6 +27,7 @@ #include "oops/symbol.hpp" #include "memory/iterator.hpp" +#include "trace/traceMacros.hpp" // The class vmSymbols is a name space for fast lookup of // symbols commonly used in the VM. @@ -424,6 +425,7 @@ template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \ template(class_void_signature, "(Ljava/lang/Class;)V") \ template(class_int_signature, "(Ljava/lang/Class;)I") \ + template(class_long_signature, "(Ljava/lang/Class;)J") \ template(class_boolean_signature, "(Ljava/lang/Class;)Z") \ template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \ template(string_array_void_signature, "([Ljava/lang/String;)V") \ @@ -539,10 +541,12 @@ template(serializePropertiesToByteArray_signature, "()[B") \ template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \ template(classRedefinedCount_name, "classRedefinedCount") \ + \ + /* trace signatures */ \ + TRACE_TEMPLATES(template) \ + \ /*end*/ - - // Here are all the intrinsics known to the runtime and the CI. // Each intrinsic consists of a public enum name (like _hashCode), // followed by a specification of its klass, name, and signature: @@ -648,6 +652,8 @@ do_intrinsic(_nanoTime, java_lang_System, nanoTime_name, void_long_signature, F_S) \ do_name( nanoTime_name, "nanoTime") \ \ + TRACE_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias) \ + \ do_intrinsic(_arraycopy, java_lang_System, arraycopy_name, arraycopy_signature, F_S) \ do_name( arraycopy_name, "arraycopy") \ do_signature(arraycopy_signature, "(Ljava/lang/Object;ILjava/lang/Object;II)V") \ diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp index 32a00f5c6b0..31266375115 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.hpp +++ b/hotspot/src/share/vm/oops/instanceKlass.hpp @@ -642,6 +642,7 @@ class instanceKlass: public Klass { // support for stub routines static ByteSize init_state_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(instanceKlass, _init_state)); } + TRACE_DEFINE_OFFSET; static ByteSize init_thread_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(instanceKlass, _init_thread)); } // subclass/subinterface checks diff --git a/hotspot/src/share/vm/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index 1a38fb6131b..13c3a4327ce 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2012, 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 @@ -175,7 +175,11 @@ class LibraryCallKit : public GraphKit { bool inline_unsafe_allocate(); bool inline_unsafe_copyMemory(); bool inline_native_currentThread(); - bool inline_native_time_funcs(bool isNano); +#ifdef TRACE_HAVE_INTRINSICS + bool inline_native_classID(); + bool inline_native_threadID(); +#endif + bool inline_native_time_funcs(address method, const char* funcName); bool inline_native_isInterrupted(); bool inline_native_Class_query(vmIntrinsics::ID id); bool inline_native_subtype_check(); @@ -638,10 +642,18 @@ bool LibraryCallKit::try_to_inline() { case vmIntrinsics::_isInterrupted: return inline_native_isInterrupted(); +#ifdef TRACE_HAVE_INTRINSICS + case vmIntrinsics::_classID: + return inline_native_classID(); + case vmIntrinsics::_threadID: + return inline_native_threadID(); + case vmIntrinsics::_counterTime: + return inline_native_time_funcs(CAST_FROM_FN_PTR(address, TRACE_TIME_METHOD), "counterTime"); +#endif case vmIntrinsics::_currentTimeMillis: - return inline_native_time_funcs(false); + return inline_native_time_funcs(CAST_FROM_FN_PTR(address, os::javaTimeMillis), "currentTimeMillis"); case vmIntrinsics::_nanoTime: - return inline_native_time_funcs(true); + return inline_native_time_funcs(CAST_FROM_FN_PTR(address, os::javaTimeNanos), "nanoTime"); case vmIntrinsics::_allocateInstance: return inline_unsafe_allocate(); case vmIntrinsics::_copyMemory: @@ -2840,14 +2852,63 @@ bool LibraryCallKit::inline_unsafe_allocate() { return true; } +#ifdef TRACE_HAVE_INTRINSICS +/* + * oop -> myklass + * myklass->trace_id |= USED + * return myklass->trace_id & ~0x3 + */ +bool LibraryCallKit::inline_native_classID() { + int nargs = 1 + 1; + null_check_receiver(callee()); // check then ignore argument(0) + _sp += nargs; + Node* cls = do_null_check(argument(1), T_OBJECT); + _sp -= nargs; + Node* kls = load_klass_from_mirror(cls, false, nargs, NULL, 0); + _sp += nargs; + kls = do_null_check(kls, T_OBJECT); + _sp -= nargs; + ByteSize offset = TRACE_ID_OFFSET; + Node* insp = basic_plus_adr(kls, in_bytes(offset)); + Node* tvalue = make_load(NULL, insp, TypeLong::LONG, T_LONG); + Node* bits = longcon(~0x03l); // ignore bit 0 & 1 + Node* andl = _gvn.transform(new (C, 3) AndLNode(tvalue, bits)); + Node* clsused = longcon(0x01l); // set the class bit + Node* orl = _gvn.transform(new (C, 3) OrLNode(tvalue, clsused)); + + const TypePtr *adr_type = _gvn.type(insp)->isa_ptr(); + store_to_memory(control(), insp, orl, T_LONG, adr_type); + push_pair(andl); + return true; +} + +bool LibraryCallKit::inline_native_threadID() { + Node* tls_ptr = NULL; + Node* cur_thr = generate_current_thread(tls_ptr); + Node* p = basic_plus_adr(top()/*!oop*/, tls_ptr, in_bytes(JavaThread::osthread_offset())); + Node* osthread = make_load(NULL, p, TypeRawPtr::NOTNULL, T_ADDRESS); + p = basic_plus_adr(top()/*!oop*/, osthread, in_bytes(OSThread::thread_id_offset())); + + Node* threadid = NULL; + size_t thread_id_size = OSThread::thread_id_size(); + if (thread_id_size == (size_t) BytesPerLong) { + threadid = ConvL2I(make_load(control(), p, TypeLong::LONG, T_LONG)); + push(threadid); + } else if (thread_id_size == (size_t) BytesPerInt) { + threadid = make_load(control(), p, TypeInt::INT, T_INT); + push(threadid); + } else { + ShouldNotReachHere(); + } + return true; +} +#endif + //------------------------inline_native_time_funcs-------------- // inline code for System.currentTimeMillis() and System.nanoTime() // these have the same type and signature -bool LibraryCallKit::inline_native_time_funcs(bool isNano) { - address funcAddr = isNano ? CAST_FROM_FN_PTR(address, os::javaTimeNanos) : - CAST_FROM_FN_PTR(address, os::javaTimeMillis); - const char * funcName = isNano ? "nanoTime" : "currentTimeMillis"; - const TypeFunc *tf = OptoRuntime::current_time_millis_Type(); +bool LibraryCallKit::inline_native_time_funcs(address funcAddr, const char* funcName) { + const TypeFunc *tf = OptoRuntime::void_long_Type(); const TypePtr* no_memory_effects = NULL; Node* time = make_runtime_call(RC_LEAF, tf, funcAddr, funcName, no_memory_effects); Node* value = _gvn.transform(new (C, 1) ProjNode(time, TypeFunc::Parms+0)); diff --git a/hotspot/src/share/vm/opto/runtime.cpp b/hotspot/src/share/vm/opto/runtime.cpp index b97f06a024f..b03a3943a0e 100644 --- a/hotspot/src/share/vm/opto/runtime.cpp +++ b/hotspot/src/share/vm/opto/runtime.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, 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 @@ -709,9 +709,9 @@ const TypeFunc* OptoRuntime::Math_DD_D_Type() { return TypeFunc::make(domain, range); } -//-------------- currentTimeMillis +//-------------- currentTimeMillis, currentTimeNanos, etc -const TypeFunc* OptoRuntime::current_time_millis_Type() { +const TypeFunc* OptoRuntime::void_long_Type() { // create input type (domain) const Type **fields = TypeTuple::fields(0); const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+0, fields); diff --git a/hotspot/src/share/vm/opto/runtime.hpp b/hotspot/src/share/vm/opto/runtime.hpp index 39702980597..11b5434a54d 100644 --- a/hotspot/src/share/vm/opto/runtime.hpp +++ b/hotspot/src/share/vm/opto/runtime.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, 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 @@ -268,7 +268,7 @@ private: static const TypeFunc* Math_DD_D_Type(); // mod,pow & friends static const TypeFunc* modf_Type(); static const TypeFunc* l2f_Type(); - static const TypeFunc* current_time_millis_Type(); + static const TypeFunc* void_long_Type(); static const TypeFunc* flush_windows_Type(); diff --git a/hotspot/src/share/vm/runtime/osThread.hpp b/hotspot/src/share/vm/runtime/osThread.hpp index 984bc9b49f1..bb3fd79637b 100644 --- a/hotspot/src/share/vm/runtime/osThread.hpp +++ b/hotspot/src/share/vm/runtime/osThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -98,6 +98,7 @@ class OSThread: public CHeapObj { // For java intrinsics: static ByteSize interrupted_offset() { return byte_offset_of(OSThread, _interrupted); } + static ByteSize thread_id_offset() { return byte_offset_of(OSThread, _thread_id); } // Platform dependent stuff #ifdef TARGET_OS_FAMILY_linux diff --git a/hotspot/src/share/vm/trace/traceMacros.hpp b/hotspot/src/share/vm/trace/traceMacros.hpp index 221f4d0f889..44103192083 100644 --- a/hotspot/src/share/vm/trace/traceMacros.hpp +++ b/hotspot/src/share/vm/trace/traceMacros.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -43,5 +43,9 @@ #define TRACE_SET_KLASS_TRACE_ID(x1, x2) do { } while (0) #define TRACE_DEFINE_KLASS_METHODS typedef int ___IGNORED_hs_trace_type1 #define TRACE_DEFINE_KLASS_TRACE_ID typedef int ___IGNORED_hs_trace_type2 +#define TRACE_DEFINE_OFFSET typedef int ___IGNORED_hs_trace_type3 +#define TRACE_ID_OFFSET in_ByteSize(0); ShouldNotReachHere() +#define TRACE_TEMPLATES(template) +#define TRACE_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias) #endif From 0881e4a989b921cfa0ba0480a107e7d7a25c651b Mon Sep 17 00:00:00 2001 From: Darryl Mocek Date: Wed, 4 Apr 2012 15:57:04 -0700 Subject: [PATCH 07/82] 7159130: add java/rmi/transport/pinClientSocketFactory to problem list Reviewed-by: smarks --- jdk/test/ProblemList.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 70a44d7c466..94db829ba11 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -252,6 +252,9 @@ java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java linux-all # 7132247 java/rmi/registry/readTest/readTest.sh windows-all +# 7142596 +java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java generic-all + ############################################################################ # jdk_security From f3e1a941c5cadd63bfc1bad7159114e96ee88eef Mon Sep 17 00:00:00 2001 From: Jim Gish Date: Thu, 5 Apr 2012 13:57:37 +0100 Subject: [PATCH 08/82] 7133806: Typo in Files.newByteChannel javadoc Reviewed-by: chegar --- jdk/src/share/classes/java/nio/file/Files.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/java/nio/file/Files.java b/jdk/src/share/classes/java/nio/file/Files.java index f46ae4cd40b..e3449b048e2 100644 --- a/jdk/src/share/classes/java/nio/file/Files.java +++ b/jdk/src/share/classes/java/nio/file/Files.java @@ -269,7 +269,7 @@ public final class Files { * WritableByteChannel wbc = Files.newByteChannel(path, EnumSet.of(CREATE,APPEND)); * * // create file with initial permissions, opening it for both reading and writing - * {@code FileAttribute<> perms = ...} + * {@code FileAttribute> perms = ...} * SeekableByteChannel sbc = Files.newByteChannel(path, EnumSet.of(CREATE_NEW,READ,WRITE), perms); * * From 90430b3f4930d36a54312a4f3e81baef30bc86ee Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 5 Apr 2012 18:27:16 +0400 Subject: [PATCH 09/82] 7150105: [macosx] four scroll-buttons don't display. scroll-sliders cursors are TextCursor Reviewed-by: anthony, art, alexp --- .../classes/sun/lwawt/LWComponentPeer.java | 11 +++ .../classes/sun/lwawt/LWCursorManager.java | 75 +++++++++++-------- .../classes/sun/lwawt/LWTextAreaPeer.java | 10 +++ .../classes/sun/lwawt/LWWindowPeer.java | 7 +- .../sun/lwawt/macosx/CCursorManager.java | 36 +++++---- 5 files changed, 88 insertions(+), 51 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java index 0f81d75472b..86f1f84b131 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java @@ -616,6 +616,17 @@ public abstract class LWComponentPeer windowLocation.y + locationInWindow.y); } + /** + * Returns the cursor of the peer, which is cursor of the target by default, + * but peer can override this behavior. + * + * @param p Point relative to the peer. + * @return Cursor of the peer or null if default cursor should be used. + */ + protected Cursor getCursor(final Point p) { + return getTarget().getCursor(); + } + @Override public void setBackground(final Color c) { final Color oldBg = getBackground(); diff --git a/jdk/src/macosx/classes/sun/lwawt/LWCursorManager.java b/jdk/src/macosx/classes/sun/lwawt/LWCursorManager.java index 62de104be01..1c34353c7b9 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWCursorManager.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWCursorManager.java @@ -36,32 +36,34 @@ import sun.awt.SunToolkit; public abstract class LWCursorManager { - // A flag to indicate if the update is scheduled, so we don't - // process it twice - private AtomicBoolean updatePending = new AtomicBoolean(false); + /** + * A flag to indicate if the update is scheduled, so we don't process it + * twice. + */ + private final AtomicBoolean updatePending = new AtomicBoolean(false); protected LWCursorManager() { } - /* + /** * Sets the cursor to correspond the component currently under mouse. * * This method should not be executed on the toolkit thread as it * calls to user code (e.g. Container.findComponentAt). */ - public void updateCursor() { + public final void updateCursor() { updatePending.set(false); updateCursorImpl(); } - /* + /** * Schedules updating the cursor on the corresponding event dispatch * thread for the given window. * * This method is called on the toolkit thread as a result of a * native update cursor request (e.g. WM_SETCURSOR on Windows). */ - public void updateCursorLater(LWWindowPeer window) { + public final void updateCursorLater(final LWWindowPeer window) { if (updatePending.compareAndSet(false, true)) { Runnable r = new Runnable() { @Override @@ -74,45 +76,58 @@ public abstract class LWCursorManager { } private void updateCursorImpl() { - LWWindowPeer windowUnderCursor = LWWindowPeer.getWindowUnderCursor(); - Point cursorPos = getCursorPosition(); - LWComponentPeer componentUnderCursor = null; - // TODO: it's possible to get the component under cursor directly as - // it's stored in LWWindowPee anyway (lastMouseEventPeer) - if (windowUnderCursor != null) { - componentUnderCursor = windowUnderCursor.findPeerAt(cursorPos.x, cursorPos.y); + final Point cursorPos = getCursorPosition(); + final Component c = findComponent(cursorPos); + final Cursor cursor; + final Object peer = LWToolkit.targetToPeer(c); + if (peer instanceof LWComponentPeer) { + final LWComponentPeer lwpeer = (LWComponentPeer) peer; + final Point p = lwpeer.getLocationOnScreen(); + cursor = lwpeer.getCursor(new Point(cursorPos.x - p.x, + cursorPos.y - p.y)); + } else { + cursor = (c != null) ? c.getCursor() : null; } - Cursor cursor = null; - if (componentUnderCursor != null) { - Component c = componentUnderCursor.getTarget(); + // TODO: default cursor for modal blocked windows + setCursor(cursor); + } + + /** + * Returns the first visible, enabled and showing component under cursor. + * + * @param cursorPos Current cursor position. + * @return Component + */ + private static final Component findComponent(final Point cursorPos) { + final LWComponentPeer peer = LWWindowPeer.getPeerUnderCursor(); + Component c = null; + if (peer != null) { + c = peer.getTarget(); if (c instanceof Container) { - Point p = componentUnderCursor.getLocationOnScreen(); - c = ((Container)c).findComponentAt(cursorPos.x - p.x, cursorPos.y - p.y); + final Point p = peer.getLocationOnScreen(); + c = ((Container) c).findComponentAt(cursorPos.x - p.x, + cursorPos.y - p.y); } - // Traverse up to the first visible, enabled and showing component while (c != null) { if (c.isVisible() && c.isEnabled() && (c.getPeer() != null)) { break; } c = c.getParent(); } - if (c != null) { - cursor = c.getCursor(); - } } - // TODO: default cursor for modal blocked windows - setCursor(windowUnderCursor, cursor); + return c; } - /* + /** * Returns the current cursor position. */ // TODO: make it public to reuse for MouseInfo protected abstract Point getCursorPosition(); - /* - * Sets a cursor. The cursor can be null if the mouse is not over a Java window. + /** + * Sets a cursor. The cursor can be null if the mouse is not over a Java + * window. + * @param cursor the new {@code Cursor}. */ - protected abstract void setCursor(LWWindowPeer windowUnderCursor, Cursor cursor); - + protected abstract void setCursor(Cursor cursor); } diff --git a/jdk/src/macosx/classes/sun/lwawt/LWTextAreaPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWTextAreaPeer.java index a7a214f522d..e71ee173c50 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWTextAreaPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWTextAreaPeer.java @@ -27,6 +27,7 @@ package sun.lwawt; import java.awt.Component; +import java.awt.Cursor; import java.awt.Dimension; import java.awt.Point; import java.awt.TextArea; @@ -71,6 +72,15 @@ final class LWTextAreaPeer return getDelegate().getView(); } + @Override + protected Cursor getCursor(final Point p) { + final boolean isContains; + synchronized (getDelegateLock()) { + isContains = getDelegate().getViewport().getBounds().contains(p); + } + return isContains ? super.getCursor(p) : null; + } + @Override protected Component getDelegateFocusOwner() { return getTextComponent(); diff --git a/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java index 3b9ee106e75..535a89be9c2 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java @@ -784,9 +784,8 @@ public class LWWindowPeer } mouseClickButtons &= ~eventButtonMask; } - - notifyUpdateCursor(); } + notifyUpdateCursor(); } public void dispatchMouseWheelEvent(long when, int x, int y, int modifiers, @@ -1057,6 +1056,10 @@ public class LWWindowPeer return lastMouseEventPeer != null ? lastMouseEventPeer.getWindowPeerOrSelf() : null; } + public static LWComponentPeer getPeerUnderCursor() { + return lastMouseEventPeer; + } + public boolean requestWindowFocus(CausedFocusEvent.Cause cause) { if (focusLog.isLoggable(PlatformLogger.FINE)) { focusLog.fine("requesting native focus to " + this); diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CCursorManager.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CCursorManager.java index cc4cd355d94..b17618452ac 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CCursorManager.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CCursorManager.java @@ -25,24 +25,26 @@ package sun.lwawt.macosx; -import java.awt.*; +import sun.lwawt.LWCursorManager; + +import java.awt.Cursor; +import java.awt.Point; import java.awt.geom.Point2D; -import sun.lwawt.*; +final class CCursorManager extends LWCursorManager { -public class CCursorManager extends LWCursorManager { private static native Point2D nativeGetCursorPosition(); private static native void nativeSetBuiltInCursor(final int type, final String name); private static native void nativeSetCustomCursor(final long imgPtr, final double x, final double y); private static final int NAMED_CURSOR = -1; - private final static CCursorManager theInstance = new CCursorManager(); + private static final CCursorManager theInstance = new CCursorManager(); public static CCursorManager getInstance() { return theInstance; } - Cursor currentCursor; + private volatile Cursor currentCursor; private CCursorManager() { } @@ -62,8 +64,11 @@ public class CCursorManager extends LWCursorManager { } @Override - protected void setCursor(final LWWindowPeer windowUnderCursor, final Cursor cursor) { - if (cursor == currentCursor) return; + protected void setCursor(final Cursor cursor) { + if (cursor == currentCursor) { + return; + } + currentCursor = cursor; if (cursor == null) { nativeSetBuiltInCursor(Cursor.DEFAULT_CURSOR, null); @@ -71,10 +76,12 @@ public class CCursorManager extends LWCursorManager { } if (cursor instanceof CCustomCursor) { - final CCustomCursor customCursor = ((CCustomCursor)cursor); + final CCustomCursor customCursor = (CCustomCursor) cursor; final long imagePtr = customCursor.getImageData(); - final Point hotSpot = customCursor.getHotSpot(); - if(imagePtr != 0L) nativeSetCustomCursor(imagePtr, hotSpot.x, hotSpot.y); + if (imagePtr != 0L) { + final Point hotSpot = customCursor.getHotSpot(); + nativeSetCustomCursor(imagePtr, hotSpot.x, hotSpot.y); + } return; } @@ -94,13 +101,6 @@ public class CCursorManager extends LWCursorManager { throw new RuntimeException("Unimplemented"); } - static long getNativeWindow(final LWWindowPeer window) { - if (window == null) return 0; - final CPlatformWindow platformWindow = (CPlatformWindow)window.getPlatformWindow(); - if (platformWindow == null) return 0; - return platformWindow.getNSWindowPtr(); - } - // package private methods to handle cursor change during drag-and-drop private boolean isDragging = false; private Point dragPos = null; @@ -109,9 +109,7 @@ public class CCursorManager extends LWCursorManager { if (isDragging) { throw new RuntimeException("Invalid Drag state in CCursorManager!"); } - isDragging = true; - dragPos = new Point(x, y); } From 09db79364b41fc03ef27e7563b75fea0eff10861 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 5 Apr 2012 19:01:43 +0400 Subject: [PATCH 10/82] 7124401: [macosx] After call Frame dispose() application continues to work Reviewed-by: art, alexp --- .../SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java b/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java index 49f517e552a..23b8de1b4a3 100644 --- a/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java +++ b/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java @@ -54,8 +54,12 @@ public class SharedMemoryPixmapsTest { public SharedMemoryPixmapsTest() { testFrame = new Frame("SharedMemoryPixmapsTest"); testFrame.add(new TestComponent()); + testFrame.setUndecorated(true); + testFrame.setResizable(false); testFrame.pack(); + testFrame.setLocationRelativeTo(null); testFrame.setVisible(true); + testFrame.toFront(); } public static void main(String[] args) { From 6412600e72aa058bf695719ec350cd1da9ddae88 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 5 Apr 2012 19:22:54 +0400 Subject: [PATCH 11/82] 7149913: [macosx] Deadlock in LWTextComponentPeer Reviewed-by: anthony, art --- .../macosx/classes/sun/lwawt/LWComponentPeer.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java index 86f1f84b131..02040f3a67a 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java @@ -213,16 +213,8 @@ public abstract class LWComponentPeer SwingUtilities3.setDelegateRepaintManager(delegate, new RepaintManager() { @Override public void addDirtyRegion(final JComponent c, final int x, final int y, final int w, final int h) { - if (SunToolkit.isDispatchThreadForAppContext(getTarget())) { - synchronized (getDelegateLock()) { - if (getDelegate().isPaintingForPrint()) { - return; - } - } - } - Rectangle res = SwingUtilities.convertRectangle( - c, new Rectangle(x, y, w, h), getDelegate()); - repaintPeer(res); + repaintPeer(SwingUtilities.convertRectangle( + c, new Rectangle(x, y, w, h), getDelegate())); } }); } From da37ef4781fead9423f7666f5f88f38977e55e65 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 5 Apr 2012 19:43:56 +0400 Subject: [PATCH 12/82] 7124528: [macosx] Selection is not cleared properly in text component Reviewed-by: anthony, art --- .../classes/sun/lwawt/LWTextFieldPeer.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/jdk/src/macosx/classes/sun/lwawt/LWTextFieldPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWTextFieldPeer.java index fb94d0bb6ab..af923ef0824 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWTextFieldPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWTextFieldPeer.java @@ -31,6 +31,7 @@ import java.awt.Point; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.FocusEvent; import java.awt.peer.TextFieldPeer; import javax.swing.JPasswordField; @@ -97,6 +98,21 @@ final class LWTextFieldPeer getText(), e.getWhen(), e.getModifiers())); } + /** + * Restoring native behavior. We should sets the selection range to zero, + * when component lost its focus. + * + * @param e the focus event + */ + @Override + protected void handleJavaFocusEvent(final FocusEvent e) { + if (e.getID() == FocusEvent.FOCUS_LOST) { + // In order to de-select the selection + setCaretPosition(0); + } + super.handleJavaFocusEvent(e); + } + private final class JTextAreaDelegate extends JPasswordField { // Empty non private constructor was added because access to this From 4acd4d97f31f6eabf251953ca5b5ec9018e8e146 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 5 Apr 2012 20:38:24 +0400 Subject: [PATCH 13/82] 7125657: [macosx] SpreadSheet demo has the broken display when clicking outside of the table Reviewed-by: alexp, anthony, art --- jdk/src/macosx/classes/sun/lwawt/LWRepaintArea.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/LWRepaintArea.java b/jdk/src/macosx/classes/sun/lwawt/LWRepaintArea.java index e29009dcd79..54cbd332db4 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWRepaintArea.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWRepaintArea.java @@ -39,12 +39,8 @@ final class LWRepaintArea extends RepaintArea { @Override protected void updateComponent(final Component comp, final Graphics g) { if (comp != null) { - final LWComponentPeer peer = (LWComponentPeer) comp.getPeer(); - if (peer != null) { - peer.paintPeer(g); - } super.updateComponent(comp, g); - flushBuffers(peer); + flushBuffers((LWComponentPeer) comp.getPeer()); } } From 1862aaa218ccc5bc045b325abc90de0bed78a928 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 6 Apr 2012 17:03:34 +0400 Subject: [PATCH 14/82] 7147435: closed/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh failed since 7u4b11 Forward-port the fix from 7u4 and open-source the test Reviewed-by: art --- .../WrappedToolkitTest/TestWrapped.java | 76 ++++++++ .../WrappedToolkitTest/WrappedToolkitTest.sh | 179 ++++++++++++++++++ 2 files changed, 255 insertions(+) create mode 100644 jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/TestWrapped.java create mode 100644 jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh diff --git a/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/TestWrapped.java b/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/TestWrapped.java new file mode 100644 index 00000000000..e2ded58e7f2 --- /dev/null +++ b/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/TestWrapped.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2012, 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 6282388 + * @summary Tests that AWT use correct toolkit to be wrapped into HeadlessToolkit + * @author artem.ananiev@sun.com: area=awt.headless + * @run shell WrappedToolkitTest.sh + */ + +import java.awt.*; + +import java.lang.reflect.*; + +import sun.awt.*; + +public class TestWrapped +{ + public static void main(String[] args) + { + try + { + if (args.length != 1) { + System.err.println("No correct toolkit class name is specified, test is not run"); + System.exit(0); + } + + String correctToolkitClassName = args[0]; + Toolkit tk = Toolkit.getDefaultToolkit(); + Class tkClass = tk.getClass(); + if (!tkClass.getName().equals("sun.awt.HeadlessToolkit")) + { + System.err.println(tkClass.getName()); + System.err.println("Error: default toolkit is not an instance of HeadlessToolkit"); + System.exit(-1); + } + + Field f = tkClass.getDeclaredField("tk"); + f.setAccessible(true); + Class wrappedClass = f.get(tk).getClass(); + if (!wrappedClass.getName().equals(correctToolkitClassName)) { + System.err.println(wrappedClass.getName()); + System.err.println("Error: wrapped toolkit is not an instance of " + correctToolkitClassName); + System.exit(-1); + } + } + catch (Exception z) + { + z.printStackTrace(System.err); + System.exit(-1); + } + + System.exit(0); + } +} diff --git a/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh b/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh new file mode 100644 index 00000000000..125dac7eb20 --- /dev/null +++ b/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh @@ -0,0 +1,179 @@ +#!/bin/ksh -p + +# +# Copyright (c) 2012, 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 6282388 +# @summary Tests that AWT use correct toolkit to be wrapped into HeadlessToolkit +# @author artem.ananiev@sun.com: area=awt.headless +# @compile TestWrapped.java +# @run shell WrappedToolkitTest.sh + +# Beginning of subroutines: +status=1 + +#Call this from anywhere to fail the test with an error message +# usage: fail "reason why the test failed" +fail() + { echo "The test failed :-(" + echo "$*" 1>&2 + echo "exit status was $status" + exit $status + } #end of fail() + +#Call this from anywhere to pass the test with a message +# usage: pass "reason why the test passed if applicable" +pass() + { echo "The test passed!!!" + echo "$*" 1>&2 + exit 0 + } #end of pass() + +# end of subroutines + + +# The beginning of the script proper + +# Checking for proper OS +OS=`uname -s` +case "$OS" in + SunOS ) + VAR="One value for Sun" + DEFAULT_JDK=/usr/local/java/jdk1.2/solaris + FILESEP="/" + ;; + + Linux ) + VAR="A different value for Linux" + DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386 + FILESEP="/" + ;; + + Windows* | CYGWIN* ) + VAR="A different value for Win32" + DEFAULT_JDK=/usr/local/java/jdk1.2/win32 + FILESEP="\\" + ;; + + # catch all other OSs + * ) + echo "Unrecognized system! $OS" + fail "Unrecognized system! $OS" + ;; +esac + +# check that some executable or other file you need is available, abort if not +# note that the name of the executable is in the fail string as well. +# this is how to check for presence of the compiler, etc. +#RESOURCE=`whence SomeProgramOrFileNeeded` +#if [ "${RESOURCE}" = "" ] ; +# then fail "Need SomeProgramOrFileNeeded to perform the test" ; +#fi + +# Want this test to run standalone as well as in the harness, so do the +# following to copy the test's directory into the harness's scratch directory +# and set all appropriate variables: + +if [ -z "${TESTJAVA}" ] ; then + # TESTJAVA is not set, so the test is running stand-alone. + # TESTJAVA holds the path to the root directory of the build of the JDK + # to be tested. That is, any java files run explicitly in this shell + # should use TESTJAVA in the path to the java interpreter. + # So, we'll set this to the JDK spec'd on the command line. If none + # is given on the command line, tell the user that and use a cheesy + # default. + # THIS IS THE JDK BEING TESTED. + if [ -n "$1" ] ; + then TESTJAVA=$1 + else echo "no JDK specified on command line so using default!" + TESTJAVA=$DEFAULT_JDK + fi + TESTSRC=. + TESTCLASSES=. + STANDALONE=1; +fi +echo "JDK under test is: $TESTJAVA" + +#Deal with .class files: +if [ -n "${STANDALONE}" ] ; then + # then compile all .java files (if there are any) into .class files + if [ -a *.java ]; then + ${TESTJAVA}/bin/javac$ ./*.java ; + fi + # else in harness so copy all the class files from where jtreg put them + # over to the scratch directory this test is running in. + else cp ${TESTCLASSES}/*.class . ; +fi + +#if in test harness, then copy the entire directory that the test is in over +# to the scratch directory. This catches any support files needed by the test. +if [ -z "${STANDALONE}" ] ; + then cp ${TESTSRC}/* . +fi + +#Just before executing anything, make sure it has executable permission! +chmod 777 ./* + +############### YOUR TEST CODE HERE!!!!!!! ############# + +case "$OS" in + Windows* | CYGWIN* ) + ${TESTJAVA}/bin/java -Djava.awt.headless=true \ + TestWrapped sun.awt.windows.WToolkit + status=$? + if [ ! $status -eq "0" ]; then + fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.windows.WToolkit"; + fi + ${TESTJAVA}/bin/java -Djava.awt.headless=true \ + -Dawt.toolkit=sun.awt.windows.WToolkit \ + TestWrapped sun.awt.windows.WToolkit + status=$? + if [ ! $status -eq "0" ]; then + fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.windows.WToolkit"; + fi + ;; + + SunOS | Linux ) + ${TESTJAVA}/bin/java -Djava.awt.headless=true \ + -Dawt.toolkit=sun.awt.X11.XToolkit \ + TestWrapped sun.awt.X11.XToolkit + status=$? + if [ ! $status -eq "0" ]; then + fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.xawt.XToolkit"; + fi + AWT_TOOLKIT=XToolkit ${TESTJAVA}/bin/java -Djava.awt.headless=true \ + TestWrapped sun.awt.X11.XToolkit + status=$? + if [ ! $status -eq "0" ]; then + fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.xawt.XToolkit"; + fi + ;; + +esac + +pass "All the tests are PASSED"; + +#For additional examples of how to write platform independent KSH scripts, +# see the jtreg file itself. It is a KSH script for both Solaris and Win32 From 654920cc5bab3f59e5f4d86e9671dedf14ed6fe4 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 6 Apr 2012 17:15:09 +0400 Subject: [PATCH 15/82] 7124553: [macosx] Need minimum size for titled Frames and JFrames Forward-port the fix from 7u4 and also eliminate the grow box since we only support OS X 10.7+ that doesn't require it. Reviewed-by: art, swingler --- .../sun/lwawt/macosx/CPlatformWindow.java | 8 ++ jdk/src/macosx/native/sun/awt/AWTWindow.h | 2 - jdk/src/macosx/native/sun/awt/AWTWindow.m | 108 ++++++------------ 3 files changed, 41 insertions(+), 77 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java index e2119f5f4ae..b4d98b2da22 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java @@ -661,11 +661,19 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo @Override public void setResizable(boolean resizable) { setStyleBits(RESIZABLE, resizable); + + // Re-apply the size constraints and the size to ensure the space + // occupied by the grow box is counted properly + setMinimumSize(1, 1); // the method ignores its arguments + + Rectangle bounds = peer.getBounds(); + setBounds(bounds.x, bounds.y, bounds.width, bounds.height); } @Override public void setMinimumSize(int width, int height) { //TODO width, height should be used + //NOTE: setResizable() calls setMinimumSize(1,1) relaying on the logic below final long nsWindowPtr = getNSWindowPtr(); final Dimension min = target.getMinimumSize(); final Dimension max = target.getMaximumSize(); diff --git a/jdk/src/macosx/native/sun/awt/AWTWindow.h b/jdk/src/macosx/native/sun/awt/AWTWindow.h index 9c8c355ebfb..f511f9b739c 100644 --- a/jdk/src/macosx/native/sun/awt/AWTWindow.h +++ b/jdk/src/macosx/native/sun/awt/AWTWindow.h @@ -39,7 +39,6 @@ @private JNFWeakJObjectWrapper *javaPlatformWindow; CMenuBar *javaMenuBar; - NSWindow *growBoxWindow; NSSize javaMinSize; NSSize javaMaxSize; jint styleBits; @@ -47,7 +46,6 @@ @property (nonatomic, retain) JNFWeakJObjectWrapper *javaPlatformWindow; @property (nonatomic, retain) CMenuBar *javaMenuBar; -@property (nonatomic, retain) NSWindow *growBoxWindow; @property (nonatomic) NSSize javaMinSize; @property (nonatomic) NSSize javaMaxSize; @property (nonatomic) jint styleBits; diff --git a/jdk/src/macosx/native/sun/awt/AWTWindow.m b/jdk/src/macosx/native/sun/awt/AWTWindow.m index 51b3c01601e..90c3372a979 100644 --- a/jdk/src/macosx/native/sun/awt/AWTWindow.m +++ b/jdk/src/macosx/native/sun/awt/AWTWindow.m @@ -40,7 +40,6 @@ #import "ThreadUtilities.h" #import "OSVersion.h" - #define MASK(KEY) \ (sun_lwawt_macosx_CPlatformWindow_ ## KEY) @@ -50,31 +49,12 @@ #define SET(BITS, KEY, VALUE) \ BITS = VALUE ? BITS | MASK(KEY) : BITS & ~MASK(KEY) - static JNF_CLASS_CACHE(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow"); -@interface JavaResizeGrowBoxOverlayWindow : NSWindow { } - -@end - -@implementation JavaResizeGrowBoxOverlayWindow - -- (BOOL) accessibilityIsIgnored -{ - return YES; -} - -- (NSArray *)accessibilityChildrenAttribute -{ - return nil; -} -@end - @implementation AWTWindow @synthesize javaPlatformWindow; @synthesize javaMenuBar; -@synthesize growBoxWindow; @synthesize javaMinSize; @synthesize javaMaxSize; @synthesize styleBits; @@ -154,24 +134,6 @@ static JNF_CLASS_CACHE(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow"); } -- (BOOL) shouldShowGrowBox { - return isSnowLeopardOrLower() && IS(self.styleBits, RESIZABLE); -} - -- (NSImage *) createGrowBoxImage { - NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize(12, 12)]; - JRSUIControlRef growBoxWidget = JRSUIControlCreate(FALSE); - JRSUIControlSetWidget(growBoxWidget, kJRSUI_Widget_growBoxTextured); - JRSUIControlSetWindowType(growBoxWidget, kJRSUI_WindowType_utility); - JRSUIRendererRef renderer = JRSUIRendererCreate(); - [image lockFocus]; // sets current graphics context to that of the image - JRSUIControlDraw(renderer, growBoxWidget, [[NSGraphicsContext currentContext] graphicsPort], CGRectMake(0, 1, 11, 11)); - [image unlockFocus]; - JRSUIRendererRelease(renderer); - JRSUIControlRelease(growBoxWidget); - return image; -} - - (id) initWithPlatformWindow:(JNFWeakJObjectWrapper *)platformWindow styleBits:(jint)bits frameRect:(NSRect)rect @@ -205,28 +167,6 @@ AWT_ASSERT_APPKIT_THREAD; [self setReleasedWhenClosed:NO]; [self setPreservesContentDuringLiveResize:YES]; - if ([self shouldShowGrowBox]) { - NSImage *growBoxImage = [self createGrowBoxImage]; - growBoxWindow = [[JavaResizeGrowBoxOverlayWindow alloc] initWithContentRect:NSMakeRect(0, 0, [growBoxImage size].width, [growBoxImage size].height) styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; - [self.growBoxWindow setIgnoresMouseEvents:YES]; - [self.growBoxWindow setOpaque:NO]; - [self.growBoxWindow setBackgroundColor:[NSColor clearColor]]; - [self.growBoxWindow setHasShadow:NO]; - [self.growBoxWindow setReleasedWhenClosed:NO]; - - NSImageView *imageView = [[NSImageView alloc] initWithFrame:[self.growBoxWindow frame]]; - [imageView setEditable:NO]; - [imageView setAnimates:NO]; - [imageView setAllowsCutCopyPaste:NO]; - [self.growBoxWindow setContentView:imageView]; - [imageView setImage:growBoxImage]; - [growBoxImage release]; - [imageView release]; - - [self addChildWindow:self.growBoxWindow ordered:NSWindowAbove]; - [self adjustGrowBoxWindow]; - } else growBoxWindow = nil; - return self; } @@ -235,7 +175,6 @@ AWT_ASSERT_APPKIT_THREAD; JNIEnv *env = [ThreadUtilities getJNIEnv]; [self.javaPlatformWindow setJObject:nil withEnv:env]; - self.growBoxWindow = nil; [super dealloc]; } @@ -321,14 +260,6 @@ AWT_ASSERT_APPKIT_THREAD; // NSWindowDelegate methods -- (void) adjustGrowBoxWindow { - if (self.growBoxWindow != nil) { - NSRect parentRect = [self frame]; - parentRect.origin.x += (parentRect.size.width - [self.growBoxWindow frame].size.width); - [self.growBoxWindow setFrameOrigin:parentRect.origin]; - } -} - - (void) _deliverMoveResizeEvent { AWT_ASSERT_APPKIT_THREAD; @@ -342,8 +273,6 @@ AWT_ASSERT_APPKIT_THREAD; // TODO: create generic AWT assert } - [self adjustGrowBoxWindow]; - NSRect frame = ConvertNSScreenRect(env, [self frame]); static JNF_MEMBER_CACHE(jm_deliverMoveResizeEvent, jc_CPlatformWindow, "deliverMoveResizeEvent", "(IIII)V"); @@ -548,6 +477,31 @@ AWT_ASSERT_APPKIT_THREAD; } [super sendEvent:event]; } + +- (void)constrainSize:(NSSize*)size { + float minWidth = 0.f, minHeight = 0.f; + + if (IS(self.styleBits, DECORATED)) { + NSRect frame = [self frame]; + NSRect contentRect = [NSWindow contentRectForFrameRect:frame styleMask:[self styleMask]]; + + float top = frame.size.height - contentRect.size.height; + float left = contentRect.origin.x - frame.origin.x; + float bottom = contentRect.origin.y - frame.origin.y; + float right = frame.size.width - (contentRect.size.width + left); + + // Speculative estimation: 80 - enough for window decorations controls + minWidth += left + right + 80; + minHeight += top + bottom; + } + + minWidth = MAX(1.f, minWidth); + minHeight = MAX(1.f, minHeight); + + size->width = MAX(size->width, minWidth); + size->height = MAX(size->height, minHeight); +} + @end // AWTWindow @@ -703,6 +657,8 @@ AWT_ASSERT_NOT_APPKIT_THREAD; AWT_ASSERT_APPKIT_THREAD; NSRect rect = ConvertNSScreenRect(NULL, jrect); + [window constrainSize:&rect.size]; + [window setFrame:rect display:YES]; // only start tracking events if pointer is above the toplevel @@ -734,13 +690,16 @@ AWT_ASSERT_NOT_APPKIT_THREAD; if (maxW < 1) maxW = 1; if (maxH < 1) maxH = 1; - NSSize min = { minW, minH }; - NSSize max = { maxW, maxH }; - AWTWindow *window = OBJC(windowPtr); [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ AWT_ASSERT_APPKIT_THREAD; + NSSize min = { minW, minH }; + NSSize max = { maxW, maxH }; + + [window constrainSize:&min]; + [window constrainSize:&max]; + window.javaMinSize = min; window.javaMaxSize = max; [window updateMinMaxSize:IS(window.styleBits, RESIZABLE)]; @@ -830,7 +789,6 @@ AWT_ASSERT_NOT_APPKIT_THREAD; AWT_ASSERT_APPKIT_THREAD; [window setAlphaValue:alpha]; - [window.growBoxWindow setAlphaValue:alpha]; }]; JNF_COCOA_EXIT(env); From 8de79a6398c090209c3c7030831889bf954e56e2 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 6 Apr 2012 17:20:49 +0400 Subject: [PATCH 16/82] 7148275: [macosx] setIconImages() not working correctly (distorted icon when minimized) Pass all images provided by user code to the system and let it do the right thing Reviewed-by: art, swingler --- .../classes/sun/lwawt/macosx/CImage.java | 53 ++++++++++- .../sun/lwawt/macosx/CPlatformWindow.java | 6 +- jdk/src/macosx/native/sun/awt/CImage.m | 93 +++++++++++++++---- 3 files changed, 125 insertions(+), 27 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java index dea7082a7e1..425bd2c3e81 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java @@ -29,10 +29,14 @@ import java.awt.*; import java.awt.geom.Dimension2D; import java.awt.image.*; +import java.util.Arrays; +import java.util.List; + import sun.awt.image.SunWritableRaster; public class CImage extends CFRetainedResource { private static native long nativeCreateNSImageFromArray(int[] buffer, int w, int h); + private static native long nativeCreateNSImageFromArrays(int[][] buffers, int w[], int h[]); private static native long nativeCreateNSImageFromFileContents(String file); private static native long nativeCreateNSImageOfFileFromLaunchServices(String file); private static native long nativeCreateNSImageFromImageName(String name); @@ -93,8 +97,7 @@ public class CImage extends CFRetainedResource { return createImageUsingNativeSize(nativeCreateNSImageFromImageName(name)); } - // This is used to create a CImage from a Image - public CImage createFromImage(final Image image) { + private static int[] imageToArray(Image image) { if (image == null) return null; MediaTracker mt = new MediaTracker(new Label()); @@ -117,8 +120,50 @@ public class CImage extends CFRetainedResource { g2.setComposite(AlphaComposite.Src); g2.drawImage(image, 0, 0, null); g2.dispose(); - int[] buffer = ((DataBufferInt)bimg.getRaster().getDataBuffer()).getData(); - return new CImage(nativeCreateNSImageFromArray(buffer, w, h)); + return ((DataBufferInt)bimg.getRaster().getDataBuffer()).getData(); + } + + // This is used to create a CImage from a Image + public CImage createFromImage(final Image image) { + int[] buffer = imageToArray(image); + if (buffer == null) { + return null; + } + return new CImage(nativeCreateNSImageFromArray(buffer, image.getWidth(null), image.getHeight(null))); + } + + public CImage createFromImages(List images) { + if (images == null || images.isEmpty()) { + return null; + } + + int num = images.size(); + + int[][] buffers = new int[num][]; + int[] w = new int[num]; + int[] h = new int[num]; + + num = 0; + + for (Image img : images) { + buffers[num] = imageToArray(img); + if (buffers[num] == null) { + // Unable to process the image + continue; + } + w[num] = img.getWidth(null); + h[num] = img.getHeight(null); + num++; + } + + if (num == 0) { + return null; + } + + return new CImage(nativeCreateNSImageFromArrays( + Arrays.copyOf(buffers, num), + Arrays.copyOf(w, num), + Arrays.copyOf(h, num))); } static int getSelectorAsInt(final String fromString) { diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java index b4d98b2da22..588449858b4 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java @@ -810,11 +810,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo if (icons == null || icons.size() == 0) { return null; } - - // TODO: need a walk-through to find the best image. - // The best mean with higher resolution. Otherwise an icon looks bad. - final Image image = icons.get(0); - return CImage.getCreator().createFromImage(image); + return CImage.getCreator().createFromImages(icons); } /* diff --git a/jdk/src/macosx/native/sun/awt/CImage.m b/jdk/src/macosx/native/sun/awt/CImage.m index 787315ff27b..64a6f3c4ec1 100644 --- a/jdk/src/macosx/native/sun/awt/CImage.m +++ b/jdk/src/macosx/native/sun/awt/CImage.m @@ -70,19 +70,8 @@ static void CImage_CopyNSImageIntoArray [oldContext release]; } -/* - * Class: sun_lwawt_macosx_CImage - * Method: nativeCreateNSImageFromArray - * Signature: ([III)J - */ -JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArray -(JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) +static NSBitmapImageRep* CImage_CreateImageRep(JNIEnv *env, jintArray buffer, jint width, jint height) { - jlong result = 0L; - -JNF_COCOA_ENTER(env); -AWT_ASSERT_ANY_THREAD; - NSBitmapImageRep* imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL pixelsWide:width pixelsHigh:height @@ -105,15 +94,83 @@ AWT_ASSERT_ANY_THREAD; (*env)->ReleasePrimitiveArrayCritical(env, buffer, src, JNI_ABORT); - NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - [nsImage addRepresentation:imageRep]; - [imageRep release]; + return imageRep; +} - if (nsImage != nil) { - CFRetain(nsImage); // GC +/* + * Class: sun_lwawt_macosx_CImage + * Method: nativeCreateNSImageFromArray + * Signature: ([III)J + */ +JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArray +(JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) +{ + jlong result = 0L; + +JNF_COCOA_ENTER(env); +AWT_ASSERT_ANY_THREAD; + + NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, width, height); + if (imageRep) { + NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + [nsImage addRepresentation:imageRep]; + [imageRep release]; + + if (nsImage != nil) { + CFRetain(nsImage); // GC + } + + result = ptr_to_jlong(nsImage); } - result = ptr_to_jlong(nsImage); +JNF_COCOA_EXIT(env); + + return result; +} + +/* + * Class: sun_lwawt_macosx_CImage + * Method: nativeCreateNSImageFromArrays + * Signature: ([[I[I[I)J + */ +JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArrays +(JNIEnv *env, jclass klass, jobjectArray buffers, jintArray widths, jintArray heights) +{ + jlong result = 0L; + +JNF_COCOA_ENTER(env); +AWT_ASSERT_ANY_THREAD; + + jsize num = (*env)->GetArrayLength(env, buffers); + NSMutableArray * reps = [NSMutableArray arrayWithCapacity: num]; + + jint * ws = (*env)->GetIntArrayElements(env, widths, NULL); + jint * hs = (*env)->GetIntArrayElements(env, heights, NULL); + + jsize i; + for (i = 0; i < num; i++) { + jintArray buffer = (*env)->GetObjectArrayElement(env, buffers, i); + + NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, ws[i], hs[i]); + if (imageRep) { + [reps addObject: imageRep]; + } + } + + (*env)->ReleaseIntArrayElements(env, heights, hs, JNI_ABORT); + (*env)->ReleaseIntArrayElements(env, widths, ws, JNI_ABORT); + + if ([reps count]) { + NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(0, 0)]; + [nsImage addRepresentations: reps]; + [reps release]; + + if (nsImage != nil) { + CFRetain(nsImage); // GC + } + + result = ptr_to_jlong(nsImage); + } JNF_COCOA_EXIT(env); From 9eb83db3dd79ed0440402501628e8c8224b07ba6 Mon Sep 17 00:00:00 2001 From: Sonali Goel Date: Fri, 6 Apr 2012 10:10:44 -0700 Subject: [PATCH 17/82] 7157626: Create a new test to check major version for a class file Reviewed-by: jjg --- .../javac/classfiles/ClassVersionChecker.java | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 langtools/test/tools/javac/classfiles/ClassVersionChecker.java diff --git a/langtools/test/tools/javac/classfiles/ClassVersionChecker.java b/langtools/test/tools/javac/classfiles/ClassVersionChecker.java new file mode 100644 index 00000000000..c397f019374 --- /dev/null +++ b/langtools/test/tools/javac/classfiles/ClassVersionChecker.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2012, 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 7157626 + * @summary Test major version for all legal combinations for -source and -target + * @author sgoel + * + */ + +import java.io.*; +import java.nio.*; +import java.util.*; +import java.util.regex.*; + +public class ClassVersionChecker { + + int errors; + String[] jdk = {"","1.2","1.3","1.4","1.5","1.6","1.7","1.8"}; + File javaFile = null; + + public static void main(String[] args) throws Throwable { + new ClassVersionChecker().run(); + } + + void run() throws Exception { + writeTestFile(); + /* Rules applicable for -source and -target combinations + * 1. If both empty, version num is for 1.7 + * 2. If source is not empty and target is empty, version is based on source + * 3. If both non-empty, version is based on target + */ + + /* -source (0=>empty,1=>1.2,...) X -target (0=>empty,1=>1.2,...) + * ver[0][0] => no -source or -target was given + * -1 => invalid combinations + */ + int[][] ver = + {{51, -1, -1, -1, -1, -1, -1, -1}, + {48, 46, 47, 48, 49, 50, 51, 51}, + {48, 46, 47, 48, 49, 50, 51, 51}, + {48, -1, -1, 48, 49, 50, 51, 51}, + {51, -1, -1, -1, 49, 50, 51, 51}, + {51, -1, -1, -1, -1, 50, 51, 51}, + {51, -1, -1, -1, -1, -1, 51, 51}, + {51, -1, -1, -1, -1, -1, -1, 51}}; + + // Loop to run all possible combinations of source/target values + for (int i = 0; i< ver.length; i++) { + for (int j = 0 ; j< ver[i].length; j++) { + if(ver[i][j] != -1) { + logMsg("Index values for i = " + i + " j = " + j); + logMsg("Running for src = " + jdk[i] + " target = "+jdk[j] +" expected = " + ver[i][j]); + test(i,j, ver[i][j]); + } + } + } + + if (errors > 0) + throw new Exception(errors + " errors found"); + } + + void test (int i, int j, int expected) { + File classFile = compileTestFile(i, j, javaFile); + short majorVer = getMajorVersion(classFile); + checkVersion(majorVer, expected); + } + + void writeTestFile() throws IOException { + javaFile = new File("Test.java"); + try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(javaFile)));) { + out.println("class Test { "); + out.println(" public void foo() { }"); + out.println("}"); + } catch (IOException ioe) { + error("IOException while creating Test.java" + ioe); + } + } + + File compileTestFile(int i , int j, File f) { + int rc = -1; + // Src and target are empty + if (i == 0 && j == 0 ) { + rc = compile("-g", f.getPath()); + } else if( j == 0 ) { // target is empty + rc = compile("-source", jdk[i], "-g", f.getPath()); + } else { + rc = compile("-source", jdk[i], "-target", jdk[j], "-g", f.getPath()); + } + if (rc != 0) + throw new Error("compilation failed. rc=" + rc); + String path = f.getPath(); + return new File(path.substring(0, path.length() - 5) + ".class"); + } + + int compile(String... args) { + return com.sun.tools.javac.Main.compile(args); + } + + void logMsg (String str) { + System.out.println(str); + } + + short getMajorVersion(File f) { + List args = new ArrayList(); + short majorVer = 0; + try(DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(f)));) { + in.readInt(); + in.readShort(); + majorVer = in.readShort(); + System.out.println("major version:" + majorVer); + } catch (IOException e) { + error("IOException while reading Test.class" + e); + } + return majorVer; + } + + void checkVersion(short majorVer, int expected) { + if (majorVer != expected ) { + error("versions did not match, Expected: " + expected + "Got: " + majorVer); + } + } + + void error(String msg) { + System.out.println("error: " + msg); + errors++; + } +} From 023ad06e46f1126728c230b4330075f854975a89 Mon Sep 17 00:00:00 2001 From: Alejandro Murillo Date: Sat, 7 Apr 2012 09:06:55 -0700 Subject: [PATCH 18/82] 7159842: new hotspot build - hs24-b08 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 27ff9dd9a6a..00601747489 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2011 HS_MAJOR_VER=24 HS_MINOR_VER=0 -HS_BUILD_NUMBER=07 +HS_BUILD_NUMBER=08 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 From 0f0e273e0d9ffa64fb00d0110d8251fc0683e437 Mon Sep 17 00:00:00 2001 From: Jan Lahoda Date: Mon, 9 Apr 2012 14:31:18 -0700 Subject: [PATCH 19/82] 7156633: (javac) incorrect errors when parsing variable declaration in block statements Reviewed-by: jjg --- .../sun/tools/javac/parser/JavacParser.java | 206 ++++++++++-------- .../tools/javac/resources/compiler.properties | 9 + .../diags/examples/IllegalStartOfStmt.java | 31 +++ .../javac/diags/examples/NotAllowedClass.java | 31 +++ .../diags/examples/NotAllowedVariable.java | 31 +++ .../tools/javac/parser/JavacParserTest.java | 58 ++++- 6 files changed, 274 insertions(+), 92 deletions(-) create mode 100644 langtools/test/tools/javac/diags/examples/IllegalStartOfStmt.java create mode 100644 langtools/test/tools/javac/diags/examples/NotAllowedClass.java create mode 100644 langtools/test/tools/javac/diags/examples/NotAllowedVariable.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java index 561626efd89..9e74b71c61c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java +++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2012, 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 @@ -1798,92 +1798,126 @@ public class JavacParser implements Parser { */ @SuppressWarnings("fallthrough") List blockStatements() { -//todo: skip to anchor on error(?) - int lastErrPos = -1; + //todo: skip to anchor on error(?) ListBuffer stats = new ListBuffer(); while (true) { - int pos = token.pos; - switch (token.kind) { - case RBRACE: case CASE: case DEFAULT: case EOF: + List stat = blockStatement(); + if (stat.isEmpty()) { return stats.toList(); - case LBRACE: case IF: case FOR: case WHILE: case DO: case TRY: - case SWITCH: case SYNCHRONIZED: case RETURN: case THROW: case BREAK: - case CONTINUE: case SEMI: case ELSE: case FINALLY: case CATCH: - stats.append(parseStatement()); - break; - case MONKEYS_AT: - case FINAL: { - String dc = token.comment(CommentStyle.JAVADOC); - JCModifiers mods = modifiersOpt(); - if (token.kind == INTERFACE || - token.kind == CLASS || - allowEnums && token.kind == ENUM) { - stats.append(classOrInterfaceOrEnumDeclaration(mods, dc)); - } else { - JCExpression t = parseType(); - stats.appendList(variableDeclarators(mods, t, - new ListBuffer())); - // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon - storeEnd(stats.elems.last(), token.endPos); - accept(SEMI); - } - break; - } - case ABSTRACT: case STRICTFP: { - String dc = token.comment(CommentStyle.JAVADOC); - JCModifiers mods = modifiersOpt(); - stats.append(classOrInterfaceOrEnumDeclaration(mods, dc)); - break; - } - case INTERFACE: - case CLASS: - String dc = token.comment(CommentStyle.JAVADOC); - stats.append(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc)); - break; - case ENUM: - case ASSERT: - if (allowEnums && token.kind == ENUM) { - error(token.pos, "local.enum"); - dc = token.comment(CommentStyle.JAVADOC); - stats.append(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc)); - break; - } else if (allowAsserts && token.kind == ASSERT) { - stats.append(parseStatement()); - break; - } - /* fall through to default */ - default: - Token prevToken = token; - JCExpression t = term(EXPR | TYPE); - if (token.kind == COLON && t.hasTag(IDENT)) { - nextToken(); - JCStatement stat = parseStatement(); - stats.append(F.at(pos).Labelled(prevToken.name(), stat)); - } else if ((lastmode & TYPE) != 0 && - (token.kind == IDENTIFIER || - token.kind == ASSERT || - token.kind == ENUM)) { - pos = token.pos; - JCModifiers mods = F.at(Position.NOPOS).Modifiers(0); - F.at(pos); - stats.appendList(variableDeclarators(mods, t, - new ListBuffer())); - // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon - storeEnd(stats.elems.last(), token.endPos); - accept(SEMI); - } else { - // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon - stats.append(to(F.at(pos).Exec(checkExprStat(t)))); - accept(SEMI); + } else { + if (token.pos <= endPosTable.errorEndPos) { + skip(false, true, true, true); } + stats.addAll(stat); } + } + } - // error recovery - if (token.pos == lastErrPos) + /* + * This method parses a statement treating it as a block, relaxing the + * JLS restrictions, allows us to parse more faulty code, doing so + * enables us to provide better and accurate diagnostics to the user. + */ + JCStatement parseStatementAsBlock() { + int pos = token.pos; + List stats = blockStatement(); + if (stats.isEmpty()) { + JCErroneous e = F.at(pos).Erroneous(); + error(e, "illegal.start.of.stmt"); + return F.at(pos).Exec(e); + } else { + JCStatement first = stats.head; + String error = null; + switch (first.getTag()) { + case CLASSDEF: + error = "class.not.allowed"; + break; + case VARDEF: + error = "variable.not.allowed"; + break; + } + if (error != null) { + error(first, error); + List blist = List.of(F.at(first.pos).Block(0, stats)); + return toP(F.at(pos).Exec(F.at(first.pos).Erroneous(blist))); + } + return first; + } + } + + @SuppressWarnings("fallthrough") + List blockStatement() { + //todo: skip to anchor on error(?) + int pos = token.pos; + switch (token.kind) { + case RBRACE: case CASE: case DEFAULT: case EOF: + return List.nil(); + case LBRACE: case IF: case FOR: case WHILE: case DO: case TRY: + case SWITCH: case SYNCHRONIZED: case RETURN: case THROW: case BREAK: + case CONTINUE: case SEMI: case ELSE: case FINALLY: case CATCH: + return List.of(parseStatement()); + case MONKEYS_AT: + case FINAL: { + String dc = token.comment(CommentStyle.JAVADOC); + JCModifiers mods = modifiersOpt(); + if (token.kind == INTERFACE || + token.kind == CLASS || + allowEnums && token.kind == ENUM) { + return List.of(classOrInterfaceOrEnumDeclaration(mods, dc)); + } else { + JCExpression t = parseType(); + ListBuffer stats = + variableDeclarators(mods, t, new ListBuffer()); + // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon + storeEnd(stats.elems.last(), token.endPos); + accept(SEMI); return stats.toList(); - if (token.pos <= endPosTable.errorEndPos) { - skip(false, true, true, true); - lastErrPos = token.pos; + } + } + case ABSTRACT: case STRICTFP: { + String dc = token.comment(CommentStyle.JAVADOC); + JCModifiers mods = modifiersOpt(); + return List.of(classOrInterfaceOrEnumDeclaration(mods, dc)); + } + case INTERFACE: + case CLASS: + String dc = token.comment(CommentStyle.JAVADOC); + return List.of(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc)); + case ENUM: + case ASSERT: + if (allowEnums && token.kind == ENUM) { + error(token.pos, "local.enum"); + dc = token.comment(CommentStyle.JAVADOC); + return List.of(classOrInterfaceOrEnumDeclaration(modifiersOpt(), dc)); + } else if (allowAsserts && token.kind == ASSERT) { + return List.of(parseStatement()); + } + /* fall through to default */ + default: + Token prevToken = token; + JCExpression t = term(EXPR | TYPE); + if (token.kind == COLON && t.hasTag(IDENT)) { + nextToken(); + JCStatement stat = parseStatement(); + return List.of(F.at(pos).Labelled(prevToken.name(), stat)); + } else if ((lastmode & TYPE) != 0 && + (token.kind == IDENTIFIER || + token.kind == ASSERT || + token.kind == ENUM)) { + pos = token.pos; + JCModifiers mods = F.at(Position.NOPOS).Modifiers(0); + F.at(pos); + ListBuffer stats = + variableDeclarators(mods, t, new ListBuffer()); + // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon + storeEnd(stats.elems.last(), token.endPos); + accept(SEMI); + return stats.toList(); + } else { + // This Exec is an "ExpressionStatement"; it subsumes the terminating semicolon + JCExpressionStatement expr = to(F.at(pos).Exec(checkExprStat(t))); + accept(SEMI); + return List.of(expr); } } } @@ -1917,11 +1951,11 @@ public class JavacParser implements Parser { case IF: { nextToken(); JCExpression cond = parExpression(); - JCStatement thenpart = parseStatement(); + JCStatement thenpart = parseStatementAsBlock(); JCStatement elsepart = null; if (token.kind == ELSE) { nextToken(); - elsepart = parseStatement(); + elsepart = parseStatementAsBlock(); } return F.at(pos).If(cond, thenpart, elsepart); } @@ -1938,7 +1972,7 @@ public class JavacParser implements Parser { accept(COLON); JCExpression expr = parseExpression(); accept(RPAREN); - JCStatement body = parseStatement(); + JCStatement body = parseStatementAsBlock(); return F.at(pos).ForeachLoop(var, expr, body); } else { accept(SEMI); @@ -1946,19 +1980,19 @@ public class JavacParser implements Parser { accept(SEMI); List steps = token.kind == RPAREN ? List.nil() : forUpdate(); accept(RPAREN); - JCStatement body = parseStatement(); + JCStatement body = parseStatementAsBlock(); return F.at(pos).ForLoop(inits, cond, steps, body); } } case WHILE: { nextToken(); JCExpression cond = parExpression(); - JCStatement body = parseStatement(); + JCStatement body = parseStatementAsBlock(); return F.at(pos).WhileLoop(cond, body); } case DO: { nextToken(); - JCStatement body = parseStatement(); + JCStatement body = parseStatementAsBlock(); accept(WHILE); JCExpression cond = parExpression(); JCDoWhileLoop t = to(F.at(pos).DoLoop(body, cond)); diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties index 334276757ea..9d25a94de44 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties @@ -196,6 +196,9 @@ compiler.err.catch.without.try=\ compiler.err.clash.with.pkg.of.same.name=\ {0} {1} clashes with package of same name +compiler.err.class.not.allowed=\ + class, interface or enum declaration not allowed here + compiler.err.const.expr.req=\ constant expression required @@ -385,6 +388,9 @@ compiler.err.illegal.qual.not.icls=\ compiler.err.illegal.start.of.expr=\ illegal start of expression +compiler.err.illegal.start.of.stmt=\ + illegal start of statement + compiler.err.illegal.start.of.type=\ illegal start of type @@ -446,6 +452,9 @@ compiler.err.invalid.meth.decl.ret.type.req=\ compiler.err.varargs.and.old.array.syntax=\ legacy array notation not allowed on variable-arity parameter +compiler.err.variable.not.allowed=\ + variable declaration not allowed here + # 0: name compiler.err.label.already.in.use=\ label {0} already in use diff --git a/langtools/test/tools/javac/diags/examples/IllegalStartOfStmt.java b/langtools/test/tools/javac/diags/examples/IllegalStartOfStmt.java new file mode 100644 index 00000000000..5f29f48fe03 --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/IllegalStartOfStmt.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.err.illegal.start.of.stmt +// key: compiler.err.expected3 + +class IllegalStartOfStmt { + void m() { + if (true) } + } +} diff --git a/langtools/test/tools/javac/diags/examples/NotAllowedClass.java b/langtools/test/tools/javac/diags/examples/NotAllowedClass.java new file mode 100644 index 00000000000..3801dfd84aa --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/NotAllowedClass.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.err.class.not.allowed + +class NotAllowedClass { + void t1() { + if (true) + class X {} + } +} diff --git a/langtools/test/tools/javac/diags/examples/NotAllowedVariable.java b/langtools/test/tools/javac/diags/examples/NotAllowedVariable.java new file mode 100644 index 00000000000..a2a1f7adb11 --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/NotAllowedVariable.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.err.variable.not.allowed + +class NotAllowedVariable { + void t1() { + if (true) + int x = 0; + } +} diff --git a/langtools/test/tools/javac/parser/JavacParserTest.java b/langtools/test/tools/javac/parser/JavacParserTest.java index 7cfd0070ab8..c297556fa78 100644 --- a/langtools/test/tools/javac/parser/JavacParserTest.java +++ b/langtools/test/tools/javac/parser/JavacParserTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -596,8 +596,8 @@ public class JavacParserTest extends TestCase { public void testVariableInIfThen3() throws IOException { String code = "package t; class Test { "+ - "private static void t(String name) { " + - "if (name != null) abstract } }"; + "private static void t() { " + + "if (true) abstract class F {} }}"; DiagnosticCollector coll = new DiagnosticCollector(); JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null, @@ -612,7 +612,51 @@ public class JavacParserTest extends TestCase { } assertEquals("testVariableInIfThen3", - Arrays.asList("compiler.err.illegal.start.of.expr"), + Arrays.asList("compiler.err.class.not.allowed"), codes); + } + + public void testVariableInIfThen4() throws IOException { + + String code = "package t; class Test { "+ + "private static void t(String name) { " + + "if (name != null) interface X {} } }"; + DiagnosticCollector coll = + new DiagnosticCollector(); + JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null, + null, Arrays.asList(new MyFileObject(code))); + + ct.parse(); + + List codes = new LinkedList(); + + for (Diagnostic d : coll.getDiagnostics()) { + codes.add(d.getCode()); + } + + assertEquals("testVariableInIfThen4", + Arrays.asList("compiler.err.class.not.allowed"), codes); + } + + public void testVariableInIfThen5() throws IOException { + + String code = "package t; class Test { "+ + "private static void t() { " + + "if (true) } }"; + DiagnosticCollector coll = + new DiagnosticCollector(); + JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null, + null, Arrays.asList(new MyFileObject(code))); + + ct.parse(); + + List codes = new LinkedList(); + + for (Diagnostic d : coll.getDiagnostics()) { + codes.add(d.getCode()); + } + + assertEquals("testVariableInIfThen5", + Arrays.asList("compiler.err.illegal.start.of.stmt"), codes); } @@ -808,8 +852,6 @@ public class JavacParserTest extends TestCase { testPositionBrokenSource126732b(); // Fails, these tests yet to be addressed - testVariableInIfThen1(); - testVariableInIfThen2(); testPositionForEnumModifiers(); testStartPositionEnumConstantInit(); } @@ -821,7 +863,11 @@ public class JavacParserTest extends TestCase { testPreferredPositionForBinaryOp(); testStartPositionForMethodWithoutModifiers(); testVarPos(); + testVariableInIfThen1(); + testVariableInIfThen2(); testVariableInIfThen3(); + testVariableInIfThen4(); + testVariableInIfThen5(); testMissingExponent(); testTryResourcePos(); testOperatorMissingError(); From 79f8fba3f9ff4c094f5db4b3bc8852ab78e54562 Mon Sep 17 00:00:00 2001 From: Sean Zhou Date: Tue, 10 Apr 2012 10:17:36 +0800 Subject: [PATCH 20/82] 7121314: Behavior mismatch between AbstractCollection.toArray(T[] ) and its spec Co-authored-by: Ulf Zibis Co-authored-by: David Holmes Reviewed-by: dholmes, mduigou --- .../classes/java/util/AbstractCollection.java | 14 +- .../util/AbstractCollection/ToArrayTest.java | 215 ++++++++++++++++++ 2 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 jdk/test/java/util/AbstractCollection/ToArrayTest.java diff --git a/jdk/src/share/classes/java/util/AbstractCollection.java b/jdk/src/share/classes/java/util/AbstractCollection.java index 2ae70f7ec93..a32d41156a3 100644 --- a/jdk/src/share/classes/java/util/AbstractCollection.java +++ b/jdk/src/share/classes/java/util/AbstractCollection.java @@ -180,13 +180,21 @@ public abstract class AbstractCollection implements Collection { for (int i = 0; i < r.length; i++) { if (! it.hasNext()) { // fewer elements than expected - if (a != r) + if (a == r) { + r[i] = null; // null-terminate + } else if (a.length < i) { return Arrays.copyOf(r, i); - r[i] = null; // null-terminate - return r; + } else { + System.arraycopy(r, 0, a, 0, i); + if (a.length > i) { + a[i] = null; + } + } + return a; } r[i] = (T)it.next(); } + // more elements than expected return it.hasNext() ? finishToArray(r, it) : r; } diff --git a/jdk/test/java/util/AbstractCollection/ToArrayTest.java b/jdk/test/java/util/AbstractCollection/ToArrayTest.java new file mode 100644 index 00000000000..1cbf66fdf15 --- /dev/null +++ b/jdk/test/java/util/AbstractCollection/ToArrayTest.java @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2012 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 7121314 + * @summary AbstractCollection.toArray(T[]) doesn't return the given array + * in concurrent modification. + * @author Ulf Zibis, David Holmes + */ + +import java.util.AbstractCollection; +import java.util.Arrays; +import java.util.Iterator; + +public class ToArrayTest { + + static class TestCollection extends AbstractCollection { + private final E[] elements; + private int[] sizes; + private int nextSize; + + public TestCollection(E[] elements) { + this.elements = elements; + setSizeSequence(new int[] { elements.length }); + } + + /* + * Sets the values that size() will return on each use. The next + * call to size will return sizes[0], then sizes[1] etc. This allows us + * to emulate a concurrent change to the contents of the collection + * without having to perform concurrent changes. If sizes[n+1] contains + * a larger value, the collection will appear to have shrunk when + * iterated; if a smaller value then the collection will appear to have + * grown when iterated. + */ + void setSizeSequence(int... sizes) { + this.sizes = sizes; + nextSize = 0; + } + + /* can change collection's size after each invocation */ + @Override + public int size() { + return sizes[nextSize == sizes.length - 1 ? nextSize : nextSize++]; + } + + @Override + public Iterator iterator() { + return new Iterator() { + int pos = 0; + + public boolean hasNext() { + return pos < sizes[nextSize]; + } + public E next() { + return elements[pos++]; + } + public void remove() { + throw new UnsupportedOperationException( + "Not supported yet."); + } + }; + } + } + + static final Object[] OBJECTS = { new Object(), new Object(), new Object() }; + static final TestCollection CANDIDATE = new TestCollection(OBJECTS); + static final int CAP = OBJECTS.length; // capacity of the CANDIDATE + static final int LAST = CAP - 1; // last possible array index + Object[] a; + Object[] res; + + int last() { + return a.length - 1; + } + + protected void test() throws Throwable { + // Check array type conversion + res = new TestCollection<>(new Object[] { "1", "2" }).toArray(new String[0]); + check(res instanceof String[]); + check(res.length == 2); + check(res[1] == "2"); + + // Check incompatible type of target array + try { + res = CANDIDATE.toArray(new String[CAP]); + check(false); + } catch (Throwable t) { + check(t instanceof ArrayStoreException); + } + + // Check more elements than a.length + a = new Object[CAP - 1]; // appears too small + res = CANDIDATE.toArray(a); + check(res != a); + check(res[LAST] != null); + + // Check equal elements as a.length + a = new Object[CAP]; // appears to match + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] != null); + + // Check equal elements as a.length + a = new Object[CAP + 1]; // appears too big + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] == null); + + // Check less elements than expected, but more than a.length + a = new Object[CAP - 2]; // appears too small + CANDIDATE.setSizeSequence(CAP, CAP - 1); + res = CANDIDATE.toArray(a); + check(res != a); + check(res.length == CAP - 1); + check(res[LAST - 1] != null); + + // Check less elements than expected, but equal as a.length + a = Arrays.copyOf(OBJECTS, CAP); // appears to match + CANDIDATE.setSizeSequence(CAP, CAP - 1); + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] == null); + + // Check more elements than expected and more than a.length + a = new Object[CAP - 1]; // appears to match + CANDIDATE.setSizeSequence(CAP - 1, CAP); + res = CANDIDATE.toArray(a); + check(res != a); + check(res[LAST] != null); + + // Check more elements than expected, but equal as a.length + a = new Object[CAP - 1]; // appears to match + CANDIDATE.setSizeSequence(CAP - 2, CAP - 1); + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] != null); + + // Check more elements than expected, but less than a.length + a = Arrays.copyOf(OBJECTS, CAP); // appears to match + CANDIDATE.setSizeSequence(CAP - 2, CAP - 1); + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] == null); + + test_7121314(); + } + + /* + * Major target of this testcase, bug 7121314. + */ + protected void test_7121314() throws Throwable { + // Check equal elements as a.length, but less than expected + a = new Object[CAP - 1]; // appears too small + CANDIDATE.setSizeSequence(CAP, CAP - 1); + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] != null); + + // Check less elements than a.length and less than expected + a = Arrays.copyOf(OBJECTS, CAP - 1); // appears too small + CANDIDATE.setSizeSequence(CAP, CAP - 2); + res = CANDIDATE.toArray(a); + check(res == a); + check(res[last()] == null); + + } + + public static void main(String[] args) throws Throwable { + ToArrayTest testcase = new ToArrayTest(); + try { + testcase.test(); + } catch (Throwable t) { + unexpected(t); + } + + System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); + if (failed > 0) throw new Exception("Some tests failed"); + } + + //--------------------- Infrastructure --------------------------- + static volatile int passed = 0, failed = 0; + static void pass() { passed++; } + static void fail() { failed++; Thread.dumpStack(); } + static void fail(String msg) { System.out.println(msg); fail(); } + static void unexpected(Throwable t) { failed++; t.printStackTrace(); } + static void check(boolean cond) { if (cond) pass(); else fail(); } + static void equal(Object x, Object y) { + if (x == null ? y == null : x.equals(y)) pass(); + else {System.out.println(x + " not equal to " + y); fail(); } + } +} + + From 9c8af427e8d203cc87a852758deb8de8866aab4b Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 10 Apr 2012 12:15:03 +0800 Subject: [PATCH 21/82] 7158329: NPE in sun.security.krb5.Credentials.acquireDefaultCreds() Reviewed-by: valeriep, jjg --- .../sun/security/krb5/Credentials.java | 29 ++++--- .../sun/security/krb5/ccache/EmptyCC.java | 83 +++++++++++++++++++ 2 files changed, 101 insertions(+), 11 deletions(-) create mode 100644 jdk/test/sun/security/krb5/ccache/EmptyCC.java diff --git a/jdk/src/share/classes/sun/security/krb5/Credentials.java b/jdk/src/share/classes/sun/security/krb5/Credentials.java index 15328cdaecf..3414e2f6e72 100644 --- a/jdk/src/share/classes/sun/security/krb5/Credentials.java +++ b/jdk/src/share/classes/sun/security/krb5/Credentials.java @@ -330,12 +330,17 @@ public class Credentials { CredentialsCache ccache = CredentialsCache.getInstance(princ, ticketCache); - if (ccache == null) + if (ccache == null) { return null; + } sun.security.krb5.internal.ccache.Credentials tgtCred = ccache.getDefaultCreds(); + if (tgtCred == null) { + return null; + } + if (EType.isSupported(tgtCred.getEType())) { return tgtCred.setKrbCreds(); } else { @@ -375,19 +380,21 @@ public class Credentials { cache = CredentialsCache.getInstance(); } if (cache != null) { - if (DEBUG) { - System.out.println(">>> KrbCreds found the default ticket " + - "granting ticket in credential cache."); - } sun.security.krb5.internal.ccache.Credentials temp = cache.getDefaultCreds(); - if (EType.isSupported(temp.getEType())) { - result = temp.setKrbCreds(); - } else { + if (temp != null) { if (DEBUG) { - System.out.println( - ">>> unsupported key type found the default TGT: " + - temp.getEType()); + System.out.println(">>> KrbCreds found the default ticket" + + " granting ticket in credential cache."); + } + if (EType.isSupported(temp.getEType())) { + result = temp.setKrbCreds(); + } else { + if (DEBUG) { + System.out.println( + ">>> unsupported key type found the default TGT: " + + temp.getEType()); + } } } } diff --git a/jdk/test/sun/security/krb5/ccache/EmptyCC.java b/jdk/test/sun/security/krb5/ccache/EmptyCC.java new file mode 100644 index 00000000000..d5bfc008651 --- /dev/null +++ b/jdk/test/sun/security/krb5/ccache/EmptyCC.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2012, 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 7158329 + * @summary NPE in sun.security.krb5.Credentials.acquireDefaultCreds() + * @compile -XDignore.symbol.file EmptyCC.java + * @run main EmptyCC + */ +import java.io.File; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import sun.security.krb5.Credentials; +import sun.security.krb5.PrincipalName; +import sun.security.krb5.internal.ccache.CredentialsCache; + +public class EmptyCC { + public static void main(String[] args) throws Exception { + final PrincipalName pn = new PrincipalName("dummy@FOO.COM"); + final String ccache = "tmpcc"; + + if (args.length == 0) { + // Main process, write the ccache and launch sub process + CredentialsCache cache = CredentialsCache.create(pn, ccache); + cache.save(); + + // java -cp $test.classes EmptyCC readcc + ProcessBuilder pb = new ProcessBuilder( + new File(new File(System.getProperty("java.home"), "bin"), + "java").getPath(), + "-cp", + System.getProperty("test.classes"), + "EmptyCC", + "readcc" + ); + + pb.environment().put("KRB5CCNAME", ccache); + pb.redirectErrorStream(true); + + Process p = pb.start(); + try (InputStream ins = p.getInputStream()) { + byte[] buf = new byte[8192]; + int n; + while ((n = ins.read(buf)) > 0) { + System.out.write(buf, 0, n); + } + } + if (p.waitFor() != 0) { + throw new Exception("Test failed"); + } + } else { + // Sub process, read the ccache + String cc = System.getenv("KRB5CCNAME"); + if (!cc.equals(ccache)) { + throw new Exception("env not set correctly"); + } + Credentials.acquireTGTFromCache(pn, null); + } + } +} From 2c28d27dcf7d24cbdd262b39e33aee66cee864b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Gr=C3=B6nlund?= Date: Tue, 10 Apr 2012 10:32:00 +0200 Subject: [PATCH 22/82] 7154809: JDI: update JDI/JDB debugee commandline option parsing Update debugee commandline parsing Reviewed-by: dcubed, dsamersoff, sla --- .../tools/example/debug/tty/VMConnection.java | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java index 73a075b172b..34a0037f7ca 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java @@ -114,6 +114,23 @@ class VMConnection { String value = token.substring(index + 1, token.length() - 1); // Remove comma delimiter + /* + * for values enclosed in quotes (single and/or double quotes) + * strip off enclosing quote chars + * needed for quote enclosed delimited substrings + */ + if (name.equals("options")) { + StringBuilder sb = new StringBuilder(); + for (String s : splitStringAtNonEnclosedWhiteSpace(value)) { + while (isEnclosed(s, "\"") || isEnclosed(s, "'")) { + s = s.substring(1, s.length() - 1); + } + sb.append(s); + sb.append(" "); + } + value = sb.toString(); + } + Connector.Argument argument = arguments.get(name); if (argument == null) { throw new IllegalArgumentException @@ -136,6 +153,152 @@ class VMConnection { return arguments; } + private static boolean isEnclosed(String value, String enclosingChar) { + if (value.indexOf(enclosingChar) == 0) { + int lastIndex = value.lastIndexOf(enclosingChar); + if (lastIndex > 0 && lastIndex == value.length() - 1) { + return true; + } + } + return false; + } + + private static List splitStringAtNonEnclosedWhiteSpace(String value) throws IllegalArgumentException { + List al = new ArrayList(); + char[] arr; + int startPosition = 0; + int endPosition = 0; + final char SPACE = ' '; + final char DOUBLEQ = '"'; + final char SINGLEQ = '\''; + + /* + * An "open" or "active" enclosing state is where + * the first valid start quote qualifier is found, + * and there is a search in progress for the + * relevant end matching quote + * + * enclosingTargetChar set to SPACE + * is used to signal a non open enclosing state + */ + char enclosingTargetChar = SPACE; + + if (value == null) { + throw new IllegalArgumentException + (MessageOutput.format("value string is null")); + } + + // split parameter string into individual chars + arr = value.toCharArray(); + + for (int i = 0; i < arr.length; i++) { + switch (arr[i]) { + case SPACE: { + // do nothing for spaces + // unless last in array + if (isLastChar(arr, i)) { + endPosition = i; + // break for substring creation + break; + } + continue; + } + case DOUBLEQ: + case SINGLEQ: { + if (enclosingTargetChar == arr[i]) { + // potential match to close open enclosing + if (isNextCharWhitespace(arr, i)) { + // if peek next is whitespace + // then enclosing is a valid substring + endPosition = i; + // reset enclosing target char + enclosingTargetChar = SPACE; + // break for substring creation + break; + } + } + if (enclosingTargetChar == SPACE) { + // no open enclosing state + // handle as normal char + if (isPreviousCharWhitespace(arr, i)) { + startPosition = i; + // peek forward for end candidates + if (value.indexOf(arr[i], i + 1) >= 0) { + // set open enclosing state by + // setting up the target char + enclosingTargetChar = arr[i]; + } else { + // no more target chars left to match + // end enclosing, handle as normal char + if (isNextCharWhitespace(arr, i)) { + endPosition = i; + // break for substring creation + break; + } + } + } + } + continue; + } + default: { + // normal non-space, non-" and non-' chars + if (enclosingTargetChar == SPACE) { + // no open enclosing state + if (isPreviousCharWhitespace(arr, i)) { + // start of space delim substring + startPosition = i; + } + if (isNextCharWhitespace(arr, i)) { + // end of space delim substring + endPosition = i; + // break for substring creation + break; + } + } + continue; + } + } + + // break's end up here + if (startPosition > endPosition) { + throw new IllegalArgumentException + (MessageOutput.format("Illegal option values")); + } + + // extract substring and add to List + al.add(value.substring(startPosition, ++endPosition)); + + // set new start position + i = startPosition = endPosition; + + } // for loop + + return al; + } + + static private boolean isPreviousCharWhitespace(char[] arr, int curr_pos) { + return isCharWhitespace(arr, curr_pos - 1); + } + + static private boolean isNextCharWhitespace(char[] arr, int curr_pos) { + return isCharWhitespace(arr, curr_pos + 1); + } + + static private boolean isCharWhitespace(char[] arr, int pos) { + if (pos < 0 || pos >= arr.length) { + // outside arraybounds is considered an implicit space + return true; + } + if (arr[pos] == ' ') { + return true; + } + return false; + } + + static private boolean isLastChar(char[] arr, int pos) { + return (pos + 1 == arr.length); + } + VMConnection(String connectSpec, int traceFlags) { String nameString; String argString; From 8a66dbf0776d7418bfef855abe722b01d0d4e480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20Borggr=C3=A9n-Franck?= Date: Tue, 10 Apr 2012 10:45:56 +0200 Subject: [PATCH 23/82] 7158930: (ann) library support for repeating annotations is not built when compiling the JDK Reviewed-by: ohair, erikj --- jdk/make/java/java/reflect/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/make/java/java/reflect/Makefile b/jdk/make/java/java/reflect/Makefile index 40bd886c081..6dfceb8bd5e 100644 --- a/jdk/make/java/java/reflect/Makefile +++ b/jdk/make/java/java/reflect/Makefile @@ -36,7 +36,7 @@ include $(BUILDDIR)/common/Defs.gmk # # Files to compile. # -AUTO_FILES_JAVA_DIRS = java/lang/reflect sun/reflect +AUTO_FILES_JAVA_DIRS = java/lang/reflect sun/reflect java/lang/annotation # # Install .lib file. From e630f8d216c26909c674a63b39ee0829aad85482 Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Tue, 10 Apr 2012 18:53:15 +0300 Subject: [PATCH 24/82] 7146146: Deadlock between subclass of AbstractDocument and UndoManager Reviewed-by: art --- .../javax/swing/text/AbstractDocument.java | 57 ++++++++++---- .../AbstractDocument/7146146/bug7146146.java | 77 +++++++++++++++++++ 2 files changed, 119 insertions(+), 15 deletions(-) create mode 100644 jdk/test/javax/swing/text/AbstractDocument/7146146/bug7146146.java diff --git a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java index 7dbc9ecef4f..bf40cad6859 100644 --- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java +++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java @@ -31,7 +31,6 @@ import java.text.Bidi; import javax.swing.UIManager; import javax.swing.undo.*; -import javax.swing.event.ChangeListener; import javax.swing.event.*; import javax.swing.tree.TreeNode; @@ -698,28 +697,31 @@ public abstract class AbstractDocument implements Document, Serializable { return; } DocumentFilter filter = getDocumentFilter(); + InsertStringResult insertStringResult = null; writeLock(); + try { if (filter != null) { filter.insertString(getFilterBypass(), offs, str, a); - } - else { - handleInsertString(offs, str, a); + } else { + insertStringResult = handleInsertString(offs, str, a); } } finally { writeUnlock(); } + + processInsertStringResult(insertStringResult); } /** * Performs the actual work of inserting the text; it is assumed the * caller has obtained a write lock before invoking this. */ - void handleInsertString(int offs, String str, AttributeSet a) - throws BadLocationException { + private InsertStringResult handleInsertString(int offs, String str, AttributeSet a) + throws BadLocationException { if ((str == null) || (str.length() == 0)) { - return; + return null; } UndoableEdit u = data.insertString(offs, str); DefaultDocumentEvent e = @@ -746,12 +748,29 @@ public abstract class AbstractDocument implements Document, Serializable { insertUpdate(e, a); // Mark the edit as done. e.end(); - fireInsertUpdate(e); + + InsertStringResult result = new InsertStringResult(); + + result.documentEvent = e; + // only fire undo if Content implementation supports it // undo for the composed text is not supported for now - if (u != null && - (a == null || !a.isDefined(StyleConstants.ComposedTextAttribute))) { - fireUndoableEditUpdate(new UndoableEditEvent(this, e)); + if (u != null && (a == null || !a.isDefined(StyleConstants.ComposedTextAttribute))) { + result.undoableEditEvent = new UndoableEditEvent(this, e); + } + + return result; + } + + private void processInsertStringResult(InsertStringResult insertStringResult) { + if (insertStringResult == null) { + return; + } + + fireInsertUpdate(insertStringResult.documentEvent); + + if (insertStringResult.undoableEditEvent != null) { + fireUndoableEditUpdate(insertStringResult.undoableEditEvent); } } @@ -2947,12 +2966,10 @@ public abstract class AbstractDocument implements Document, Serializable { */ class UndoRedoDocumentEvent implements DocumentEvent { private DefaultDocumentEvent src = null; - private boolean isUndo; private EventType type = null; public UndoRedoDocumentEvent(DefaultDocumentEvent src, boolean isUndo) { this.src = src; - this.isUndo = isUndo; if(isUndo) { if(src.getType().equals(EventType.INSERT)) { type = EventType.REMOVE; @@ -3106,13 +3123,23 @@ public abstract class AbstractDocument implements Document, Serializable { public void insertString(int offset, String string, AttributeSet attr) throws BadLocationException { - handleInsertString(offset, string, attr); + InsertStringResult insertStringResult = handleInsertString(offset, string, attr); + + processInsertStringResult(insertStringResult); } public void replace(int offset, int length, String text, AttributeSet attrs) throws BadLocationException { handleRemove(offset, length); - handleInsertString(offset, text, attrs); + + InsertStringResult insertStringResult = handleInsertString(offset, text, attrs); + + processInsertStringResult(insertStringResult); } } + + private static class InsertStringResult { + DefaultDocumentEvent documentEvent; + UndoableEditEvent undoableEditEvent; + } } diff --git a/jdk/test/javax/swing/text/AbstractDocument/7146146/bug7146146.java b/jdk/test/javax/swing/text/AbstractDocument/7146146/bug7146146.java new file mode 100644 index 00000000000..f4d5bc7432f --- /dev/null +++ b/jdk/test/javax/swing/text/AbstractDocument/7146146/bug7146146.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2012, 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 7146146 + @summary Deadlock between subclass of AbstractDocument and UndoManager + @author Pavel Porvatov +*/ + +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; +import javax.swing.text.StringContent; +import javax.swing.undo.UndoManager; + +public class bug7146146 { + public static void main(String[] args) throws Exception { + for (int i = 0; i < 1000; i++) { + System.out.print("Iteration " + i); + + test(); + + System.out.print(" passed"); + } + } + + private static void test() throws Exception { + final PlainDocument doc = new PlainDocument(new StringContent()); + final UndoManager undoManager = new UndoManager(); + + doc.addUndoableEditListener(undoManager); + doc.insertString(0, "", null); + + Thread t1 = new Thread("Thread 1") { + @Override + public void run() { + try { + doc.insertString(0, "", null); + } catch (BadLocationException e) { + throw new RuntimeException(e); + } + } + }; + + Thread t2 = new Thread("Thread 2") { + @Override + public void run() { + undoManager.undo(); + } + }; + + t1.start(); + t2.start(); + + t1.join(); + t2.join(); + } +} From 910846ed2cd97a58e0025b5b818c8f65a66f1248 Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Tue, 10 Apr 2012 19:09:48 +0300 Subject: [PATCH 25/82] 7158712: Synth Property "ComboBox.popupInsets" is ignored Reviewed-by: alexp --- .../swing/plaf/synth/SynthComboPopup.java | 32 ++++- .../swing/plaf/synth/7158712/bug7158712.java | 112 ++++++++++++++++++ jdk/test/javax/swing/regtesthelpers/Util.java | 29 +++++ 3 files changed, 167 insertions(+), 6 deletions(-) create mode 100644 jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java index ab6db26e3e2..3e728c74274 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java @@ -26,13 +26,9 @@ package javax.swing.plaf.synth; import javax.swing.*; -import javax.swing.event.*; -import javax.swing.plaf.basic.*; +import javax.swing.plaf.ComboBoxUI; +import javax.swing.plaf.basic.BasicComboPopup; import java.awt.*; -import java.awt.event.*; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeEvent; -import java.io.Serializable; /** @@ -52,6 +48,7 @@ class SynthComboPopup extends BasicComboPopup { * * @see #createList */ + @Override protected void configureList() { list.setFont( comboBox.getFont() ); list.setCellRenderer( comboBox.getRenderer() ); @@ -67,4 +64,27 @@ class SynthComboPopup extends BasicComboPopup { } installListListeners(); } + + /** + * @inheritDoc + * + * Overridden to take into account any popup insets specified in + * SynthComboBoxUI + */ + @Override + protected Rectangle computePopupBounds(int px, int py, int pw, int ph) { + ComboBoxUI ui = comboBox.getUI(); + if (ui instanceof SynthComboBoxUI) { + SynthComboBoxUI sui = (SynthComboBoxUI) ui; + if (sui.popupInsets != null) { + Insets i = sui.popupInsets; + return super.computePopupBounds( + px + i.left, + py + i.top, + pw - i.left - i.right, + ph - i.top - i.bottom); + } + } + return super.computePopupBounds(px, py, pw, ph); + } } diff --git a/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java b/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java new file mode 100644 index 00000000000..8252d922afa --- /dev/null +++ b/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2012, 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 7158712 + @summary Synth Property "ComboBox.popupInsets" is ignored + @library ../../../regtesthelpers + @author Pavel Porvatov +*/ + +import javax.swing.*; +import javax.swing.plaf.basic.BasicComboPopup; +import javax.swing.plaf.synth.SynthLookAndFeel; +import java.awt.*; +import java.awt.event.InputEvent; +import java.io.ByteArrayInputStream; +import java.util.concurrent.Callable; + +public class bug7158712 { + private static final String SYNTH_XML = "" + + " " + + " " + + " " + + " " + + " " + + " " + + ""; + + private static JComboBox comboBox; + + public static void main(String[] args) throws Exception { + Robot robot = new Robot(); + + robot.setAutoDelay(500); + + SynthLookAndFeel laf = new SynthLookAndFeel(); + + laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class); + + UIManager.setLookAndFeel(laf); + + EventQueue.invokeLater(new Runnable() { + public void run() { + comboBox = new JComboBox<>( + new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"}); + + JFrame frame = new JFrame(); + + frame.add(comboBox, BorderLayout.NORTH); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(new Dimension(400, 300)); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } + }); + + Point comboBoxLocation = Util.invokeOnEDT(new Callable() { + @Override + public Point call() throws Exception { + return comboBox.getLocationOnScreen(); + } + }); + + robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y); + robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0); + + Point popupPoint = popup.getLocationOnScreen(); + Point comboBoxPoint = comboBox.getLocationOnScreen(); + + if (comboBoxPoint.x - 5 != popupPoint.x || + comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) { + throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint + + ", comboBox location: " + comboBoxPoint); + } + + System.out.println("Test bug7158712 passed"); + } + }); + } +} diff --git a/jdk/test/javax/swing/regtesthelpers/Util.java b/jdk/test/javax/swing/regtesthelpers/Util.java index c7449d10411..68bc0f8c404 100644 --- a/jdk/test/javax/swing/regtesthelpers/Util.java +++ b/jdk/test/javax/swing/regtesthelpers/Util.java @@ -24,8 +24,10 @@ import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; +import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.concurrent.Callable; /** *

This class contains utilities useful for regression testing. @@ -153,4 +155,31 @@ public class Util { robot.keyRelease(keys[i]); } } + + /** + * Invokes the task on the EDT thread. + * + * @return result of the task + */ + public static T invokeOnEDT(final Callable task) throws Exception { + final List result = new ArrayList<>(1); + final Exception[] exception = new Exception[1]; + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + try { + result.add(task.call()); + } catch (Exception e) { + exception[0] = e; + } + } + }); + + if (exception[0] != null) { + throw exception[0]; + } + + return result.get(0); + } } From 2e12d45877e21f109c3b16584e74b94fa9f1839c Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Tue, 10 Apr 2012 22:09:58 +0400 Subject: [PATCH 26/82] 7097771: setEnabled does not work for components in disabled containers Reviewed-by: art, anthony --- .../classes/sun/awt/X11/XComponentPeer.java | 72 +++++++---------- .../awt/Component/7097771/bug7097771.java | 81 +++++++++++++++++++ 2 files changed, 111 insertions(+), 42 deletions(-) create mode 100644 jdk/test/java/awt/Component/7097771/bug7097771.java diff --git a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java index 6375a7b0cfb..5beea5633dd 100644 --- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java +++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java @@ -82,7 +82,7 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget boolean paintPending = false; boolean isLayouting = false; - boolean enabled; + private boolean enabled; // Actually used only by XDecoratedPeer protected int boundsOperation; @@ -128,9 +128,6 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget } void postInit(XCreateWindowParams params) { super.postInit(params); - Color c; - Font f; - Cursor cursor; pSetCursor(target.getCursor()); @@ -143,19 +140,7 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget reshape(r.x, r.y, r.width, r.height); } - enabled = target.isEnabled(); - - // If any of our heavyweight ancestors are disable, we should be too - // See 6176875 for more information - Component comp = target; - while( !(comp == null || comp instanceof Window) ) { - comp = comp.getParent(); - if( comp != null && !comp.isEnabled() && !comp.isLightweight() ){ - setEnabled(false); - break; - } - } - enableLog.fine("Initial enable state: {0}", Boolean.valueOf(enabled)); + setEnabled(target.isEnabled()); if (target.isVisible()) { setVisible(true); @@ -384,45 +369,48 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget setVisible(false); } - /** * @see java.awt.peer.ComponentPeer */ - public void setEnabled(boolean value) { - enableLog.fine("{0}ing {1}", (value?"Enabl":"Disabl"), this); - boolean repaintNeeded = (enabled != value); - enabled = value; + public void setEnabled(final boolean value) { + if (enableLog.isLoggable(PlatformLogger.FINE)) { + enableLog.fine("{0}ing {1}", (value ? "Enabl" : "Disabl"), this); + } + boolean status = value; + // If any of our heavyweight ancestors are disable, we should be too + // See 6176875 for more information + final Container cp = SunToolkit.getNativeContainer(target); + if (cp != null) { + status &= ((XComponentPeer) cp.getPeer()).isEnabled(); + } + synchronized (getStateLock()) { + if (enabled == status) { + return; + } + enabled = status; + } + if (target instanceof Container) { - Component list[] = ((Container)target).getComponents(); - for (int i = 0; i < list.length; ++i) { - boolean childEnabled = list[i].isEnabled(); - ComponentPeer p = list[i].getPeer(); - if ( p != null ) { - p.setEnabled(value && childEnabled); + final Component[] list = ((Container) target).getComponents(); + for (final Component child : list) { + final ComponentPeer p = child.getPeer(); + if (p != null) { + p.setEnabled(status && child.isEnabled()); } } } - if (repaintNeeded) { - repaint(); - } + repaint(); } // // public so aw/Window can call it // - public boolean isEnabled() { - return enabled; + public final boolean isEnabled() { + synchronized (getStateLock()) { + return enabled; + } } - - - public void enable() { - setEnabled(true); - } - - public void disable() { - setEnabled(false); - } @Override public void paint(final Graphics g) { super.paint(g); diff --git a/jdk/test/java/awt/Component/7097771/bug7097771.java b/jdk/test/java/awt/Component/7097771/bug7097771.java new file mode 100644 index 00000000000..54b9cf8c965 --- /dev/null +++ b/jdk/test/java/awt/Component/7097771/bug7097771.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2012, 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. + */ + +import sun.awt.SunToolkit; +import test.java.awt.regtesthelpers.Util; + +import java.awt.AWTException; +import java.awt.Button; +import java.awt.Frame; +import java.awt.Robot; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/* + @test + @bug 7097771 + @summary setEnabled does not work for components in disabled containers. + @author sergey.bylokhov@oracle.com: area=awt.component + @library ../../regtesthelpers + @build Util + @run main bug7097771 +*/ +public final class bug7097771 extends Frame implements ActionListener { + + private static volatile boolean action; + + public static void main(final String[] args) throws AWTException { + final bug7097771 frame = new bug7097771(); + frame.setSize(300, 300); + frame.setLocationRelativeTo(null); + final Button button = new Button(); + button.addActionListener(frame); + frame.add(button); + frame.setVisible(true); + sleep(); + frame.setEnabled(false); + button.setEnabled(false); + button.setEnabled(true); + sleep(); + Util.clickOnComp(button, new Robot()); + sleep(); + frame.dispose(); + if (action) { + throw new RuntimeException("Button is not disabled."); + } + } + + @Override + public void actionPerformed(final ActionEvent e) { + action = true; + } + + private static void sleep() { + ((SunToolkit) Toolkit.getDefaultToolkit()).realSync(); + try { + Thread.sleep(1000); + } catch (InterruptedException ignored) { + } + } +} From d951098c653f71e8f2e06531f9c07730f296de03 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Wed, 11 Apr 2012 10:50:11 +0100 Subject: [PATCH 27/82] 7154127: Inference cleanup: remove bound check analysis from visitors in Types.java Remove bound checking rules from recursive subtype visitors in Types.java and replace with centralized bound-checking logic Reviewed-by: jjg, dlsmith --- .../com/sun/tools/javac/code/Type.java | 26 +- .../com/sun/tools/javac/code/Types.java | 34 +- .../com/sun/tools/javac/comp/Infer.java | 368 ++++++++---------- .../tools/javac/resources/compiler.properties | 28 +- .../javac/util/RichDiagnosticFormatter.java | 19 +- .../javac/Diagnostics/6722234/T6722234b_1.out | 2 +- .../javac/Diagnostics/6722234/T6722234b_2.out | 2 +- .../javac/Diagnostics/6799605/T6799605.out | 6 +- .../tools/javac/cast/7123100/T7123100a.out | 2 +- .../tools/javac/diags/examples.not-yet.txt | 1 - .../diags/examples/CantApplyDiamond1.java | 2 +- .../diags/examples/IncompatibleTypes1.java | 4 +- ....java => InferNoConformingAssignment.java} | 18 +- .../examples/InferredDoNotConformToEq.java | 32 ++ .../examples/InferredDoNotConformToLower.java | 33 ++ .../examples/InferredDoNotConformToUpper.java | 32 ++ .../diags/examples/InvalidInferredTypes.java | 12 +- .../javac/diags/examples/WhereCaptured.java | 2 +- .../javac/diags/examples/WhereCaptured1.java | 2 +- .../javac/diags/examples/WhereFreshTvar.java | 39 ++ .../javac/generics/diamond/neg/Neg06.out | 2 +- .../javac/generics/diamond/neg/Neg07.out | 2 +- .../generics/inference/6315770/T6315770.out | 2 +- .../generics/inference/6611449/T6611449.out | 8 +- .../generics/inference/6638712/T6638712b.out | 2 +- .../generics/inference/6638712/T6638712d.out | 2 +- .../generics/inference/6638712/T6638712e.out | 2 +- .../generics/inference/6650759/T6650759m.out | 2 +- .../generics/inference/7086601/T7086601a.out | 8 +- .../generics/inference/7154127/T7154127.java | 21 + .../generics/inference/7154127/T7154127.out | 2 + 31 files changed, 402 insertions(+), 315 deletions(-) rename langtools/test/tools/javac/diags/examples/{InferredDoNotConformToBounds.java => InferNoConformingAssignment.java} (72%) create mode 100644 langtools/test/tools/javac/diags/examples/InferredDoNotConformToEq.java create mode 100644 langtools/test/tools/javac/diags/examples/InferredDoNotConformToLower.java create mode 100644 langtools/test/tools/javac/diags/examples/InferredDoNotConformToUpper.java create mode 100644 langtools/test/tools/javac/diags/examples/WhereFreshTvar.java create mode 100644 langtools/test/tools/javac/generics/inference/7154127/T7154127.java create mode 100644 langtools/test/tools/javac/generics/inference/7154127/T7154127.out diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java index 448834c0ba9..bb211112bfb 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java @@ -1146,29 +1146,6 @@ public class Type implements PrimitiveType { return types.subst(qtype, tvars, actuals); } - /** - * Kind of type-constraint derived during type inference - */ - public enum ConstraintKind { - /** - * upper bound constraint (a type variable must be instantiated - * with a type T, where T is a subtype of all the types specified by - * its EXTENDS constraints). - */ - EXTENDS, - /** - * lower bound constraint (a type variable must be instantiated - * with a type T, where T is a supertype of all the types specified by - * its SUPER constraints). - */ - SUPER, - /** - * equality constraint (a type variable must be instantiated to the type - * specified by its EQUAL constraint. - */ - EQUAL; - } - /** * Get the type-constraints of a given kind for a given type-variable of * this ForAll type. Subclasses should override in order to return more @@ -1178,7 +1155,7 @@ public class Type implements PrimitiveType { * @param ck the constraint kind to be retrieved * @return the list of types specified by the selected constraint */ - public List getConstraints(TypeVar tv, ConstraintKind ck) { + public List undetvars() { return List.nil(); } @@ -1220,6 +1197,7 @@ public class Type implements PrimitiveType { public static class UndetVar extends DelegatedType { public List lobounds = List.nil(); public List hibounds = List.nil(); + public List eq = List.nil(); public Type inst = null; @Override diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java index aac5c29f1a0..1039a287104 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java @@ -326,11 +326,6 @@ public class Types { else if (t.tag == TYPEVAR) { return isSubtypeUnchecked(t.getUpperBound(), s, warn); } - else if (s.tag == UNDETVAR) { - UndetVar uv = (UndetVar)s; - if (uv.inst != null) - return isSubtypeUnchecked(t, uv.inst, warn); - } else if (!s.isRaw()) { Type t2 = asSuper(t, s.tsym); if (t2 != null && t2.isRaw()) { @@ -515,9 +510,6 @@ public class Types { return false; } - if (t.inst != null) - return isSubtypeNoCapture(t.inst, s); // TODO: ", warn"? - t.hibounds = t.hibounds.prepend(s); return true; } @@ -586,8 +578,6 @@ public class Types { undet.qtype == s || s.tag == ERROR || s.tag == BOT) return true; - if (undet.inst != null) - return isSubtype(s, undet.inst); undet.lobounds = undet.lobounds.prepend(s); return true; } @@ -733,18 +723,8 @@ public class Types { if (t == s || t.qtype == s || s.tag == ERROR || s.tag == UNKNOWN) return true; - if (t.inst != null) - return visit(t.inst, s); + t.eq = t.eq.prepend(s); - t.inst = fromUnknownFun.apply(s); - for (List l = t.lobounds; l.nonEmpty(); l = l.tail) { - if (!isSubtype(l.head, t.inst)) - return false; - } - for (List l = t.hibounds; l.nonEmpty(); l = l.tail) { - if (!isSubtype(t.inst, l.head)) - return false; - } return true; } @@ -779,23 +759,11 @@ public class Types { case UNBOUND: //similar to ? extends Object case EXTENDS: { Type bound = upperBound(s); - // We should check the new upper bound against any of the - // undetvar's lower bounds. - for (Type t2 : undetvar.lobounds) { - if (!isSubtype(t2, bound)) - return false; - } undetvar.hibounds = undetvar.hibounds.prepend(bound); break; } case SUPER: { Type bound = lowerBound(s); - // We should check the new lower bound against any of the - // undetvar's lower bounds. - for (Type t2 : undetvar.hibounds) { - if (!isSubtype(bound, t2)) - return false; - } undetvar.lobounds = undetvar.lobounds.prepend(bound); break; } diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java index a8e99e38024..41875116da8 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java @@ -32,7 +32,6 @@ import com.sun.tools.javac.util.*; import com.sun.tools.javac.util.List; import com.sun.tools.javac.code.*; import com.sun.tools.javac.code.Type.*; -import com.sun.tools.javac.code.Type.ForAll.ConstraintKind; import com.sun.tools.javac.code.Symbol.*; import com.sun.tools.javac.comp.Resolve.InapplicableMethodException; import com.sun.tools.javac.comp.Resolve.VerboseResolutionMode; @@ -122,84 +121,21 @@ public class Infer { /** A mapping that turns type variables into undetermined type variables. */ - Mapping fromTypeVarFun = new Mapping("fromTypeVarFun") { - public Type apply(Type t) { - if (t.tag == TYPEVAR) return new UndetVar(t); - else return t.map(this); - } - }; - - /** A mapping that returns its type argument with every UndetVar replaced - * by its `inst' field. Throws a NoInstanceException - * if this not possible because an `inst' field is null. - * Note: mutually referring undertvars will be left uninstantiated - * (that is, they will be replaced by the underlying type-variable). - */ - - Mapping getInstFun = new Mapping("getInstFun") { - public Type apply(Type t) { - switch (t.tag) { - case UNKNOWN: - throw ambiguousNoInstanceException - .setMessage("undetermined.type"); - case UNDETVAR: - UndetVar that = (UndetVar) t; - if (that.inst == null) - throw ambiguousNoInstanceException - .setMessage("type.variable.has.undetermined.type", - that.qtype); - return isConstraintCyclic(that) ? - that.qtype : - apply(that.inst); - default: - return t.map(this); + List makeUndetvars(List tvars) { + List undetvars = Type.map(tvars, fromTypeVarFun); + for (Type t : undetvars) { + UndetVar uv = (UndetVar)t; + uv.hibounds = types.getBounds((TypeVar)uv.qtype); + } + return undetvars; + } + //where + Mapping fromTypeVarFun = new Mapping("fromTypeVarFun") { + public Type apply(Type t) { + if (t.tag == TYPEVAR) return new UndetVar(t); + else return t.map(this); } - } - - private boolean isConstraintCyclic(UndetVar uv) { - Types.UnaryVisitor constraintScanner = - new Types.UnaryVisitor() { - - List seen = List.nil(); - - Boolean visit(List ts) { - for (Type t : ts) { - if (visit(t)) return true; - } - return false; - } - - public Boolean visitType(Type t, Void ignored) { - return false; - } - - @Override - public Boolean visitClassType(ClassType t, Void ignored) { - if (t.isCompound()) { - return visit(types.supertype(t)) || - visit(types.interfaces(t)); - } else { - return visit(t.getTypeArguments()); - } - } - @Override - public Boolean visitWildcardType(WildcardType t, Void ignored) { - return visit(t.type); - } - - @Override - public Boolean visitUndetVar(UndetVar t, Void ignored) { - if (seen.contains(t)) { - return true; - } else { - seen = seen.prepend(t); - return visit(t.inst); - } - } - }; - return constraintScanner.visit(uv); - } - }; + }; /*************************************************************************** * Mini/Maximization of UndetVars @@ -210,13 +146,15 @@ public class Infer { */ void maximizeInst(UndetVar that, Warner warn) throws NoInstanceException { List hibounds = Type.filter(that.hibounds, errorFilter); - if (that.inst == null) { + if (that.eq.isEmpty()) { if (hibounds.isEmpty()) that.inst = syms.objectType; else if (hibounds.tail.isEmpty()) that.inst = hibounds.head; else that.inst = types.glb(hibounds); + } else { + that.inst = that.eq.head; } if (that.inst == null || that.inst.isErroneous()) @@ -224,27 +162,6 @@ public class Infer { .setMessage("no.unique.maximal.instance.exists", that.qtype, hibounds); } - //where - private boolean isSubClass(Type t, final List ts) { - t = t.baseType(); - if (t.tag == TYPEVAR) { - List bounds = types.getBounds((TypeVar)t); - for (Type s : ts) { - if (!types.isSameType(t, s.baseType())) { - for (Type bound : bounds) { - if (!isSubClass(bound, List.of(s.baseType()))) - return false; - } - } - } - } else { - for (Type s : ts) { - if (!t.tsym.isSubClass(s.baseType().tsym, types)) - return false; - } - } - return true; - } private Filter errorFilter = new Filter() { @Override @@ -258,7 +175,7 @@ public class Infer { */ void minimizeInst(UndetVar that, Warner warn) throws NoInstanceException { List lobounds = Type.filter(that.lobounds, errorFilter); - if (that.inst == null) { + if (that.eq.isEmpty()) { if (lobounds.isEmpty()) that.inst = syms.botType; else if (lobounds.tail.isEmpty()) @@ -270,21 +187,8 @@ public class Infer { throw ambiguousNoInstanceException .setMessage("no.unique.minimal.instance.exists", that.qtype, lobounds); - // VGJ: sort of inlined maximizeInst() below. Adding - // bounds can cause lobounds that are above hibounds. - List hibounds = Type.filter(that.hibounds, errorFilter); - Type hb = null; - if (hibounds.isEmpty()) - hb = syms.objectType; - else if (hibounds.tail.isEmpty()) - hb = hibounds.head; - else - hb = types.glb(hibounds); - if (hb == null || - hb.isErroneous()) - throw ambiguousNoInstanceException - .setMessage("incompatible.upper.bounds", - that.qtype, hibounds); + } else { + that.inst = that.eq.head; } } @@ -313,21 +217,7 @@ public class Infer { public Type instantiateExpr(ForAll that, Type to, Warner warn) throws InferenceException { - List undetvars = Type.map(that.tvars, fromTypeVarFun); - for (List l = undetvars; l.nonEmpty(); l = l.tail) { - UndetVar uv = (UndetVar) l.head; - TypeVar tv = (TypeVar)uv.qtype; - ListBuffer hibounds = new ListBuffer(); - for (Type t : that.getConstraints(tv, ConstraintKind.EXTENDS)) { - hibounds.append(types.subst(t, that.tvars, undetvars)); - } - - List inst = that.getConstraints(tv, ConstraintKind.EQUAL); - if (inst.nonEmpty() && inst.head.tag != BOT) { - uv.inst = inst.head; - } - uv.hibounds = hibounds.toList(); - } + List undetvars = that.undetvars(); Type qtype1 = types.subst(that.qtype, that.tvars, undetvars); if (!types.isSubtype(qtype1, qtype1.tag == UNDETVAR ? types.boxedTypeOrType(to) : to)) { @@ -335,41 +225,72 @@ public class Infer { .setMessage("infer.no.conforming.instance.exists", that.tvars, that.qtype, to); } - for (List l = undetvars; l.nonEmpty(); l = l.tail) - maximizeInst((UndetVar) l.head, warn); - // System.out.println(" = " + qtype1.map(getInstFun));//DEBUG - // check bounds - List targs = Type.map(undetvars, getInstFun); - if (Type.containsAny(targs, that.tvars)) { - //replace uninferred type-vars - targs = types.subst(targs, + List insttypes; + while (true) { + boolean stuck = true; + insttypes = List.nil(); + for (Type t : undetvars) { + UndetVar uv = (UndetVar)t; + if (uv.inst == null && (uv.eq.nonEmpty() || !Type.containsAny(uv.hibounds, that.tvars))) { + maximizeInst((UndetVar)t, warn); + stuck = false; + } + insttypes = insttypes.append(uv.inst == null ? uv.qtype : uv.inst); + } + if (!Type.containsAny(insttypes, that.tvars)) { + //all variables have been instantiated - exit + break; + } else if (stuck) { + //some variables could not be instantiated because of cycles in + //upper bounds - provide a (possibly recursive) default instantiation + insttypes = types.subst(insttypes, that.tvars, instantiateAsUninferredVars(undetvars, that.tvars)); + break; + } else { + //some variables have been instantiated - replace newly instantiated + //variables in remaining upper bounds and continue + for (Type t : undetvars) { + UndetVar uv = (UndetVar)t; + uv.hibounds = types.subst(uv.hibounds, that.tvars, insttypes); + } + } } - return that.inst(targs, types); + return that.inst(insttypes, types); } - //where + + /** + * Infer cyclic inference variables as described in 15.12.2.8. + */ private List instantiateAsUninferredVars(List undetvars, List tvars) { Assert.check(undetvars.length() == tvars.length()); - ListBuffer new_targs = ListBuffer.lb(); - //step 1 - create synthetic captured vars + ListBuffer insttypes = ListBuffer.lb(); + ListBuffer todo = ListBuffer.lb(); + //step 1 - create fresh tvars for (Type t : undetvars) { UndetVar uv = (UndetVar)t; - Type newArg = new CapturedType(t.tsym.name, t.tsym, uv.inst, syms.botType, null); - new_targs = new_targs.append(newArg); + if (uv.inst == null) { + TypeSymbol fresh_tvar = new TypeSymbol(Flags.SYNTHETIC, uv.qtype.tsym.name, null, uv.qtype.tsym.owner); + fresh_tvar.type = new TypeVar(fresh_tvar, types.makeCompoundType(uv.hibounds), null); + todo.append(uv); + uv.inst = fresh_tvar.type; + } + insttypes.append(uv.inst); } - //step 2 - replace synthetic vars in their bounds + //step 2 - replace fresh tvars in their bounds List formals = tvars; - for (Type t : new_targs.toList()) { - CapturedType ct = (CapturedType)t; - ct.bound = types.subst(ct.bound, tvars, new_targs.toList()); - WildcardType wt = new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass); - wt.bound = (TypeVar)formals.head; - ct.wildcard = wt; + for (Type t : todo) { + UndetVar uv = (UndetVar)t; + TypeVar ct = (TypeVar)uv.inst; + ct.bound = types.glb(types.subst(types.getBounds(ct), tvars, insttypes.toList())); + if (ct.bound.isErroneous()) { + //report inference error if glb fails + reportBoundError(uv, BoundErrorKind.BAD_UPPER); + } formals = formals.tail; } - return new_targs.toList(); + return insttypes.toList(); } /** Instantiate method type `mt' by finding instantiations of @@ -384,7 +305,7 @@ public class Infer { final boolean useVarargs, final Warner warn) throws InferenceException { //-System.err.println("instantiateMethod(" + tvars + ", " + mt + ", " + argtypes + ")"); //DEBUG - List undetvars = Type.map(tvars, fromTypeVarFun); + final List undetvars = makeUndetvars(tvars); final List capturedArgs = rs.checkRawArgumentsAcceptable(env, undetvars, argtypes, mt.getParameterTypes(), @@ -419,7 +340,7 @@ public class Infer { undettypes.append(uv.inst); } } - checkWithinBounds(tvars, undettypes.toList(), warn); + checkWithinBounds(tvars, undetvars, insttypes.toList(), warn); mt = (MethodType)types.subst(mt, tvars, insttypes.toList()); @@ -430,18 +351,8 @@ public class Infer { final List all_tvars = tvars; //this is the wrong tvars return new UninferredMethodType(env.tree.pos(), msym, mt, restvars.toList()) { @Override - List getConstraints(TypeVar tv, ConstraintKind ck) { - for (Type t : restundet.toList()) { - UndetVar uv = (UndetVar)t; - if (uv.qtype == tv) { - switch (ck) { - case EXTENDS: return uv.hibounds.appendList(types.subst(types.getBounds(tv), all_tvars, inferredTypes)); - case SUPER: return uv.lobounds; - case EQUAL: return uv.inst != null ? List.of(uv.inst) : List.nil(); - } - } - } - return List.nil(); + List undetvars() { + return restundet.toList(); } @Override void instantiateReturnType(Type restype, List inferred, Types types) throws NoInstanceException { @@ -453,7 +364,7 @@ public class Infer { warn.clear(); checkArgumentsAcceptable(env, capturedArgs, owntype.getParameterTypes(), allowBoxing, useVarargs, warn); // check that inferred bounds conform to their bounds - checkWithinBounds(all_tvars, + checkWithinBounds(all_tvars, undetvars, types.subst(inferredTypes, tvars, inferred), warn); qtype = chk.checkMethod(owntype, msym, env, TreeInfo.args(env.tree), capturedArgs, useVarargs, warn.hasNonSilentLint(Lint.LintCategory.UNCHECKED)); } @@ -525,7 +436,7 @@ public class Infer { abstract void instantiateReturnType(Type restype, List inferred, Types types); - abstract List getConstraints(TypeVar tv, ConstraintKind ck); + abstract List undetvars(); class UninferredReturnType extends ForAll { public UninferredReturnType(List tvars, Type restype) { @@ -541,8 +452,8 @@ public class Infer { return UninferredMethodType.this.qtype.getReturnType(); } @Override - public List getConstraints(TypeVar tv, ConstraintKind ck) { - return UninferredMethodType.this.getConstraints(tv, ck); + public List undetvars() { + return UninferredMethodType.this.undetvars(); } } } @@ -559,45 +470,96 @@ public class Infer { } } - /** Try to instantiate argument type `that' to given type `to'. - * If this fails, try to insantiate `that' to `to' where - * every occurrence of a type variable in `tvars' is replaced - * by an unknown type. - */ - private Type instantiateArg(ForAll that, - Type to, - List tvars, - Warner warn) throws InferenceException { - List targs; - try { - return instantiateExpr(that, to, warn); - } catch (NoInstanceException ex) { - Type to1 = to; - for (List l = tvars; l.nonEmpty(); l = l.tail) - to1 = types.subst(to1, List.of(l.head), List.of(syms.unknownType)); - return instantiateExpr(that, to1, warn); - } - } - /** check that type parameters are within their bounds. */ void checkWithinBounds(List tvars, - List arguments, - Warner warn) + List undetvars, + List arguments, + Warner warn) throws InvalidInstanceException { - for (List tvs = tvars, args = arguments; - tvs.nonEmpty(); - tvs = tvs.tail, args = args.tail) { - if (args.head instanceof UndetVar || - tvars.head.getUpperBound().isErroneous()) continue; - List bounds = types.subst(types.getBounds((TypeVar)tvs.head), tvars, arguments); - if (!types.isSubtypeUnchecked(args.head, bounds, warn)) - throw invalidInstanceException - .setMessage("inferred.do.not.conform.to.bounds", - args.head, bounds); + List args = arguments; + for (Type t : undetvars) { + UndetVar uv = (UndetVar)t; + uv.hibounds = types.subst(uv.hibounds, tvars, arguments); + uv.lobounds = types.subst(uv.lobounds, tvars, arguments); + uv.eq = types.subst(uv.eq, tvars, arguments); + checkCompatibleUpperBounds(uv, tvars); + if (args.head.tag != TYPEVAR || !args.head.containsAny(tvars)) { + Type inst = args.head; + for (Type u : uv.hibounds) { + if (!types.isSubtypeUnchecked(inst, types.subst(u, tvars, undetvars), warn)) { + reportBoundError(uv, BoundErrorKind.UPPER); + } + } + for (Type l : uv.lobounds) { + if (!types.isSubtypeUnchecked(types.subst(l, tvars, undetvars), inst, warn)) { + reportBoundError(uv, BoundErrorKind.LOWER); + } + } + for (Type e : uv.eq) { + if (!types.isSameType(inst, types.subst(e, tvars, undetvars))) { + reportBoundError(uv, BoundErrorKind.EQ); + } + } + } + args = args.tail; } } + void checkCompatibleUpperBounds(UndetVar uv, List tvars) { + // VGJ: sort of inlined maximizeInst() below. Adding + // bounds can cause lobounds that are above hibounds. + ListBuffer hiboundsNoVars = ListBuffer.lb(); + for (Type t : Type.filter(uv.hibounds, errorFilter)) { + if (!t.containsAny(tvars)) { + hiboundsNoVars.append(t); + } + } + List hibounds = hiboundsNoVars.toList(); + Type hb = null; + if (hibounds.isEmpty()) + hb = syms.objectType; + else if (hibounds.tail.isEmpty()) + hb = hibounds.head; + else + hb = types.glb(hibounds); + if (hb == null || hb.isErroneous()) + reportBoundError(uv, BoundErrorKind.BAD_UPPER); + } + + enum BoundErrorKind { + BAD_UPPER() { + @Override + InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) { + return ex.setMessage("incompatible.upper.bounds", uv.qtype, uv.hibounds); + } + }, + UPPER() { + @Override + InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) { + return ex.setMessage("inferred.do.not.conform.to.upper.bounds", uv.inst, uv.hibounds); + } + }, + LOWER() { + @Override + InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) { + return ex.setMessage("inferred.do.not.conform.to.lower.bounds", uv.inst, uv.lobounds); + } + }, + EQ() { + @Override + InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) { + return ex.setMessage("inferred.do.not.conform.to.eq.bounds", uv.inst, uv.eq); + } + }; + + abstract InapplicableMethodException setMessage(InferenceException ex, UndetVar uv); + } + //where + void reportBoundError(UndetVar uv, BoundErrorKind bk) { + throw bk.setMessage(uv.inst == null ? ambiguousNoInstanceException : invalidInstanceException, uv); + } + /** * Compute a synthetic method type corresponding to the requested polymorphic * method signature. The target return type is computed from the immediately diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties index 9d25a94de44..96e9e3f41ce 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties @@ -1583,9 +1583,6 @@ compiler.misc.undetermined.type=\ cannot infer type arguments for {0}\n\ reason: {1} -compiler.misc.type.variable.has.undetermined.type=\ - type variable {0} has undetermined type - # 0: type, 1: list of type compiler.misc.no.unique.maximal.instance.exists=\ no unique maximal instance exists for type variable {0} with upper bounds {1} @@ -1613,10 +1610,22 @@ compiler.misc.infer.varargs.argument.mismatch=\ no instance(s) of type variable(s) {0} exist so that argument type {1} conforms to vararg element type {2} # 0: type, 1: list of type -compiler.misc.inferred.do.not.conform.to.bounds=\ - inferred type does not conform to declared bound(s)\n\ +compiler.misc.inferred.do.not.conform.to.upper.bounds=\ + inferred type does not conform to upper bound(s)\n\ inferred: {0}\n\ - bound(s): {1} + upper bound(s): {1} + +# 0: type, 1: list of type +compiler.misc.inferred.do.not.conform.to.lower.bounds=\ + inferred type does not conform to lower bound(s)\n\ + inferred: {0}\n\ + lower bound(s): {1} + +# 0: type, 1: list of type +compiler.misc.inferred.do.not.conform.to.eq.bounds=\ + inferred type does not conform to equality constraint(s)\n\ + inferred: {0}\n\ + equality constraints(s): {1} # 0: symbol compiler.misc.diamond=\ @@ -2042,9 +2051,16 @@ compiler.misc.where.typevar=\ # compact where clause for type variable: contains the kindname ({2}) and location ({3}) # in which the typevar has been declared +# 0: type, 1: list of type, 2: symbol kind, 3: symbol compiler.misc.where.typevar.1=\ {0} declared in {2} {3} +# where clause for fresh type variable: contains upper bound(s) ('extends {1}'). +# Since a fresh type-variable is synthetic - there's no location/kindname here. +# 0: type, 1: list of type +compiler.misc.where.fresh.typevar=\ + {0} extends {1} + # where clause for type variable: contains all the upper bound(s) ('extends {1}') # of this intersection type # 0: type, 1: list of type diff --git a/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java b/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java index 24861c2a20f..219184c7e51 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java +++ b/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java @@ -540,13 +540,22 @@ public class RichDiagnosticFormatter extends bounds.head.tag == NONE || bounds.head.tag == ERROR; - - JCDiagnostic d = diags.fragment("where.typevar" + + if ((t.tsym.flags() & SYNTHETIC) == 0) { + //this is a true typevar + JCDiagnostic d = diags.fragment("where.typevar" + (boundErroneous ? ".1" : ""), t, bounds, Kinds.kindName(t.tsym.location()), t.tsym.location()); - whereClauses.get(WhereClauseKind.TYPEVAR).put(t, d); - symbolPreprocessor.visit(t.tsym.location(), null); - visit(bounds); + whereClauses.get(WhereClauseKind.TYPEVAR).put(t, d); + symbolPreprocessor.visit(t.tsym.location(), null); + visit(bounds); + } else { + Assert.check(!boundErroneous); + //this is a fresh (synthetic) tvar + JCDiagnostic d = diags.fragment("where.fresh.typevar", t, bounds); + whereClauses.get(WhereClauseKind.TYPEVAR).put(t, d); + visit(bounds); + } + } return null; } diff --git a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out index b019f8ab213..5fd02efac09 100644 --- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out +++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out @@ -1,2 +1,2 @@ -T6722234b.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, List,List, List,List, kindname.class, T6722234b, (compiler.misc.infer.no.conforming.assignment.exists: T, List, List) +T6722234b.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, List,List, List,List, kindname.class, T6722234b, (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 2, ? extends T6722234b, compiler.misc.type.captureof: 2, ? extends T6722234b,compiler.misc.type.captureof: 1, ? extends T6722234b) 1 error diff --git a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out index e4e669363c7..ef628a2a61f 100644 --- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out +++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out @@ -1,4 +1,4 @@ -T6722234b.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, List,List, List,List, kindname.class, T6722234b, (compiler.misc.infer.no.conforming.assignment.exists: T, List, List) +T6722234b.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, List,List, List,List, kindname.class, T6722234b, (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.captured.type: 2, compiler.misc.captured.type: 2,compiler.misc.captured.type: 1) - compiler.misc.where.description.typevar: T,{(compiler.misc.where.typevar: T, Object, kindname.method, m(List,List))} - compiler.misc.where.description.captured.1: compiler.misc.captured.type: 1,compiler.misc.captured.type: 2,{(compiler.misc.where.captured.1: compiler.misc.captured.type: 1, T6722234b, compiler.misc.type.null, ? extends T6722234b),(compiler.misc.where.captured.1: compiler.misc.captured.type: 2, T6722234b, compiler.misc.type.null, ? extends T6722234b)} 1 error diff --git a/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out b/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out index 323a354d73e..b036bd8dfa7 100644 --- a/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out +++ b/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out @@ -1,4 +1,4 @@ -T6799605.java:17:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.inferred.do.not.conform.to.bounds: compiler.misc.type.captureof: 1, ?, T6799605))} -T6799605.java:18:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.infer.no.conforming.assignment.exists: T, T6799605, T6799605)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.infer.arg.length.mismatch))} -T6799605.java:19:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,T6799605,T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.infer.no.conforming.assignment.exists: T, T6799605, T6799605)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.infer.arg.length.mismatch))} +T6799605.java:17:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.inferred.do.not.conform.to.upper.bounds: compiler.misc.type.captureof: 1, ?, T6799605))} +T6799605.java:18:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 2, ?, compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.infer.arg.length.mismatch))} +T6799605.java:19:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605,T6799605,T6799605,{(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605,T6799605), (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 3, ?, compiler.misc.type.captureof: 3, ?,compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605,T6799605), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T6799605, m(T6799605), (compiler.misc.infer.arg.length.mismatch))} 3 errors diff --git a/langtools/test/tools/javac/cast/7123100/T7123100a.out b/langtools/test/tools/javac/cast/7123100/T7123100a.out index a816314f5b5..b71aa5fb886 100644 --- a/langtools/test/tools/javac/cast/7123100/T7123100a.out +++ b/langtools/test/tools/javac/cast/7123100/T7123100a.out @@ -1,4 +1,4 @@ -T7123100a.java:14:19: compiler.warn.prob.found.req: (compiler.misc.unchecked.cast.to.type), compiler.misc.type.captureof: 1, ?, Z +T7123100a.java:14:19: compiler.warn.prob.found.req: (compiler.misc.unchecked.cast.to.type), E, Z - compiler.err.warnings.and.werror 1 error 1 warning diff --git a/langtools/test/tools/javac/diags/examples.not-yet.txt b/langtools/test/tools/javac/diags/examples.not-yet.txt index 43cf6a6ac4f..4576cf40202 100644 --- a/langtools/test/tools/javac/diags/examples.not-yet.txt +++ b/langtools/test/tools/javac/diags/examples.not-yet.txt @@ -78,7 +78,6 @@ compiler.misc.type.captureof compiler.misc.type.captureof.1 compiler.misc.type.none compiler.misc.type.req.exact -compiler.misc.type.variable.has.undetermined.type compiler.misc.unable.to.access.file # ClassFile compiler.misc.undecl.type.var # ClassReader compiler.misc.unicode.str.not.supported # ClassReader diff --git a/langtools/test/tools/javac/diags/examples/CantApplyDiamond1.java b/langtools/test/tools/javac/diags/examples/CantApplyDiamond1.java index e6b7d6602b9..fdf38e5ce99 100644 --- a/langtools/test/tools/javac/diags/examples/CantApplyDiamond1.java +++ b/langtools/test/tools/javac/diags/examples/CantApplyDiamond1.java @@ -23,7 +23,7 @@ // key: compiler.err.prob.found.req.1 // key: compiler.misc.cant.apply.diamond.1 -// key: compiler.misc.infer.no.conforming.instance.exists +// key: compiler.misc.no.conforming.assignment.exists // key: compiler.misc.diamond class CantApplyDiamond1 { diff --git a/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java b/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java index 3256b0e20fe..0f2b6447f3c 100644 --- a/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java +++ b/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java @@ -25,9 +25,9 @@ // key: compiler.err.prob.found.req.1 class IncompatibleTypes1 { - IncompatibleTypes1 m() { + IncompatibleTypes1 m() { return null; } - IncompatibleTypes1 o = m(); + IncompatibleTypes1 o = m(); } diff --git a/langtools/test/tools/javac/diags/examples/InferredDoNotConformToBounds.java b/langtools/test/tools/javac/diags/examples/InferNoConformingAssignment.java similarity index 72% rename from langtools/test/tools/javac/diags/examples/InferredDoNotConformToBounds.java rename to langtools/test/tools/javac/diags/examples/InferNoConformingAssignment.java index 95cb23c1a67..1244cca6c82 100644 --- a/langtools/test/tools/javac/diags/examples/InferredDoNotConformToBounds.java +++ b/langtools/test/tools/javac/diags/examples/InferNoConformingAssignment.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -21,15 +21,13 @@ * questions. */ -// key: compiler.misc.inferred.do.not.conform.to.bounds -// key: compiler.err.cant.apply.diamond.1 -// key: compiler.misc.diamond +// key: compiler.err.cant.apply.symbol.1 +// key: compiler.misc.infer.no.conforming.assignment.exists -class InferredDoNotConformToBounds { - static class SuperFoo {} - static class Foo extends SuperFoo { - Foo(X x) {} - } +import java.util.*; - SuperFoo sf1 = new Foo<>(""); +class InferNoConformingAssignment { + List m(String s) { return null; } + { this.m(1); } } + diff --git a/langtools/test/tools/javac/diags/examples/InferredDoNotConformToEq.java b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToEq.java new file mode 100644 index 00000000000..d644ae82bf7 --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToEq.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.err.cant.apply.symbol.1 +// key: compiler.misc.inferred.do.not.conform.to.eq.bounds + +import java.util.*; + +class InferredDoNotConformToEq { + void m(List lx1, List lx2) {} + { this.m(Arrays.asList(""), Arrays.asList(1)); } +} diff --git a/langtools/test/tools/javac/diags/examples/InferredDoNotConformToLower.java b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToLower.java new file mode 100644 index 00000000000..4b3430c127a --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToLower.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.misc.invalid.inferred.types +// key: compiler.err.prob.found.req.1 +// key: compiler.misc.inferred.do.not.conform.to.lower.bounds + +import java.util.*; + +class InferredDoNotConformToLower { + List m() { return null; } + { List lss = this.m(); } +} diff --git a/langtools/test/tools/javac/diags/examples/InferredDoNotConformToUpper.java b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToUpper.java new file mode 100644 index 00000000000..35498dcb65a --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/InferredDoNotConformToUpper.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.err.cant.apply.symbol.1 +// key: compiler.misc.inferred.do.not.conform.to.upper.bounds + +import java.util.*; + +class InferredDoNotConformToUpper { + void m(X x, List lx) {} + { this.m("", Arrays.asList(1)); } +} diff --git a/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java b/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java index 7b8971371e5..fafa25b6ce9 100644 --- a/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java +++ b/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2012, 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 @@ -23,17 +23,15 @@ // key: compiler.err.prob.found.req.1 // key: compiler.misc.invalid.inferred.types -// key: compiler.misc.inferred.do.not.conform.to.bounds +// key: compiler.misc.inferred.do.not.conform.to.upper.bounds import java.util.*; class InvalidInferredTypes { - > T makeList() { - return null; - } + List m() { return null; } - public void test() { - List l = makeList(); + void test() { + List li = m(); } } diff --git a/langtools/test/tools/javac/diags/examples/WhereCaptured.java b/langtools/test/tools/javac/diags/examples/WhereCaptured.java index 78ded49f606..3fa141d32f3 100644 --- a/langtools/test/tools/javac/diags/examples/WhereCaptured.java +++ b/langtools/test/tools/javac/diags/examples/WhereCaptured.java @@ -26,7 +26,7 @@ // key: compiler.misc.where.description.typevar // key: compiler.misc.where.typevar // key: compiler.err.cant.apply.symbol.1 -// key: compiler.misc.infer.no.conforming.assignment.exists +// key: compiler.misc.inferred.do.not.conform.to.eq.bounds // key: compiler.misc.captured.type // options: -XDdiags=where,simpleNames // run: simple diff --git a/langtools/test/tools/javac/diags/examples/WhereCaptured1.java b/langtools/test/tools/javac/diags/examples/WhereCaptured1.java index 28ef10a4739..08033a08d4f 100644 --- a/langtools/test/tools/javac/diags/examples/WhereCaptured1.java +++ b/langtools/test/tools/javac/diags/examples/WhereCaptured1.java @@ -26,7 +26,7 @@ // key: compiler.misc.where.description.typevar // key: compiler.misc.where.typevar // key: compiler.err.cant.apply.symbol.1 -// key: compiler.misc.infer.no.conforming.assignment.exists +// key: compiler.misc.inferred.do.not.conform.to.eq.bounds // key: compiler.misc.captured.type // key: compiler.misc.type.null // options: -XDdiags=where,simpleNames diff --git a/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java b/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java new file mode 100644 index 00000000000..6581d170dd8 --- /dev/null +++ b/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2012, 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. + */ + +// key: compiler.misc.where.fresh.typevar +// key: compiler.misc.where.description.typevar.1 +// key: compiler.misc.where.typevar +// key: compiler.misc.invalid.inferred.types +// key: compiler.err.prob.found.req.1 +// key: compiler.misc.inferred.do.not.conform.to.upper.bounds +// options: -XDdiags=where,simpleNames +// run: simple + +import java.util.*; + +class WhereFreshTvar { + > T m() {} + + { List ls = m(); } +} diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg06.out b/langtools/test/tools/javac/generics/diamond/neg/Neg06.out index a8dfa016de3..f2fb482eabd 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg06.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg06.out @@ -1,2 +1,2 @@ -Neg06.java:16:37: compiler.err.prob.found.req.1: (compiler.misc.cant.apply.diamond.1: (compiler.misc.diamond: Neg06.CFoo), (compiler.misc.infer.no.conforming.instance.exists: X, Neg06.CFoo, Neg06.CSuperFoo)) +Neg06.java:16:37: compiler.err.prob.found.req.1: (compiler.misc.cant.apply.diamond.1: (compiler.misc.diamond: Neg06.CFoo), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number)) 1 error diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg07.out b/langtools/test/tools/javac/generics/diamond/neg/Neg07.out index 5ce7f0f4490..59c37899ed0 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg07.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg07.out @@ -1,2 +1,2 @@ -Neg07.java:17:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.inferred.do.not.conform.to.bounds: java.lang.String, java.lang.Number) +Neg07.java:17:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number) 1 error diff --git a/langtools/test/tools/javac/generics/inference/6315770/T6315770.out b/langtools/test/tools/javac/generics/inference/6315770/T6315770.out index 4a7ad7762f0..a29bda92b51 100644 --- a/langtools/test/tools/javac/generics/inference/6315770/T6315770.out +++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.out @@ -1,3 +1,3 @@ T6315770.java:16:42: compiler.err.prob.found.req.1: (compiler.misc.undetermined.type: T6315770, (compiler.misc.no.unique.maximal.instance.exists: T, java.lang.String,java.lang.Integer,java.lang.Runnable)) -T6315770.java:17:40: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: T, T6315770, T6315770) +T6315770.java:17:40: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: T, (compiler.misc.inferred.do.not.conform.to.lower.bounds: java.lang.Integer&java.lang.Runnable, java.lang.String)) 2 errors diff --git a/langtools/test/tools/javac/generics/inference/6611449/T6611449.out b/langtools/test/tools/javac/generics/inference/6611449/T6611449.out index 388f3b7c752..36a1f3bdccb 100644 --- a/langtools/test/tools/javac/generics/inference/6611449/T6611449.out +++ b/langtools/test/tools/javac/generics/inference/6611449/T6611449.out @@ -1,5 +1,5 @@ -T6611449.java:18:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T,T), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T), (compiler.misc.inferred.do.not.conform.to.bounds: java.lang.Integer, S))} -T6611449.java:19:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T,T), (compiler.misc.inferred.do.not.conform.to.bounds: java.lang.Integer, S)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T), (compiler.misc.infer.arg.length.mismatch))} -T6611449.java:20:9: compiler.err.cant.apply.symbol.1: kindname.method, m1, T, int, kindname.class, T6611449, (compiler.misc.inferred.do.not.conform.to.bounds: java.lang.Integer, S) -T6611449.java:21:9: compiler.err.cant.apply.symbol.1: kindname.method, m2, T,T, int,int, kindname.class, T6611449, (compiler.misc.inferred.do.not.conform.to.bounds: java.lang.Integer, S) +T6611449.java:18:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T,T), (compiler.misc.infer.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S))} +T6611449.java:19:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T,T), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, T6611449(T), (compiler.misc.infer.arg.length.mismatch))} +T6611449.java:20:9: compiler.err.cant.apply.symbol.1: kindname.method, m1, T, int, kindname.class, T6611449, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S) +T6611449.java:21:9: compiler.err.cant.apply.symbol.1: kindname.method, m2, T,T, int,int, kindname.class, T6611449, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S) 4 errors diff --git a/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out b/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out index b24365d9b33..51cc05c38f9 100644 --- a/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out +++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out @@ -1,2 +1,2 @@ -T6638712b.java:14:21: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: T, T, java.lang.String) +T6638712b.java:14:21: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: T, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, java.lang.String,java.lang.Object)) 1 error diff --git a/langtools/test/tools/javac/generics/inference/6638712/T6638712d.out b/langtools/test/tools/javac/generics/inference/6638712/T6638712d.out index 71a1f97d25a..709aee5894b 100644 --- a/langtools/test/tools/javac/generics/inference/6638712/T6638712d.out +++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712d.out @@ -1,2 +1,2 @@ -T6638712d.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, U,java.util.List>, int,java.util.List>, kindname.class, T6638712d, (compiler.misc.no.conforming.assignment.exists: int, java.lang.String) +T6638712d.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, U,java.util.List>, int,java.util.List>, kindname.class, T6638712d, (compiler.misc.inferred.do.not.conform.to.lower.bounds: java.lang.String, java.lang.Integer) 1 error diff --git a/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out b/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out index f18f21b859f..e6c8e2f57b1 100644 --- a/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out +++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out @@ -1,2 +1,2 @@ -T6638712e.java:17:27: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: X, T6638712e.Foo, T6638712e.Foo) +T6638712e.java:17:27: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: X, (compiler.misc.no.conforming.assignment.exists: T6638712e.Foo, T6638712e.Foo)) 1 error diff --git a/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out b/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out index 1f09fde5286..e5498de6e57 100644 --- a/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out +++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out @@ -1,2 +1,2 @@ -T6650759m.java:43:36: compiler.err.prob.found.req: java.util.List, java.util.List +T6650759m.java:43:36: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: Z, (compiler.misc.inferred.do.not.conform.to.lower.bounds: java.lang.Integer, java.lang.String)) 1 error diff --git a/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out index 8b2cdb27431..0106ab66c78 100644 --- a/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out +++ b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out @@ -1,5 +1,5 @@ -T7086601a.java:20:9: compiler.err.cant.apply.symbols: kindname.method, m1, java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m1(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m1(java.lang.Iterable,java.lang.Iterable), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String))} -T7086601a.java:24:9: compiler.err.cant.apply.symbols: kindname.method, m2, java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m2(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m2(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String))} -T7086601a.java:28:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Iterable...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String))} -T7086601a.java:32:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Iterable...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String))} +T7086601a.java:20:9: compiler.err.cant.apply.symbols: kindname.method, m1, java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m1(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m1(java.lang.Iterable,java.lang.Iterable), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String,java.lang.Object))} +T7086601a.java:24:9: compiler.err.cant.apply.symbols: kindname.method, m2, java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m2(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m2(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String,java.lang.Object))} +T7086601a.java:28:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Iterable...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String,java.lang.Object))} +T7086601a.java:32:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Iterable...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String,java.lang.Object))} 4 errors diff --git a/langtools/test/tools/javac/generics/inference/7154127/T7154127.java b/langtools/test/tools/javac/generics/inference/7154127/T7154127.java new file mode 100644 index 00000000000..a37c76c9ef0 --- /dev/null +++ b/langtools/test/tools/javac/generics/inference/7154127/T7154127.java @@ -0,0 +1,21 @@ +/** + * @test /nodynamiccopyright/ + * @bug 7154127 + * @summary Inference cleanup: remove bound check analysis from visitors in Types.java + * @compile/fail/ref=T7154127.out -XDrawDiagnostics T7154127.java + */ +class T7154127 { + + static class B {} + + static class D extends B {} + static class E extends B {} + + static class Triple { } + + static , U extends B> Triple m() { return null; } + + void test() { + Triple t = m(); + } +} diff --git a/langtools/test/tools/javac/generics/inference/7154127/T7154127.out b/langtools/test/tools/javac/generics/inference/7154127/T7154127.out new file mode 100644 index 00000000000..074808ea23c --- /dev/null +++ b/langtools/test/tools/javac/generics/inference/7154127/T7154127.out @@ -0,0 +1,2 @@ +T7154127.java:19:49: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: T,Y,U, (compiler.misc.inferred.do.not.conform.to.upper.bounds: Y, T7154127.D,T7154127.B)) +1 error From bb59715dae61ee192abe837741e85344261105d8 Mon Sep 17 00:00:00 2001 From: Bengt Rutisson Date: Fri, 13 Apr 2012 01:59:38 +0200 Subject: [PATCH 28/82] 7160728: Introduce an extra logging level for G1 logging Added log levels "fine", "finer" and "finest". Let PrintGC map to "fine" and PrintGCDetails map to "finer". Separated out the per worker information in the G1 logging to the "finest" level. Reviewed-by: stefank, jwilhelm, tonyp, johnc --- .../gc_implementation/g1/concurrentMark.cpp | 10 ++-- .../g1/concurrentMarkThread.cpp | 17 +++--- .../gc_implementation/g1/g1CollectedHeap.cpp | 27 +++++---- .../g1/g1CollectorPolicy.cpp | 35 ++++++++---- .../share/vm/gc_implementation/g1/g1Log.cpp | 56 +++++++++++++++++++ .../share/vm/gc_implementation/g1/g1Log.hpp | 56 +++++++++++++++++++ .../vm/gc_implementation/g1/g1MarkSweep.cpp | 9 +-- .../vm/gc_implementation/g1/g1_globals.hpp | 6 +- .../gc_implementation/g1/vm_operations_g1.cpp | 7 ++- 9 files changed, 177 insertions(+), 46 deletions(-) create mode 100644 hotspot/src/share/vm/gc_implementation/g1/g1Log.cpp create mode 100644 hotspot/src/share/vm/gc_implementation/g1/g1Log.hpp diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 015d99dd5ad..11616929792 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -29,6 +29,7 @@ #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/g1CollectorPolicy.hpp" #include "gc_implementation/g1/g1ErgoVerbose.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/g1OopClosures.inline.hpp" #include "gc_implementation/g1/g1RemSet.hpp" #include "gc_implementation/g1/heapRegion.inline.hpp" @@ -846,7 +847,7 @@ void ConcurrentMark::enter_first_sync_barrier(int task_num) { clear_marking_state(concurrent() /* clear_overflow */); force_overflow()->update(); - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-mark-reset-for-overflow]"); @@ -2105,7 +2106,7 @@ void ConcurrentMark::cleanup() { double end = os::elapsedTime(); _cleanup_times.add((end - start) * 1000.0); - if (PrintGC || PrintGCDetails) { + if (G1Log::fine()) { g1h->print_size_transition(gclog_or_tty, start_used_bytes, g1h->used(), @@ -2446,11 +2447,10 @@ void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) { // Inner scope to exclude the cleaning of the string and symbol // tables from the displayed time. { - bool verbose = PrintGC && PrintGCDetails; - if (verbose) { + if (G1Log::finer()) { gclog_or_tty->put(' '); } - TraceTime t("GC ref-proc", verbose, false, gclog_or_tty); + TraceTime t("GC ref-proc", G1Log::finer(), false, gclog_or_tty); ReferenceProcessor* rp = g1h->ref_processor_cm(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp index 9dcb124ceaa..9959260d51c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp @@ -26,6 +26,7 @@ #include "gc_implementation/g1/concurrentMarkThread.inline.hpp" #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/g1MMUTracker.hpp" #include "gc_implementation/g1/vm_operations_g1.hpp" #include "memory/resourceArea.hpp" @@ -104,7 +105,7 @@ void ConcurrentMarkThread::run() { double scan_start = os::elapsedTime(); if (!cm()->has_aborted()) { - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-root-region-scan-start]"); @@ -113,7 +114,7 @@ void ConcurrentMarkThread::run() { _cm->scanRootRegions(); double scan_end = os::elapsedTime(); - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-root-region-scan-end, %1.7lf]", @@ -122,7 +123,7 @@ void ConcurrentMarkThread::run() { } double mark_start_sec = os::elapsedTime(); - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-mark-start]"); @@ -146,7 +147,7 @@ void ConcurrentMarkThread::run() { os::sleep(current_thread, sleep_time_ms, false); } - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-mark-end, %1.7lf sec]", @@ -165,7 +166,7 @@ void ConcurrentMarkThread::run() { } if (cm()->restart_for_overflow()) { - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-mark-restart-for-overflow]"); @@ -211,7 +212,7 @@ void ConcurrentMarkThread::run() { // reclaimed by cleanup. double cleanup_start_sec = os::elapsedTime(); - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-cleanup-start]"); @@ -232,7 +233,7 @@ void ConcurrentMarkThread::run() { g1h->reset_free_regions_coming(); double cleanup_end_sec = os::elapsedTime(); - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-cleanup-end, %1.7lf]", @@ -273,7 +274,7 @@ void ConcurrentMarkThread::run() { _sts.leave(); if (cm()->has_aborted()) { - if (PrintGC) { + if (G1Log::fine()) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("[GC concurrent-mark-abort]"); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 1e1f70f3443..b585218e4a0 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -33,6 +33,7 @@ #include "gc_implementation/g1/g1CollectorPolicy.hpp" #include "gc_implementation/g1/g1ErgoVerbose.hpp" #include "gc_implementation/g1/g1EvacFailure.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/g1MarkSweep.hpp" #include "gc_implementation/g1/g1OopClosures.inline.hpp" #include "gc_implementation/g1/g1RemSet.inline.hpp" @@ -1255,10 +1256,10 @@ bool G1CollectedHeap::do_collection(bool explicit_gc, // Timing bool system_gc = (gc_cause() == GCCause::_java_lang_system_gc); assert(!system_gc || explicit_gc, "invariant"); - gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps); - TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty); + gclog_or_tty->date_stamp(G1Log::fine() && PrintGCDateStamps); + TraceCPUTime tcpu(G1Log::finer(), true, gclog_or_tty); TraceTime t(system_gc ? "Full GC (System.gc())" : "Full GC", - PrintGC, true, gclog_or_tty); + G1Log::fine(), true, gclog_or_tty); TraceCollectorStats tcs(g1mm()->full_collection_counters()); TraceMemoryManagerStats tms(true /* fullGC */, gc_cause()); @@ -1444,7 +1445,7 @@ bool G1CollectedHeap::do_collection(bool explicit_gc, heap_region_iterate(&rebuild_rs); } - if (PrintGC) { + if (G1Log::fine()) { print_size_transition(gclog_or_tty, g1h_prev_used, used(), capacity()); } @@ -1917,6 +1918,8 @@ jint G1CollectedHeap::initialize() { CollectedHeap::pre_initialize(); os::enable_vtime(); + G1Log::init(); + // Necessary to satisfy locking discipline assertions. MutexLocker x(Heap_lock); @@ -3609,12 +3612,12 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { increment_total_full_collections(); } - // if PrintGCDetails is on, we'll print long statistics information + // if the log level is "finer" is on, we'll print long statistics information // in the collector policy code, so let's not print this as the output // is messy if we do. - gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps); - TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty); - TraceTime t(verbose_str, PrintGC && !PrintGCDetails, true, gclog_or_tty); + gclog_or_tty->date_stamp(G1Log::fine() && PrintGCDateStamps); + TraceCPUTime tcpu(G1Log::finer(), true, gclog_or_tty); + TraceTime t(verbose_str, G1Log::fine() && !G1Log::finer(), true, gclog_or_tty); TraceCollectorStats tcs(g1mm()->incremental_collection_counters()); TraceMemoryManagerStats tms(false /* fullGC */, gc_cause()); @@ -3931,8 +3934,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { } // The closing of the inner scope, immediately above, will complete - // the PrintGC logging output. The record_collection_pause_end() call - // above will complete the logging output of PrintGCDetails. + // logging at the "fine" level. The record_collection_pause_end() call + // above will complete logging at the "finer" level. // // It is not yet to safe, however, to tell the concurrent mark to // start as we have some optional output below. We don't want the @@ -5514,9 +5517,9 @@ void G1CollectedHeap::evacuate_collection_set() { if (evacuation_failed()) { remove_self_forwarding_pointers(); - if (PrintGCDetails) { + if (G1Log::finer()) { gclog_or_tty->print(" (to-space overflow)"); - } else if (PrintGC) { + } else if (G1Log::fine()) { gclog_or_tty->print("--"); } } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 8b4cc1360cb..fc0e4f92de3 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -29,6 +29,7 @@ #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/g1CollectorPolicy.hpp" #include "gc_implementation/g1/g1ErgoVerbose.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/heapRegionRemSet.hpp" #include "gc_implementation/shared/gcPolicyCounters.hpp" #include "runtime/arguments.hpp" @@ -885,7 +886,7 @@ void G1CollectorPolicy::record_stop_world_start() { void G1CollectorPolicy::record_collection_pause_start(double start_time_sec, size_t start_used) { - if (PrintGCDetails) { + if (G1Log::finer()) { gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print("[GC pause"); gclog_or_tty->print(" (%s)", gcs_are_young() ? "young" : "mixed"); @@ -1022,11 +1023,16 @@ void G1CollectorPolicy::print_par_stats(int level, if (val > max) max = val; total += val; - buf.append(" %3.1lf", val); + if (G1Log::finest()) { + buf.append(" %.1lf", val); + } + } + + if (G1Log::finest()) { + buf.append_and_print_cr(""); } - buf.append_and_print_cr(""); double avg = total / (double) no_of_gc_threads(); - buf.append_and_print_cr(" Avg: %5.1lf, Min: %5.1lf, Max: %5.1lf, Diff: %5.1lf]", + buf.append_and_print_cr(" Avg: %.1lf Min: %.1lf Max: %.1lf Diff: %.1lf]", avg, min, max, max - min); } @@ -1223,7 +1229,7 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { // These values are used to update the summary information that is // displayed when TraceGen0Time is enabled, and are output as part - // of the PrintGCDetails output, in the non-parallel case. + // of the "finer" output, in the non-parallel case. double ext_root_scan_time = avg_value(_par_last_ext_root_scan_times_ms); double satb_filtering_time = avg_value(_par_last_satb_filtering_times_ms); @@ -1356,8 +1362,7 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { } } - // PrintGCDetails output - if (PrintGCDetails) { + if (G1Log::finer()) { bool print_marking_info = _g1->mark_in_progress() && !last_pause_included_initial_mark; @@ -1376,11 +1381,15 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { print_par_stats(2, "SATB Filtering", _par_last_satb_filtering_times_ms); } print_par_stats(2, "Update RS", _par_last_update_rs_times_ms); - print_par_sizes(3, "Processed Buffers", _par_last_update_rs_processed_buffers); + if (G1Log::finest()) { + print_par_sizes(3, "Processed Buffers", _par_last_update_rs_processed_buffers); + } print_par_stats(2, "Scan RS", _par_last_scan_rs_times_ms); print_par_stats(2, "Object Copy", _par_last_obj_copy_times_ms); print_par_stats(2, "Termination", _par_last_termination_times_ms); - print_par_sizes(3, "Termination Attempts", _par_last_termination_attempts); + if (G1Log::finest()) { + print_par_sizes(3, "Termination Attempts", _par_last_termination_attempts); + } for (int i = 0; i < _parallel_gc_threads; i++) { _par_last_gc_worker_times_ms[i] = _par_last_gc_worker_end_times_ms[i] - @@ -1406,7 +1415,9 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { print_stats(1, "SATB Filtering", satb_filtering_time); } print_stats(1, "Update RS", update_rs_time); - print_stats(2, "Processed Buffers", (int)update_rs_processed_buffers); + if (G1Log::finest()) { + print_stats(2, "Processed Buffers", (int)update_rs_processed_buffers); + } print_stats(1, "Scan RS", scan_rs_time); print_stats(1, "Object Copying", obj_copy_time); } @@ -1610,7 +1621,7 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { proper_unit_for_byte_size((bytes)) void G1CollectorPolicy::print_heap_transition() { - if (PrintGCDetails) { + if (G1Log::finer()) { YoungList* young_list = _g1->young_list(); size_t eden_bytes = young_list->eden_used_bytes(); size_t survivor_bytes = young_list->survivor_used_bytes(); @@ -1637,7 +1648,7 @@ void G1CollectorPolicy::print_heap_transition() { EXT_SIZE_PARAMS(capacity)); _prev_eden_capacity = eden_capacity; - } else if (PrintGC) { + } else if (G1Log::fine()) { _g1->print_size_transition(gclog_or_tty, _cur_collection_pause_used_at_start_bytes, _g1->used(), _g1->capacity()); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1Log.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1Log.cpp new file mode 100644 index 00000000000..56d957f76b4 --- /dev/null +++ b/hotspot/src/share/vm/gc_implementation/g1/g1Log.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2012, 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. + * + */ + +#include "precompiled.hpp" +#include "gc_implementation/g1/g1_globals.hpp" +#include "gc_implementation/g1/g1Log.hpp" +#include "runtime/globals.hpp" + +G1Log::LogLevel G1Log::_level = G1Log::LevelNone; + +// If G1LogLevel has not been set up we will use the values of PrintGC +// and PrintGCDetails for the logging level. +// - PrintGC maps to "fine". +// - PrintGCDetails maps to "finer". +void G1Log::init() { + if (G1LogLevel != NULL && G1LogLevel[0] != '\0') { + if (strncmp("none", G1LogLevel, 4) == 0 && G1LogLevel[4] == '\0') { + _level = LevelNone; + } else if (strncmp("fine", G1LogLevel, 4) == 0 && G1LogLevel[4] == '\0') { + _level = LevelFine; + } else if (strncmp("finer", G1LogLevel, 5) == 0 && G1LogLevel[5] == '\0') { + _level = LevelFiner; + } else if (strncmp("finest", G1LogLevel, 6) == 0 && G1LogLevel[6] == '\0') { + _level = LevelFinest; + } else { + warning("Unknown logging level '%s', should be one of 'fine', 'finer' or 'finest'.", G1LogLevel); + } + } else { + if (PrintGCDetails) { + _level = LevelFiner; + } else if (PrintGC) { + _level = LevelFine; + } + } +} diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1Log.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1Log.hpp new file mode 100644 index 00000000000..b8da001cfd6 --- /dev/null +++ b/hotspot/src/share/vm/gc_implementation/g1/g1Log.hpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2012, 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. + * + */ + +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1LOG_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1LOG_HPP + +#include "memory/allocation.hpp" + +class G1Log : public AllStatic { + typedef enum { + LevelNone, + LevelFine, + LevelFiner, + LevelFinest + } LogLevel; + + static LogLevel _level; + + public: + inline static bool fine() { + return _level >= LevelFine; + } + + inline static bool finer() { + return _level >= LevelFiner; + } + + inline static bool finest() { + return _level == LevelFinest; + } + + static void init(); +}; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1LOG_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index f32030b4524..b6b27cbbb5d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -29,6 +29,7 @@ #include "classfile/vmSymbols.hpp" #include "code/codeCache.hpp" #include "code/icBuffer.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/g1MarkSweep.hpp" #include "memory/gcLocker.hpp" #include "memory/genCollectedHeap.hpp" @@ -126,7 +127,7 @@ void G1MarkSweep::allocate_stacks() { void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading, bool clear_all_softrefs) { // Recursively traverse all live objects and mark them - TraceTime tm("phase 1", PrintGC && Verbose, true, gclog_or_tty); + TraceTime tm("phase 1", G1Log::fine() && Verbose, true, gclog_or_tty); GenMarkSweep::trace(" 1"); SharedHeap* sh = SharedHeap::heap(); @@ -291,7 +292,7 @@ void G1MarkSweep::mark_sweep_phase2() { G1CollectedHeap* g1h = G1CollectedHeap::heap(); Generation* pg = g1h->perm_gen(); - TraceTime tm("phase 2", PrintGC && Verbose, true, gclog_or_tty); + TraceTime tm("phase 2", G1Log::fine() && Verbose, true, gclog_or_tty); GenMarkSweep::trace("2"); FindFirstRegionClosure cl; @@ -335,7 +336,7 @@ void G1MarkSweep::mark_sweep_phase3() { Generation* pg = g1h->perm_gen(); // Adjust the pointers to reflect the new locations - TraceTime tm("phase 3", PrintGC && Verbose, true, gclog_or_tty); + TraceTime tm("phase 3", G1Log::fine() && Verbose, true, gclog_or_tty); GenMarkSweep::trace("3"); SharedHeap* sh = SharedHeap::heap(); @@ -399,7 +400,7 @@ void G1MarkSweep::mark_sweep_phase4() { G1CollectedHeap* g1h = G1CollectedHeap::heap(); Generation* pg = g1h->perm_gen(); - TraceTime tm("phase 4", PrintGC && Verbose, true, gclog_or_tty); + TraceTime tm("phase 4", G1Log::fine() && Verbose, true, gclog_or_tty); GenMarkSweep::trace("4"); pg->compact(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp index 57e977e0691..d25e5b94722 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp @@ -26,7 +26,6 @@ #define SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP #include "runtime/globals.hpp" - // // Defines all globals flags used by the garbage-first compiler. // @@ -309,7 +308,10 @@ \ develop(uintx, G1OldCSetRegionThresholdPercent, 10, \ "An upper bound for the number of old CSet regions expressed " \ - "as a percentage of the heap size.") + "as a percentage of the heap size.") \ + \ + experimental(ccstr, G1LogLevel, NULL, \ + "Log level for G1 logging: fine, finer, finest") G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp index 05e7f35e1a0..1a330ba6483 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @@ -26,6 +26,7 @@ #include "gc_implementation/g1/concurrentMarkThread.inline.hpp" #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/vm_operations_g1.hpp" #include "gc_implementation/shared/isGCActiveMark.hpp" #include "gc_implementation/g1/vm_operations_g1.hpp" @@ -223,9 +224,9 @@ void VM_CGC_Operation::release_and_notify_pending_list_lock() { } void VM_CGC_Operation::doit() { - gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps); - TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty); - TraceTime t(_printGCMessage, PrintGC, true, gclog_or_tty); + gclog_or_tty->date_stamp(G1Log::fine() && PrintGCDateStamps); + TraceCPUTime tcpu(G1Log::finer(), true, gclog_or_tty); + TraceTime t(_printGCMessage, G1Log::fine(), true, gclog_or_tty); SharedHeap* sh = SharedHeap::heap(); // This could go away if CollectedHeap gave access to _gc_is_active... if (sh != NULL) { From f695b75d78a0968cc91e8f71ef2435bf91d4b75e Mon Sep 17 00:00:00 2001 From: Bengt Rutisson Date: Mon, 16 Apr 2012 08:57:18 +0200 Subject: [PATCH 29/82] 4988100: oop_verify_old_oop appears to be dead Removed oop_verify_old_oop and allow_dirty. Also reviewed by: alexlamsl@gmail.com Reviewed-by: jmasa, jwilhelm --- .../compactibleFreeListSpace.cpp | 4 +- .../compactibleFreeListSpace.hpp | 4 +- .../concurrentMarkSweepGeneration.cpp | 12 +++--- .../concurrentMarkSweepGeneration.hpp | 6 +-- .../gc_implementation/g1/concurrentMark.cpp | 12 ++---- .../gc_implementation/g1/g1CollectedHeap.cpp | 37 +++++++------------ .../gc_implementation/g1/g1CollectedHeap.hpp | 4 +- .../vm/gc_implementation/g1/g1MarkSweep.cpp | 3 +- .../vm/gc_implementation/g1/heapRegion.cpp | 7 ++-- .../vm/gc_implementation/g1/heapRegion.hpp | 4 +- .../parallelScavenge/parallelScavengeHeap.cpp | 8 ++-- .../parallelScavenge/parallelScavengeHeap.hpp | 2 +- .../parallelScavenge/psOldGen.cpp | 6 +-- .../parallelScavenge/psOldGen.hpp | 4 +- .../parallelScavenge/psYoungGen.cpp | 10 ++--- .../parallelScavenge/psYoungGen.hpp | 4 +- .../shared/immutableSpace.cpp | 4 +- .../shared/immutableSpace.hpp | 4 +- .../shared/mutableNUMASpace.cpp | 4 +- .../shared/mutableNUMASpace.hpp | 4 +- .../gc_implementation/shared/mutableSpace.cpp | 4 +- .../gc_implementation/shared/mutableSpace.hpp | 4 +- .../share/vm/gc_interface/collectedHeap.hpp | 2 +- .../share/vm/memory/compactingPermGenGen.cpp | 8 ++-- .../share/vm/memory/compactingPermGenGen.hpp | 4 +- .../src/share/vm/memory/defNewGeneration.cpp | 8 ++-- .../src/share/vm/memory/defNewGeneration.hpp | 4 +- .../src/share/vm/memory/genCollectedHeap.cpp | 6 +-- .../src/share/vm/memory/genCollectedHeap.hpp | 4 +- hotspot/src/share/vm/memory/generation.cpp | 6 +-- hotspot/src/share/vm/memory/generation.hpp | 6 +-- hotspot/src/share/vm/memory/space.cpp | 23 ++---------- hotspot/src/share/vm/memory/space.hpp | 8 ++-- hotspot/src/share/vm/memory/universe.cpp | 6 +-- hotspot/src/share/vm/memory/universe.hpp | 4 +- .../src/share/vm/oops/instanceRefKlass.cpp | 26 +------------ hotspot/src/share/vm/oops/klass.cpp | 8 ---- hotspot/src/share/vm/oops/klass.hpp | 2 - hotspot/src/share/vm/oops/objArrayKlass.cpp | 7 ---- hotspot/src/share/vm/oops/objArrayKlass.hpp | 4 +- hotspot/src/share/vm/oops/oop.cpp | 12 +----- hotspot/src/share/vm/oops/oop.hpp | 4 +- hotspot/src/share/vm/runtime/vmThread.cpp | 4 +- 43 files changed, 110 insertions(+), 197 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index 2cb5e2f3cef..4f78ce5dcf7 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -2444,7 +2444,7 @@ class VerifyAllOopsClosure: public OopClosure { virtual void do_oop(narrowOop* p) { VerifyAllOopsClosure::do_oop_work(p); } }; -void CompactibleFreeListSpace::verify(bool ignored) const { +void CompactibleFreeListSpace::verify() const { assert_lock_strong(&_freelistLock); verify_objects_initialized(); MemRegion span = _collector->_span; diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp index 90d2f5f3918..c8ffba5265f 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -492,7 +492,7 @@ class CompactibleFreeListSpace: public CompactibleSpace { void print() const; void print_on(outputStream* st) const; void prepare_for_verify(); - void verify(bool allow_dirty) const; + void verify() const; void verifyFreeLists() const PRODUCT_RETURN; void verifyIndexedFreeLists() const; void verifyIndexedFreeList(size_t size) const; diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index ac8ac93ff9e..db8da2846ee 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -3109,21 +3109,21 @@ ConcurrentMarkSweepGeneration::prepare_for_verify() { } void -ConcurrentMarkSweepGeneration::verify(bool allow_dirty /* ignored */) { +ConcurrentMarkSweepGeneration::verify() { // Locks are normally acquired/released in gc_prologue/gc_epilogue, but those // are not called when the heap is verified during universe initialization and // at vm shutdown. if (freelistLock()->owned_by_self()) { - cmsSpace()->verify(false /* ignored */); + cmsSpace()->verify(); } else { MutexLockerEx fll(freelistLock(), Mutex::_no_safepoint_check_flag); - cmsSpace()->verify(false /* ignored */); + cmsSpace()->verify(); } } -void CMSCollector::verify(bool allow_dirty /* ignored */) { - _cmsGen->verify(allow_dirty); - _permGen->verify(allow_dirty); +void CMSCollector::verify() { + _cmsGen->verify(); + _permGen->verify(); } #ifndef PRODUCT diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp index 440677403fb..a097c5bb3de 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -988,7 +988,7 @@ class CMSCollector: public CHeapObj { CMSGCAdaptivePolicyCounters* gc_adaptive_policy_counters(); // debugging - void verify(bool); + void verify(); bool verify_after_remark(); void verify_ok_to_terminate() const PRODUCT_RETURN; void verify_work_stacks_empty() const PRODUCT_RETURN; @@ -1279,7 +1279,7 @@ class ConcurrentMarkSweepGeneration: public CardGeneration { // Debugging void prepare_for_verify(); - void verify(bool allow_dirty); + void verify(); void print_statistics() PRODUCT_RETURN; // Performance Counters support diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 11616929792..04bd4783a08 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -1120,8 +1120,7 @@ void ConcurrentMark::checkpointRootsFinal(bool clear_all_soft_refs) { HandleMark hm; // handle scope gclog_or_tty->print(" VerifyDuringGC:(before)"); Universe::heap()->prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } @@ -1160,8 +1159,7 @@ void ConcurrentMark::checkpointRootsFinal(bool clear_all_soft_refs) { HandleMark hm; // handle scope gclog_or_tty->print(" VerifyDuringGC:(after)"); Universe::heap()->prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UseNextMarking); } assert(!restart_for_overflow(), "sanity"); @@ -1950,8 +1948,7 @@ void ConcurrentMark::cleanup() { HandleMark hm; // handle scope gclog_or_tty->print(" VerifyDuringGC:(before)"); Universe::heap()->prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } @@ -2132,8 +2129,7 @@ void ConcurrentMark::cleanup() { HandleMark hm; // handle scope gclog_or_tty->print(" VerifyDuringGC:(after)"); Universe::heap()->prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index b585218e4a0..bcdf53f486a 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -1291,8 +1291,7 @@ bool G1CollectedHeap::do_collection(bool explicit_gc, HandleMark hm; // Discard invalid handles created during verification gclog_or_tty->print(" VerifyBeforeGC:"); prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } @@ -1366,8 +1365,7 @@ bool G1CollectedHeap::do_collection(bool explicit_gc, HandleMark hm; // Discard invalid handles created during verification gclog_or_tty->print(" VerifyAfterGC:"); prepare_for_verify(); - Universe::verify(/* allow dirty */ false, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } @@ -3036,7 +3034,6 @@ public: class VerifyRegionClosure: public HeapRegionClosure { private: - bool _allow_dirty; bool _par; VerifyOption _vo; bool _failures; @@ -3044,9 +3041,8 @@ public: // _vo == UsePrevMarking -> use "prev" marking information, // _vo == UseNextMarking -> use "next" marking information, // _vo == UseMarkWord -> use mark word from object header. - VerifyRegionClosure(bool allow_dirty, bool par, VerifyOption vo) - : _allow_dirty(allow_dirty), - _par(par), + VerifyRegionClosure(bool par, VerifyOption vo) + : _par(par), _vo(vo), _failures(false) {} @@ -3059,7 +3055,7 @@ public: "Should be unclaimed at verify points."); if (!r->continuesHumongous()) { bool failures = false; - r->verify(_allow_dirty, _vo, &failures); + r->verify(_vo, &failures); if (failures) { _failures = true; } else { @@ -3127,7 +3123,6 @@ public: class G1ParVerifyTask: public AbstractGangTask { private: G1CollectedHeap* _g1h; - bool _allow_dirty; VerifyOption _vo; bool _failures; @@ -3135,10 +3130,9 @@ public: // _vo == UsePrevMarking -> use "prev" marking information, // _vo == UseNextMarking -> use "next" marking information, // _vo == UseMarkWord -> use mark word from object header. - G1ParVerifyTask(G1CollectedHeap* g1h, bool allow_dirty, VerifyOption vo) : + G1ParVerifyTask(G1CollectedHeap* g1h, VerifyOption vo) : AbstractGangTask("Parallel verify task"), _g1h(g1h), - _allow_dirty(allow_dirty), _vo(vo), _failures(false) { } @@ -3148,7 +3142,7 @@ public: void work(uint worker_id) { HandleMark hm; - VerifyRegionClosure blk(_allow_dirty, true, _vo); + VerifyRegionClosure blk(true, _vo); _g1h->heap_region_par_iterate_chunked(&blk, worker_id, _g1h->workers()->active_workers(), HeapRegion::ParVerifyClaimValue); @@ -3158,12 +3152,11 @@ public: } }; -void G1CollectedHeap::verify(bool allow_dirty, bool silent) { - verify(allow_dirty, silent, VerifyOption_G1UsePrevMarking); +void G1CollectedHeap::verify(bool silent) { + verify(silent, VerifyOption_G1UsePrevMarking); } -void G1CollectedHeap::verify(bool allow_dirty, - bool silent, +void G1CollectedHeap::verify(bool silent, VerifyOption vo) { if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) { if (!silent) { gclog_or_tty->print("Roots (excluding permgen) "); } @@ -3215,7 +3208,7 @@ void G1CollectedHeap::verify(bool allow_dirty, assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity check"); - G1ParVerifyTask task(this, allow_dirty, vo); + G1ParVerifyTask task(this, vo); assert(UseDynamicNumberOfGCThreads || workers()->active_workers() == workers()->total_workers(), "If not dynamic should be using all the workers"); @@ -3237,7 +3230,7 @@ void G1CollectedHeap::verify(bool allow_dirty, assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity check"); } else { - VerifyRegionClosure blk(allow_dirty, false, vo); + VerifyRegionClosure blk(false, vo); heap_region_iterate(&blk); if (blk.failures()) { failures = true; @@ -3650,8 +3643,7 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { HandleMark hm; // Discard invalid handles created during verification gclog_or_tty->print(" VerifyBeforeGC:"); prepare_for_verify(); - Universe::verify(/* allow dirty */ false, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } @@ -3895,8 +3887,7 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { HandleMark hm; // Discard invalid handles created during verification gclog_or_tty->print(" VerifyAfterGC:"); prepare_for_verify(); - Universe::verify(/* allow dirty */ true, - /* silent */ false, + Universe::verify(/* silent */ false, /* option */ VerifyOption_G1UsePrevMarking); } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index ad13c52e399..5303196b454 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -1504,10 +1504,10 @@ public: // Currently there is only one place where this is called with // vo == UseMarkWord, which is to verify the marking during a // full GC. - void verify(bool allow_dirty, bool silent, VerifyOption vo); + void verify(bool silent, VerifyOption vo); // Override; it uses the "prev" marking information - virtual void verify(bool allow_dirty, bool silent); + virtual void verify(bool silent); virtual void print_on(outputStream* st) const; virtual void print_extended_on(outputStream* st) const; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index b6b27cbbb5d..02d254b6703 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -193,8 +193,7 @@ void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading, // fail. At the end of the GC, the orginal mark word values // (including hash values) are restored to the appropriate // objects. - Universe::heap()->verify(/* allow dirty */ true, - /* silent */ false, + Universe::heap()->verify(/* silent */ false, /* option */ VerifyOption_G1UseMarkWord); G1CollectedHeap* g1h = G1CollectedHeap::heap(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index 0fc499ebb78..1ac7e9eb43e 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -779,16 +779,15 @@ void HeapRegion::print_on(outputStream* st) const { G1OffsetTableContigSpace::print_on(st); } -void HeapRegion::verify(bool allow_dirty) const { +void HeapRegion::verify() const { bool dummy = false; - verify(allow_dirty, VerifyOption_G1UsePrevMarking, /* failures */ &dummy); + verify(VerifyOption_G1UsePrevMarking, /* failures */ &dummy); } // This really ought to be commoned up into OffsetTableContigSpace somehow. // We would need a mechanism to make that code skip dead objects. -void HeapRegion::verify(bool allow_dirty, - VerifyOption vo, +void HeapRegion::verify(VerifyOption vo, bool* failures) const { G1CollectedHeap* g1 = G1CollectedHeap::heap(); *failures = false; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp index 2e0b75200c1..b462389a652 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp @@ -823,10 +823,10 @@ class HeapRegion: public G1OffsetTableContigSpace { // Currently there is only one place where this is called with // vo == UseMarkWord, which is to verify the marking during a // full GC. - void verify(bool allow_dirty, VerifyOption vo, bool *failures) const; + void verify(VerifyOption vo, bool *failures) const; // Override; it uses the "prev" marking information - virtual void verify(bool allow_dirty) const; + virtual void verify() const; }; // HeapRegionClosure is used for iterating over regions. diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp index 8fef37eba32..9a8848d5399 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp @@ -911,23 +911,23 @@ void ParallelScavengeHeap::print_tracing_info() const { } -void ParallelScavengeHeap::verify(bool allow_dirty, bool silent, VerifyOption option /* ignored */) { +void ParallelScavengeHeap::verify(bool silent, VerifyOption option /* ignored */) { // Why do we need the total_collections()-filter below? if (total_collections() > 0) { if (!silent) { gclog_or_tty->print("permanent "); } - perm_gen()->verify(allow_dirty); + perm_gen()->verify(); if (!silent) { gclog_or_tty->print("tenured "); } - old_gen()->verify(allow_dirty); + old_gen()->verify(); if (!silent) { gclog_or_tty->print("eden "); } - young_gen()->verify(allow_dirty); + young_gen()->verify(); } } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp index 5934cdfb888..e118997169d 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @@ -257,7 +257,7 @@ CollectorPolicy* collector_policy() const { return (CollectorPolicy*) _collector virtual void gc_threads_do(ThreadClosure* tc) const; virtual void print_tracing_info() const; - void verify(bool allow_dirty, bool silent, VerifyOption option /* ignored */); + void verify(bool silent, VerifyOption option /* ignored */); void print_heap_change(size_t prev_used); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp index a46ac632904..63df001b319 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -477,8 +477,8 @@ void PSOldGen::space_invariants() { } #endif -void PSOldGen::verify(bool allow_dirty) { - object_space()->verify(allow_dirty); +void PSOldGen::verify() { + object_space()->verify(); } class VerifyObjectStartArrayClosure : public ObjectClosure { PSOldGen* _gen; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp index 174db29aebb..ce45376f01e 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -174,7 +174,7 @@ class PSOldGen : public CHeapObj { virtual void print_on(outputStream* st) const; void print_used_change(size_t prev_used) const; - void verify(bool allow_dirty); + void verify(); void verify_object_start_array(); // These should not used diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp index 5355abe0a73..70c071dfe49 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -937,10 +937,10 @@ void PSYoungGen::update_counters() { } } -void PSYoungGen::verify(bool allow_dirty) { - eden_space()->verify(allow_dirty); - from_space()->verify(allow_dirty); - to_space()->verify(allow_dirty); +void PSYoungGen::verify() { + eden_space()->verify(); + from_space()->verify(); + to_space()->verify(); } #ifndef PRODUCT diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp index 640c7614c10..b5a2a14bbbf 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -181,7 +181,7 @@ class PSYoungGen : public CHeapObj { void print_used_change(size_t prev_used) const; virtual const char* name() const { return "PSYoungGen"; } - void verify(bool allow_dirty); + void verify(); // Space boundary invariant checker void space_invariants() PRODUCT_RETURN; diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp index de081655685..68af9ebb6ac 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -70,7 +70,7 @@ void ImmutableSpace::print() const { #endif -void ImmutableSpace::verify(bool allow_dirty) { +void ImmutableSpace::verify() { HeapWord* p = bottom(); HeapWord* t = end(); HeapWord* prev_p = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp index bc5c1bd13b0..7d6be0d9f85 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -65,7 +65,7 @@ class ImmutableSpace: public CHeapObj { // Debugging virtual void print() const PRODUCT_RETURN; virtual void print_short() const PRODUCT_RETURN; - virtual void verify(bool allow_dirty); + virtual void verify(); }; #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp index 706fd3733eb..f0f6a49d958 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp @@ -891,12 +891,12 @@ void MutableNUMASpace::print_on(outputStream* st) const { } } -void MutableNUMASpace::verify(bool allow_dirty) { +void MutableNUMASpace::verify() { // This can be called after setting an arbitary value to the space's top, // so an object can cross the chunk boundary. We ensure the parsablity // of the space and just walk the objects in linear fashion. ensure_parsability(); - MutableSpace::verify(allow_dirty); + MutableSpace::verify(); } // Scan pages and gather stats about page placement and size. diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp index 7b70e6e29d9..db7207cc24b 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2012, 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 @@ -225,7 +225,7 @@ class MutableNUMASpace : public MutableSpace { // Debugging virtual void print_on(outputStream* st) const; virtual void print_short_on(outputStream* st) const; - virtual void verify(bool allow_dirty); + virtual void verify(); virtual void set_top(HeapWord* value); }; diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp index 9725c4a1ebd..c47fbecab84 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -246,7 +246,7 @@ void MutableSpace::print_on(outputStream* st) const { bottom(), top(), end()); } -void MutableSpace::verify(bool allow_dirty) { +void MutableSpace::verify() { HeapWord* p = bottom(); HeapWord* t = top(); HeapWord* prev_p = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp index 01fb23f050f..9ef8922848a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -141,7 +141,7 @@ class MutableSpace: public ImmutableSpace { virtual void print_on(outputStream* st) const; virtual void print_short() const; virtual void print_short_on(outputStream* st) const; - virtual void verify(bool allow_dirty); + virtual void verify(); }; #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp index 2ae92076e24..105e1ea8f24 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp @@ -659,7 +659,7 @@ class CollectedHeap : public CHeapObj { } // Heap verification - virtual void verify(bool allow_dirty, bool silent, VerifyOption option) = 0; + virtual void verify(bool silent, VerifyOption option) = 0; // Non product verification and debugging. #ifndef PRODUCT diff --git a/hotspot/src/share/vm/memory/compactingPermGenGen.cpp b/hotspot/src/share/vm/memory/compactingPermGenGen.cpp index c903bf46d27..7d1515b5e67 100644 --- a/hotspot/src/share/vm/memory/compactingPermGenGen.cpp +++ b/hotspot/src/share/vm/memory/compactingPermGenGen.cpp @@ -444,11 +444,11 @@ void CompactingPermGenGen::invalidate_remembered_set() { } -void CompactingPermGenGen::verify(bool allow_dirty) { - the_space()->verify(allow_dirty); +void CompactingPermGenGen::verify() { + the_space()->verify(); if (!SharedSkipVerify && spec()->enable_shared_spaces()) { - ro_space()->verify(allow_dirty); - rw_space()->verify(allow_dirty); + ro_space()->verify(); + rw_space()->verify(); } } diff --git a/hotspot/src/share/vm/memory/compactingPermGenGen.hpp b/hotspot/src/share/vm/memory/compactingPermGenGen.hpp index e3428d72f18..3cab19cf930 100644 --- a/hotspot/src/share/vm/memory/compactingPermGenGen.hpp +++ b/hotspot/src/share/vm/memory/compactingPermGenGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, 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 @@ -230,7 +230,7 @@ public: void* new_vtable_start, void* obj); - void verify(bool allow_dirty); + void verify(); // Serialization static void initialize_oops() KERNEL_RETURN; diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp index 69ae3624a25..315a38248c9 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.cpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp @@ -939,10 +939,10 @@ void DefNewGeneration::update_counters() { } } -void DefNewGeneration::verify(bool allow_dirty) { - eden()->verify(allow_dirty); - from()->verify(allow_dirty); - to()->verify(allow_dirty); +void DefNewGeneration::verify() { + eden()->verify(); + from()->verify(); + to()->verify(); } void DefNewGeneration::print_on(outputStream* st) const { diff --git a/hotspot/src/share/vm/memory/defNewGeneration.hpp b/hotspot/src/share/vm/memory/defNewGeneration.hpp index e7b85285775..1d5a4859041 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.hpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -340,7 +340,7 @@ protected: // PrintHeapAtGC support. void print_on(outputStream* st) const; - void verify(bool allow_dirty); + void verify(); bool promo_failure_scan_is_complete() const { return _promo_failure_scan_stack.is_empty(); diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp index 3cd791d35a2..10c3274548d 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp @@ -1247,18 +1247,18 @@ GCStats* GenCollectedHeap::gc_stats(int level) const { return _gens[level]->gc_stats(); } -void GenCollectedHeap::verify(bool allow_dirty, bool silent, VerifyOption option /* ignored */) { +void GenCollectedHeap::verify(bool silent, VerifyOption option /* ignored */) { if (!silent) { gclog_or_tty->print("permgen "); } - perm_gen()->verify(allow_dirty); + perm_gen()->verify(); for (int i = _n_gens-1; i >= 0; i--) { Generation* g = _gens[i]; if (!silent) { gclog_or_tty->print(g->name()); gclog_or_tty->print(" "); } - g->verify(allow_dirty); + g->verify(); } if (!silent) { gclog_or_tty->print("remset "); diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.hpp b/hotspot/src/share/vm/memory/genCollectedHeap.hpp index 5f35dec41e2..557d0a96095 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.hpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -357,7 +357,7 @@ public: void prepare_for_verify(); // Override. - void verify(bool allow_dirty, bool silent, VerifyOption option); + void verify(bool silent, VerifyOption option); // Override. virtual void print_on(outputStream* st) const; diff --git a/hotspot/src/share/vm/memory/generation.cpp b/hotspot/src/share/vm/memory/generation.cpp index 75a373285d9..13e08586ba5 100644 --- a/hotspot/src/share/vm/memory/generation.cpp +++ b/hotspot/src/share/vm/memory/generation.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -696,8 +696,8 @@ void OneContigSpaceCardGeneration::record_spaces_top() { the_space()->set_top_for_allocations(); } -void OneContigSpaceCardGeneration::verify(bool allow_dirty) { - the_space()->verify(allow_dirty); +void OneContigSpaceCardGeneration::verify() { + the_space()->verify(); } void OneContigSpaceCardGeneration::print_on(outputStream* st) const { diff --git a/hotspot/src/share/vm/memory/generation.hpp b/hotspot/src/share/vm/memory/generation.hpp index 61fcf187cfd..5c62e8bf2de 100644 --- a/hotspot/src/share/vm/memory/generation.hpp +++ b/hotspot/src/share/vm/memory/generation.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -599,7 +599,7 @@ class Generation: public CHeapObj { virtual void print() const; virtual void print_on(outputStream* st) const; - virtual void verify(bool allow_dirty) = 0; + virtual void verify() = 0; struct StatRecord { int invocations; @@ -753,7 +753,7 @@ class OneContigSpaceCardGeneration: public CardGeneration { virtual void record_spaces_top(); - virtual void verify(bool allow_dirty); + virtual void verify(); virtual void print_on(outputStream* st) const; }; diff --git a/hotspot/src/share/vm/memory/space.cpp b/hotspot/src/share/vm/memory/space.cpp index 7f3aceb3224..b096775cfcb 100644 --- a/hotspot/src/share/vm/memory/space.cpp +++ b/hotspot/src/share/vm/memory/space.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -531,7 +531,7 @@ void OffsetTableContigSpace::print_on(outputStream* st) const { bottom(), top(), _offsets.threshold(), end()); } -void ContiguousSpace::verify(bool allow_dirty) const { +void ContiguousSpace::verify() const { HeapWord* p = bottom(); HeapWord* t = top(); HeapWord* prev_p = NULL; @@ -965,27 +965,12 @@ OffsetTableContigSpace::OffsetTableContigSpace(BlockOffsetSharedArray* sharedOff initialize(mr, SpaceDecorator::Clear, SpaceDecorator::Mangle); } - -class VerifyOldOopClosure : public OopClosure { - public: - oop _the_obj; - bool _allow_dirty; - void do_oop(oop* p) { - _the_obj->verify_old_oop(p, _allow_dirty); - } - void do_oop(narrowOop* p) { - _the_obj->verify_old_oop(p, _allow_dirty); - } -}; - #define OBJ_SAMPLE_INTERVAL 0 #define BLOCK_SAMPLE_INTERVAL 100 -void OffsetTableContigSpace::verify(bool allow_dirty) const { +void OffsetTableContigSpace::verify() const { HeapWord* p = bottom(); HeapWord* prev_p = NULL; - VerifyOldOopClosure blk; // Does this do anything? - blk._allow_dirty = allow_dirty; int objs = 0; int blocks = 0; @@ -1007,8 +992,6 @@ void OffsetTableContigSpace::verify(bool allow_dirty) const { if (objs == OBJ_SAMPLE_INTERVAL) { oop(p)->verify(); - blk._the_obj = oop(p); - oop(p)->oop_iterate(&blk); objs = 0; } else { objs++; diff --git a/hotspot/src/share/vm/memory/space.hpp b/hotspot/src/share/vm/memory/space.hpp index 2d718c2a5c8..33b56cf0651 100644 --- a/hotspot/src/share/vm/memory/space.hpp +++ b/hotspot/src/share/vm/memory/space.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -306,7 +306,7 @@ class Space: public CHeapObj { } // Debugging - virtual void verify(bool allow_dirty) const = 0; + virtual void verify() const = 0; }; // A MemRegionClosure (ResourceObj) whose "do_MemRegion" function applies an @@ -948,7 +948,7 @@ class ContiguousSpace: public CompactibleSpace { } // Debugging - virtual void verify(bool allow_dirty) const; + virtual void verify() const; // Used to increase collection frequency. "factor" of 0 means entire // space. @@ -1100,7 +1100,7 @@ class OffsetTableContigSpace: public ContiguousSpace { virtual void print_on(outputStream* st) const; // Debugging - void verify(bool allow_dirty) const; + void verify() const; // Shared space support void serialize_block_offset_array_offsets(SerializeOopClosure* soc); diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index 2651f4d8e30..9282828a7e9 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -1326,7 +1326,7 @@ void Universe::print_heap_after_gc(outputStream* st, bool ignore_extended) { st->print_cr("}"); } -void Universe::verify(bool allow_dirty, bool silent, VerifyOption option) { +void Universe::verify(bool silent, VerifyOption option) { if (SharedSkipVerify) { return; } @@ -1350,7 +1350,7 @@ void Universe::verify(bool allow_dirty, bool silent, VerifyOption option) { if (!silent) gclog_or_tty->print("[Verifying "); if (!silent) gclog_or_tty->print("threads "); Threads::verify(); - heap()->verify(allow_dirty, silent, option); + heap()->verify(silent, option); if (!silent) gclog_or_tty->print("syms "); SymbolTable::verify(); diff --git a/hotspot/src/share/vm/memory/universe.hpp b/hotspot/src/share/vm/memory/universe.hpp index 5c1587ee44a..073a5c2ca75 100644 --- a/hotspot/src/share/vm/memory/universe.hpp +++ b/hotspot/src/share/vm/memory/universe.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -412,7 +412,7 @@ class Universe: AllStatic { // Debugging static bool verify_in_progress() { return _verify_in_progress; } - static void verify(bool allow_dirty = true, bool silent = false, + static void verify(bool silent = false, VerifyOption option = VerifyOption_Default ); static int verify_count() { return _verify_count; } // The default behavior is to call print_on() on gclog_or_tty. diff --git a/hotspot/src/share/vm/oops/instanceRefKlass.cpp b/hotspot/src/share/vm/oops/instanceRefKlass.cpp index 71a7a1fcff3..1cabe507eae 100644 --- a/hotspot/src/share/vm/oops/instanceRefKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceRefKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -497,36 +497,12 @@ void instanceRefKlass::oop_verify_on(oop obj, outputStream* st) { if (referent != NULL) { guarantee(referent->is_oop(), "referent field heap failed"); - if (gch != NULL && !gch->is_in_young(obj)) { - // We do a specific remembered set check here since the referent - // field is not part of the oop mask and therefore skipped by the - // regular verify code. - if (UseCompressedOops) { - narrowOop* referent_addr = (narrowOop*)java_lang_ref_Reference::referent_addr(obj); - obj->verify_old_oop(referent_addr, true); - } else { - oop* referent_addr = (oop*)java_lang_ref_Reference::referent_addr(obj); - obj->verify_old_oop(referent_addr, true); - } - } } // Verify next field oop next = java_lang_ref_Reference::next(obj); if (next != NULL) { guarantee(next->is_oop(), "next field verify failed"); guarantee(next->is_instanceRef(), "next field verify failed"); - if (gch != NULL && !gch->is_in_young(obj)) { - // We do a specific remembered set check here since the next field is - // not part of the oop mask and therefore skipped by the regular - // verify code. - if (UseCompressedOops) { - narrowOop* next_addr = (narrowOop*)java_lang_ref_Reference::next_addr(obj); - obj->verify_old_oop(next_addr, true); - } else { - oop* next_addr = (oop*)java_lang_ref_Reference::next_addr(obj); - obj->verify_old_oop(next_addr, true); - } - } } } diff --git a/hotspot/src/share/vm/oops/klass.cpp b/hotspot/src/share/vm/oops/klass.cpp index 84abea68a80..8b21fdd99ed 100644 --- a/hotspot/src/share/vm/oops/klass.cpp +++ b/hotspot/src/share/vm/oops/klass.cpp @@ -581,14 +581,6 @@ void Klass::oop_verify_on(oop obj, outputStream* st) { guarantee(obj->klass()->is_klass(), "klass field is not a klass"); } - -void Klass::oop_verify_old_oop(oop obj, oop* p, bool allow_dirty) { - /* $$$ I think this functionality should be handled by verification of - RememberedSet::verify_old_oop(obj, p, allow_dirty, false); - the card table. */ -} -void Klass::oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty) { } - #ifndef PRODUCT void Klass::verify_vtable_index(int i) { diff --git a/hotspot/src/share/vm/oops/klass.hpp b/hotspot/src/share/vm/oops/klass.hpp index 1b26932e8fa..bcbd4e736f4 100644 --- a/hotspot/src/share/vm/oops/klass.hpp +++ b/hotspot/src/share/vm/oops/klass.hpp @@ -805,8 +805,6 @@ class Klass : public Klass_vtbl { // Verification virtual const char* internal_name() const = 0; virtual void oop_verify_on(oop obj, outputStream* st); - virtual void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty); - virtual void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty); // tells whether obj is partially constructed (gc during class loading) virtual bool oop_partially_loaded(oop obj) const { return false; } virtual void oop_set_partially_loaded(oop obj) {}; diff --git a/hotspot/src/share/vm/oops/objArrayKlass.cpp b/hotspot/src/share/vm/oops/objArrayKlass.cpp index 79b1df24ff4..c152664bf58 100644 --- a/hotspot/src/share/vm/oops/objArrayKlass.cpp +++ b/hotspot/src/share/vm/oops/objArrayKlass.cpp @@ -545,10 +545,3 @@ void objArrayKlass::oop_verify_on(oop obj, outputStream* st) { guarantee(oa->obj_at(index)->is_oop_or_null(), "should be oop"); } } - -void objArrayKlass::oop_verify_old_oop(oop obj, oop* p, bool allow_dirty) { - /* $$$ move into remembered set verification? - RememberedSet::verify_old_oop(obj, p, allow_dirty, true); - */ -} -void objArrayKlass::oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty) {} diff --git a/hotspot/src/share/vm/oops/objArrayKlass.hpp b/hotspot/src/share/vm/oops/objArrayKlass.hpp index 44717ec6954..ebf6a9e4187 100644 --- a/hotspot/src/share/vm/oops/objArrayKlass.hpp +++ b/hotspot/src/share/vm/oops/objArrayKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -144,8 +144,6 @@ class objArrayKlass : public arrayKlass { // Verification const char* internal_name() const; void oop_verify_on(oop obj, outputStream* st); - void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty); - void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty); }; #endif // SHARE_VM_OOPS_OBJARRAYKLASS_HPP diff --git a/hotspot/src/share/vm/oops/oop.cpp b/hotspot/src/share/vm/oops/oop.cpp index f836fb792d8..61cf38d313f 100644 --- a/hotspot/src/share/vm/oops/oop.cpp +++ b/hotspot/src/share/vm/oops/oop.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -107,16 +107,6 @@ void oopDesc::verify() { verify_on(tty); } - -// XXX verify_old_oop doesn't do anything (should we remove?) -void oopDesc::verify_old_oop(oop* p, bool allow_dirty) { - blueprint()->oop_verify_old_oop(this, p, allow_dirty); -} - -void oopDesc::verify_old_oop(narrowOop* p, bool allow_dirty) { - blueprint()->oop_verify_old_oop(this, p, allow_dirty); -} - bool oopDesc::partially_loaded() { return blueprint()->oop_partially_loaded(this); } diff --git a/hotspot/src/share/vm/oops/oop.hpp b/hotspot/src/share/vm/oops/oop.hpp index 4d2f4537024..694d92113a1 100644 --- a/hotspot/src/share/vm/oops/oop.hpp +++ b/hotspot/src/share/vm/oops/oop.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -293,8 +293,6 @@ class oopDesc { // verification operations void verify_on(outputStream* st); void verify(); - void verify_old_oop(oop* p, bool allow_dirty); - void verify_old_oop(narrowOop* p, bool allow_dirty); // tells whether this oop is partially constructed (gc during class loading) bool partially_loaded(); diff --git a/hotspot/src/share/vm/runtime/vmThread.cpp b/hotspot/src/share/vm/runtime/vmThread.cpp index d4fced26dcb..9e421488b26 100644 --- a/hotspot/src/share/vm/runtime/vmThread.cpp +++ b/hotspot/src/share/vm/runtime/vmThread.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, 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 @@ -304,7 +304,7 @@ void VMThread::run() { os::check_heap(); // Silent verification so as not to pollute normal output, // unless we really asked for it. - Universe::verify(true, !(PrintGCDetails || Verbose)); + Universe::verify(!(PrintGCDetails || Verbose)); } CompileBroker::set_should_block(); From 99802ac63d8b65e717654a83cce42b7c9433122c Mon Sep 17 00:00:00 2001 From: Stefan Karlsson Date: Wed, 11 Apr 2012 16:18:45 +0200 Subject: [PATCH 30/82] 7160613: VerifyRememberedSets doesn't work with CompressedOops Use load_decode_heap_oop instead of load_decode_heap_oop_not_null Reviewed-by: tonyp, brutisso --- .../gc_implementation/parallelScavenge/cardTableExtension.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp index 6e42facf29e..b5ee675b17b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp @@ -42,7 +42,7 @@ class CheckForUnmarkedOops : public OopClosure { protected: template void do_oop_work(T* p) { - oop obj = oopDesc::load_decode_heap_oop_not_null(p); + oop obj = oopDesc::load_decode_heap_oop(p); if (_young_gen->is_in_reserved(obj) && !_card_table->addr_is_marked_imprecise(p)) { // Don't overwrite the first missing card mark From 5017ee9fdb496a864ac61a5b8fb50c9f5313f20f Mon Sep 17 00:00:00 2001 From: "Daniel D. Daugherty" Date: Wed, 11 Apr 2012 07:26:35 -0700 Subject: [PATCH 31/82] 7071907: JDK: Full Debug Symbols Add initial FDS support to some libraries and programs. Reviewed-by: kamg, fparain, sspitsyn, dsamersoff --- jdk/make/com/sun/tools/attach/Makefile | 4 +- jdk/make/common/Defs-linux.gmk | 16 ++++++- jdk/make/common/Defs-solaris.gmk | 20 ++++++++- jdk/make/common/Library.gmk | 40 +++++++++++++++++ jdk/make/common/Program.gmk | 44 +++++++++++++++++++ jdk/make/common/Release.gmk | 10 +++-- jdk/make/java/instrument/Makefile | 4 +- jdk/make/java/java_crw_demo/Makefile | 4 +- jdk/make/java/java_hprof_demo/Makefile | 4 +- jdk/make/java/main/java/Makefile | 4 +- jdk/make/java/management/Makefile | 4 +- jdk/make/java/npt/Makefile | 4 +- jdk/make/java/verify/Makefile | 4 +- jdk/make/jpda/jdwp/Makefile | 4 +- jdk/make/jpda/transport/socket/Makefile | 4 +- jdk/make/launchers/Makefile.launcher | 2 + .../mkdemo/jvmti/compiledMethodLoad/Makefile | 4 +- jdk/make/mkdemo/jvmti/gctest/Makefile | 4 +- jdk/make/mkdemo/jvmti/heapTracker/Makefile | 4 +- jdk/make/mkdemo/jvmti/heapViewer/Makefile | 4 +- jdk/make/mkdemo/jvmti/hprof/Makefile | 4 +- jdk/make/mkdemo/jvmti/minst/Makefile | 4 +- jdk/make/mkdemo/jvmti/mtrace/Makefile | 4 +- jdk/make/mkdemo/jvmti/versionCheck/Makefile | 4 +- jdk/make/mkdemo/jvmti/waiters/Makefile | 4 +- jdk/make/sun/tracing/dtrace/Makefile | 5 ++- 26 files changed, 186 insertions(+), 27 deletions(-) diff --git a/jdk/make/com/sun/tools/attach/Makefile b/jdk/make/com/sun/tools/attach/Makefile index 1f12824be5c..9053eaa4d24 100644 --- a/jdk/make/com/sun/tools/attach/Makefile +++ b/jdk/make/com/sun/tools/attach/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2012, 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 @@ -24,6 +24,8 @@ # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../../.. PACKAGE = com.sun.tools.attach LIBRARY = attach diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index 02bfc4ccb75..9d403b11538 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -131,8 +131,9 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the # JDK build to import .debuginfo or .diz files from the HotSpot build. # However, adding FDS support to the JDK build will occur in phases - # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS) - # is used to indicate that a particular library supports FDS. + # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS + # and PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS) is used to indicate that a + # particular library or program supports FDS. ifeq ($(OBJCOPY),) _JUNK_ := $(shell \ @@ -261,6 +262,17 @@ ifeq ($(DEBUG_BINARIES), true) CFLAGS_REQUIRED += $(DEBUG_FLAG) endif +# If Full Debug Symbols is enabled, then we want the same debug and +# optimization flags as used by FASTDEBUG. +# +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) + ifeq ($(VARIANT), OPT) + CC_OPT = $(DEBUG_FLAG) $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) + endif + endif +endif + CFLAGS_OPT = $(CC_OPT) CFLAGS_DBG = $(DEBUG_FLAG) CFLAGS_COMMON += $(CFLAGS_REQUIRED) diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk index bb484c561a5..ad445e97848 100644 --- a/jdk/make/common/Defs-solaris.gmk +++ b/jdk/make/common/Defs-solaris.gmk @@ -138,8 +138,9 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the # JDK build to import .debuginfo or .diz files from the HotSpot build. # However, adding FDS support to the JDK build will occur in phases - # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS) - # is used to indicate that a particular library supports FDS. + # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS + # and PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS) is used to indicate that a + # particular library or program supports FDS. ifeq ($(OBJCOPY),) _JUNK_ := $(shell \ @@ -240,6 +241,21 @@ ifeq ($(FASTDEBUG), true) CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) endif +# If Full Debug Symbols is enabled, then we want the same debug and +# optimization flags as used by FASTDEBUG. We also want all the +# debug info in one place (-xs). +# +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) + ifeq ($(VARIANT), OPT) + CC_OPT = -g -xs $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) + CXX_OPT = -g0 -xs $(CXX_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) + endif + CFLAGS_DEBUG_OPTION += -xs + CXXFLAGS_DEBUG_OPTION += -xs + endif +endif + CFLAGS_COMMON = -L$(OBJDIR) # Do not allow C99 language features like declarations in code etc. diff --git a/jdk/make/common/Library.gmk b/jdk/make/common/Library.gmk index 00c7897d404..2583e83dc5d 100644 --- a/jdk/make/common/Library.gmk +++ b/jdk/make/common/Library.gmk @@ -181,8 +181,17 @@ $(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf $(CP) $(OBJDIR)/$(@F) $@ @$(call binary_file_verification,$@) ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(ZIP_DEBUGINFO_FILES),1) + (set -e ; \ + $(CD) $(OBJDIR) ; \ + $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).map $(LIBRARY).pdb ; \ + ) + $(CP) $(OBJDIR)/$(LIBRARY).diz $(@D) + $(RM) $(OBJDIR)/$(LIBRARY).map $(OBJDIR)/$(LIBRARY).pdb + else $(CP) $(OBJDIR)/$(LIBRARY).map $(@D) $(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D) + endif endif endif # LIBRARY @@ -248,6 +257,37 @@ else # LIBRARY ifeq ($(WRITE_LIBVERSION),true) $(MCS) -d -a "$(FULL_VERSION)" $@ endif # WRITE_LIBVERSION + ifneq ($(PLATFORM), macosx) + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) + (set -e ; \ + $(CD) $(@D) ; \ + $(OBJCOPY) --only-keep-debug $(@F) $(LIBRARY).debuginfo ; \ + $(OBJCOPY) --add-gnu-debuglink=$(LIBRARY).debuginfo $(@F) ; \ + ) + ifeq ($(STRIP_POLICY),all_strip) + $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) + ifeq ($(PLATFORM), solaris) + $(STRIP) -x $@ + else + # assume Linux + $(STRIP) -g $@ + endif + # implied else here is no stripping at all + endif + endif + ifeq ($(ZIP_DEBUGINFO_FILES),1) + (set -e ; \ + $(CD) $(@D) ; \ + $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).debuginfo ; \ + $(RM) $(LIBRARY).debuginfo ; \ + ) + endif + endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS + endif # ENABLE_FULL_DEBUG_SYMBOLS + endif # PLATFORM-!macosx endif # LIBRARY endif # PLATFORM diff --git a/jdk/make/common/Program.gmk b/jdk/make/common/Program.gmk index c57ca01fa84..5cc83429b27 100644 --- a/jdk/make/common/Program.gmk +++ b/jdk/make/common/Program.gmk @@ -189,6 +189,15 @@ endif $(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1 endif @$(call binary_file_verification,$@) + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(ZIP_DEBUGINFO_FILES),1) + (set -e ; \ + $(CD) $(OBJDIR) ; \ + $(ZIPEXE) -q $(PROGRAM).diz $(PROGRAM).map $(PROGRAM).pdb ; \ + $(RM) $(PROGRAM).map $(PROGRAM).pdb ; \ + ) + endif + endif else # # Note that we have to link -lthread even when USE_PTHREADS is true. @@ -232,6 +241,37 @@ else -codesign -s openjdk_codesign $@ endif @$(call binary_file_verification,$@) + ifneq ($(PLATFORM), macosx) + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ifeq ($(PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS),1) + (set -e ; \ + $(CD) $(@D) ; \ + $(OBJCOPY) --only-keep-debug $(@F) $(@F).debuginfo ; \ + $(OBJCOPY) --add-gnu-debuglink=$(@F).debuginfo $(@F) ; \ + ) + ifeq ($(STRIP_POLICY),all_strip) + $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) + ifeq ($(PLATFORM), solaris) + $(STRIP) -x $@ + else + # assume Linux + $(STRIP) -g $@ + endif + # implied else here is no stripping at all + endif + endif + ifeq ($(ZIP_DEBUGINFO_FILES),1) + (set -e ; \ + $(CD) $(@D) ; \ + $(ZIPEXE) -q $(@F).diz $(@F).debuginfo ; \ + $(RM) $(@F).debuginfo ; \ + ) + endif + endif # PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS + endif # ENABLE_FULL_DEBUG_SYMBOLS + endif # PLATFORM-!macosx endif # PLATFORM clean:: @@ -240,12 +280,16 @@ ifeq ($(PLATFORM), windows) $(RM) $(OBJDIR)/$(PROGRAM).ico $(RM) $(OBJDIR)/$(PROGRAM).lcf $(RM) $(OBJDIR)/$(PROGRAM).map + $(RM) $(OBJDIR)/$(PROGRAM).pdb $(RM) $(OBJDIR)/$(PROGRAM).exp $(RM) $(OBJDIR)/$(PROGRAM).lib $(RM) $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX) $(RM) $(OBJDIR)/$(PROGRAM).ilk $(RM) *.pdb +else + $(RM) $(OBJDIR)/$(PROGRAM).debuginfo endif + $(RM) $(OBJDIR)/$(PROGRAM).diz clobber:: diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index d4e551146e0..d8ec1b713d7 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -873,7 +873,9 @@ ifeq ($(PLATFORM), windows) -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@ else $(FIND) $(JRE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@ - $(FILE) `$(FIND) $(JRE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \ +# The FILE command reports .debuginfo files as "ELF", but we don't want +# those files in the JRE_BIN_LIST file. EXE_SUFFIX is empty on non-Windows. + $(FILE) `$(FIND) $(JRE_IMAGE_DIR)/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \ | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ endif @@ -1140,9 +1142,11 @@ ifeq ($(PLATFORM), windows) else $(RM) $@ $(FIND) $(JDK_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@ - $(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \ +# The FILE command reports .debuginfo files as "ELF", but we don't want +# those files in the JDK_BIN_LIST file. EXE_SUFFIX is empty on non-Windows. + $(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \ | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ - file `$(FIND) $(JDK_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \ + file `$(FIND) $(JDK_IMAGE_DIR)/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \ | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ endif diff --git a/jdk/make/java/instrument/Makefile b/jdk/make/java/instrument/Makefile index 76a05537290..c81ce671977 100644 --- a/jdk/make/java/instrument/Makefile +++ b/jdk/make/java/instrument/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2012, 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 @@ -26,6 +26,8 @@ # Makefile for building the Java Programming Language Instrumentation Services # agent, supporting java.lang.instrument +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. PACKAGE = sun.instrument LIBRARY = instrument diff --git a/jdk/make/java/java_crw_demo/Makefile b/jdk/make/java/java_crw_demo/Makefile index ebcadd74656..96da00baaa2 100644 --- a/jdk/make/java/java_crw_demo/Makefile +++ b/jdk/make/java/java_crw_demo/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. LIBRARY = java_crw_demo diff --git a/jdk/make/java/java_hprof_demo/Makefile b/jdk/make/java/java_hprof_demo/Makefile index 9880547be71..7aab2e412d2 100644 --- a/jdk/make/java/java_hprof_demo/Makefile +++ b/jdk/make/java/java_hprof_demo/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. LIBRARY = hprof PRODUCT = sun diff --git a/jdk/make/java/main/java/Makefile b/jdk/make/java/main/java/Makefile index 1766880712c..1c3478b24f0 100644 --- a/jdk/make/java/main/java/Makefile +++ b/jdk/make/java/main/java/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PROGRAM = java PRODUCT = java diff --git a/jdk/make/java/management/Makefile b/jdk/make/java/management/Makefile index bffb5ed7bdd..61b1dc572af 100644 --- a/jdk/make/java/management/Makefile +++ b/jdk/make/java/management/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. PACKAGE = java.lang.management LIBRARY = management diff --git a/jdk/make/java/npt/Makefile b/jdk/make/java/npt/Makefile index e5efd9dd423..39fdde696ee 100644 --- a/jdk/make/java/npt/Makefile +++ b/jdk/make/java/npt/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. # It's currently used by jpda and hprof. Put it in base module for now. diff --git a/jdk/make/java/verify/Makefile b/jdk/make/java/verify/Makefile index 4343e4aa0dc..9100069f77c 100644 --- a/jdk/make/java/verify/Makefile +++ b/jdk/make/java/verify/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2012, 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 @@ -27,6 +27,8 @@ # Build libverify.so # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. PRODUCT = java LIBRARY = verify diff --git a/jdk/make/jpda/jdwp/Makefile b/jdk/make/jpda/jdwp/Makefile index 99286ae8266..fb440072e68 100644 --- a/jdk/make/jpda/jdwp/Makefile +++ b/jdk/make/jpda/jdwp/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2012, 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 @@ -27,6 +27,8 @@ # Makefile for building JDWP # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../.. PACKAGE = com.sun.tools.jdwp PRODUCT = jpda diff --git a/jdk/make/jpda/transport/socket/Makefile b/jdk/make/jpda/transport/socket/Makefile index 0f7fc2b8a90..6e44f3457f0 100644 --- a/jdk/make/jpda/transport/socket/Makefile +++ b/jdk/make/jpda/transport/socket/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2012, 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 @@ -27,6 +27,8 @@ # Makefile for building the JDI back-end implementation # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. LIBRARY = dt_socket PRODUCT = jbug diff --git a/jdk/make/launchers/Makefile.launcher b/jdk/make/launchers/Makefile.launcher index a290ccfec08..3183a0522d0 100644 --- a/jdk/make/launchers/Makefile.launcher +++ b/jdk/make/launchers/Makefile.launcher @@ -27,6 +27,8 @@ # Makefile for building simple launchers # +PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = .. PACKAGE = launcher PRODUCT = sun diff --git a/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile b/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile index b53a1e71025..955ad684188 100644 --- a/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile +++ b/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = compiledMethodLoad diff --git a/jdk/make/mkdemo/jvmti/gctest/Makefile b/jdk/make/mkdemo/jvmti/gctest/Makefile index 8423d77490d..537c0733e7a 100644 --- a/jdk/make/mkdemo/jvmti/gctest/Makefile +++ b/jdk/make/mkdemo/jvmti/gctest/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = gctest diff --git a/jdk/make/mkdemo/jvmti/heapTracker/Makefile b/jdk/make/mkdemo/jvmti/heapTracker/Makefile index 3e46e5bf8e1..e58dcccb219 100644 --- a/jdk/make/mkdemo/jvmti/heapTracker/Makefile +++ b/jdk/make/mkdemo/jvmti/heapTracker/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = heapTracker diff --git a/jdk/make/mkdemo/jvmti/heapViewer/Makefile b/jdk/make/mkdemo/jvmti/heapViewer/Makefile index e697d1939b2..2431f3de1dc 100644 --- a/jdk/make/mkdemo/jvmti/heapViewer/Makefile +++ b/jdk/make/mkdemo/jvmti/heapViewer/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = heapViewer diff --git a/jdk/make/mkdemo/jvmti/hprof/Makefile b/jdk/make/mkdemo/jvmti/hprof/Makefile index fca8ec4d193..29d71b5ba36 100644 --- a/jdk/make/mkdemo/jvmti/hprof/Makefile +++ b/jdk/make/mkdemo/jvmti/hprof/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = hprof diff --git a/jdk/make/mkdemo/jvmti/minst/Makefile b/jdk/make/mkdemo/jvmti/minst/Makefile index c73e15eed9d..bc0bd56b89b 100644 --- a/jdk/make/mkdemo/jvmti/minst/Makefile +++ b/jdk/make/mkdemo/jvmti/minst/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = minst diff --git a/jdk/make/mkdemo/jvmti/mtrace/Makefile b/jdk/make/mkdemo/jvmti/mtrace/Makefile index e4ec50f4b54..6057c964f77 100644 --- a/jdk/make/mkdemo/jvmti/mtrace/Makefile +++ b/jdk/make/mkdemo/jvmti/mtrace/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = mtrace diff --git a/jdk/make/mkdemo/jvmti/versionCheck/Makefile b/jdk/make/mkdemo/jvmti/versionCheck/Makefile index 0be53f141cc..a850ba26b2c 100644 --- a/jdk/make/mkdemo/jvmti/versionCheck/Makefile +++ b/jdk/make/mkdemo/jvmti/versionCheck/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = versionCheck diff --git a/jdk/make/mkdemo/jvmti/waiters/Makefile b/jdk/make/mkdemo/jvmti/waiters/Makefile index 9929c0602bf..dd850b4bbf4 100644 --- a/jdk/make/mkdemo/jvmti/waiters/Makefile +++ b/jdk/make/mkdemo/jvmti/waiters/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2012, 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 @@ -23,6 +23,8 @@ # questions. # +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PRODUCT = demo/jvmti DEMONAME = waiters diff --git a/jdk/make/sun/tracing/dtrace/Makefile b/jdk/make/sun/tracing/dtrace/Makefile index bf4d68bd26a..c0d3c97daba 100644 --- a/jdk/make/sun/tracing/dtrace/Makefile +++ b/jdk/make/sun/tracing/dtrace/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2012, 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 @@ -26,6 +26,9 @@ # # Makefile for building dtrace extension # + +LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1 + BUILDDIR = ../../.. PACKAGE = sun.tracing.dtrace LIBRARY = jsdt From 9cbde0b81ef719a2c22ea76e7f2fe06207df68a1 Mon Sep 17 00:00:00 2001 From: Leonid Romanov Date: Wed, 11 Apr 2012 21:06:08 +0400 Subject: [PATCH 32/82] 7124411: [macosx] There's no KEY_TYPED for VK_ESCAPE Reviewed-by: art --- jdk/src/macosx/native/sun/awt/AWTEvent.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/macosx/native/sun/awt/AWTEvent.m b/jdk/src/macosx/native/sun/awt/AWTEvent.m index a215c10531c..8962392619e 100644 --- a/jdk/src/macosx/native/sun/awt/AWTEvent.m +++ b/jdk/src/macosx/native/sun/awt/AWTEvent.m @@ -124,7 +124,7 @@ const keyTable[] = {0x32, YES, KL_STANDARD, java_awt_event_KeyEvent_VK_BACK_QUOTE}, {0x33, YES, KL_STANDARD, java_awt_event_KeyEvent_VK_BACK_SPACE}, {0x34, YES, KL_NUMPAD, java_awt_event_KeyEvent_VK_ENTER}, - {0x35, NO, KL_STANDARD, java_awt_event_KeyEvent_VK_ESCAPE}, + {0x35, YES, KL_STANDARD, java_awt_event_KeyEvent_VK_ESCAPE}, {0x36, NO, KL_UNKNOWN, java_awt_event_KeyEvent_VK_UNDEFINED}, {0x37, NO, KL_UNKNOWN, java_awt_event_KeyEvent_VK_META}, // **** {0x38, NO, KL_UNKNOWN, java_awt_event_KeyEvent_VK_SHIFT}, // **** From 8716e4744b2bc9bef74ba5c76af8eaa87d201e8b Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Wed, 11 Apr 2012 17:12:35 -0700 Subject: [PATCH 33/82] 7157903: JSSE client sockets are very slow Reviewed-by: xuelei --- .../sun/security/ssl/AppOutputStream.java | 15 +++- .../sun/security/ssl/EngineOutputRecord.java | 10 ++- .../sun/security/ssl/OutputRecord.java | 77 +++++++++++++++++-- .../sun/security/ssl/SSLSocketImpl.java | 47 +++++++++-- 4 files changed, 131 insertions(+), 18 deletions(-) diff --git a/jdk/src/share/classes/sun/security/ssl/AppOutputStream.java b/jdk/src/share/classes/sun/security/ssl/AppOutputStream.java index 6be00b8e2d1..f9f6e9e8ab9 100644 --- a/jdk/src/share/classes/sun/security/ssl/AppOutputStream.java +++ b/jdk/src/share/classes/sun/security/ssl/AppOutputStream.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2012, 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 @@ -91,9 +91,20 @@ class AppOutputStream extends OutputStream { // however they like; if we buffered here, they couldn't. try { do { + boolean holdRecord = false; int howmuch; if (isFirstRecordOfThePayload && c.needToSplitPayload()) { howmuch = Math.min(0x01, r.availableDataBytes()); + /* + * Nagle's algorithm (TCP_NODELAY) was coming into + * play here when writing short (split) packets. + * Signal to the OutputRecord code to internally + * buffer this small packet until the next outbound + * packet (of any type) is written. + */ + if ((len != 1) && (howmuch == 1)) { + holdRecord = true; + } } else { howmuch = Math.min(len, r.availableDataBytes()); } @@ -108,7 +119,7 @@ class AppOutputStream extends OutputStream { off += howmuch; len -= howmuch; } - c.writeRecord(r); + c.writeRecord(r, holdRecord); c.checkWrite(); } while (len > 0); } catch (Exception e) { diff --git a/jdk/src/share/classes/sun/security/ssl/EngineOutputRecord.java b/jdk/src/share/classes/sun/security/ssl/EngineOutputRecord.java index 707fd04f8d3..e5eb7f759c4 100644 --- a/jdk/src/share/classes/sun/security/ssl/EngineOutputRecord.java +++ b/jdk/src/share/classes/sun/security/ssl/EngineOutputRecord.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, 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 @@ -155,8 +155,9 @@ final class EngineOutputRecord extends OutputRecord { * data to be generated/output before the exception is ever * generated. */ - void writeBuffer(OutputStream s, byte [] buf, int off, int len) - throws IOException { + @Override + void writeBuffer(OutputStream s, byte [] buf, int off, int len, + int debugOffset) throws IOException { /* * Copy data out of buffer, it's ready to go. */ @@ -196,7 +197,8 @@ final class EngineOutputRecord extends OutputRecord { // compress(); // eventually addMAC(writeMAC); encrypt(writeCipher); - write((OutputStream)null); // send down for processing + write((OutputStream)null, false, // send down for processing + (ByteArrayOutputStream)null); } return; } diff --git a/jdk/src/share/classes/sun/security/ssl/OutputRecord.java b/jdk/src/share/classes/sun/security/ssl/OutputRecord.java index e5c7a6def78..ca3cf7bb9b3 100644 --- a/jdk/src/share/classes/sun/security/ssl/OutputRecord.java +++ b/jdk/src/share/classes/sun/security/ssl/OutputRecord.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2012, 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 @@ -28,6 +28,7 @@ package sun.security.ssl; import java.io.*; import java.nio.*; +import java.util.Arrays; import javax.net.ssl.SSLException; import sun.misc.HexDumpEncoder; @@ -226,6 +227,24 @@ class OutputRecord extends ByteArrayOutputStream implements Record { return maxDataSize - dataSize; } + /* + * Increases the capacity if necessary to ensure that it can hold + * at least the number of elements specified by the minimum + * capacity argument. + * + * Note that the increased capacity is only can be used for held + * record buffer. Please DO NOT update the availableDataBytes() + * according to the expended buffer capacity. + * + * @see availableDataBytes() + */ + private void ensureCapacity(int minCapacity) { + // overflow-conscious code + if (minCapacity > buf.length) { + buf = Arrays.copyOf(buf, minCapacity); + } + } + /* * Return the type of SSL record that's buffered here. */ @@ -243,7 +262,9 @@ class OutputRecord extends ByteArrayOutputStream implements Record { * that synchronization be done elsewhere. Also, this does its work * in a single low level write, for efficiency. */ - void write(OutputStream s) throws IOException { + void write(OutputStream s, boolean holdRecord, + ByteArrayOutputStream heldRecordBuffer) throws IOException { + /* * Don't emit content-free records. (Even change cipher spec * messages have a byte of data!) @@ -300,7 +321,49 @@ class OutputRecord extends ByteArrayOutputStream implements Record { } firstMessage = false; - writeBuffer(s, buf, 0, count); + /* + * The upper levels may want us to delay sending this packet so + * multiple TLS Records can be sent in one (or more) TCP packets. + * If so, add this packet to the heldRecordBuffer. + * + * NOTE: all writes have been synchronized by upper levels. + */ + int debugOffset = 0; + if (holdRecord) { + /* + * If holdRecord is true, we must have a heldRecordBuffer. + * + * Don't worry about the override of writeBuffer(), because + * when holdRecord is true, the implementation in this class + * will be used. + */ + writeBuffer(heldRecordBuffer, buf, 0, count, debugOffset); + } else { + // It's time to send, do we have buffered data? + // May or may not have a heldRecordBuffer. + if (heldRecordBuffer != null && heldRecordBuffer.size() > 0) { + int heldLen = heldRecordBuffer.size(); + + // Ensure the capacity of this buffer. + ensureCapacity(count + heldLen); + + // Slide everything in the buffer to the right. + System.arraycopy(buf, 0, buf, heldLen, count); + + // Prepend the held record to the buffer. + System.arraycopy( + heldRecordBuffer.toByteArray(), 0, buf, 0, heldLen); + count += heldLen; + + // Clear the held buffer. + heldRecordBuffer.reset(); + + // The held buffer has been dumped, set the debug dump offset. + debugOffset = heldLen; + } + writeBuffer(s, buf, 0, count, debugOffset); + } + reset(); } @@ -309,15 +372,17 @@ class OutputRecord extends ByteArrayOutputStream implements Record { * we'll override this method and let it take the appropriate * action. */ - void writeBuffer(OutputStream s, byte [] buf, int off, int len) - throws IOException { + void writeBuffer(OutputStream s, byte [] buf, int off, int len, + int debugOffset) throws IOException { s.write(buf, off, len); s.flush(); + // Output only the record from the specified debug offset. if (debug != null && Debug.isOn("packet")) { try { HexDumpEncoder hd = new HexDumpEncoder(); - ByteBuffer bb = ByteBuffer.wrap(buf, off, len); + ByteBuffer bb = ByteBuffer.wrap( + buf, off + debugOffset, len - debugOffset); System.out.println("[Raw write]: length = " + bb.remaining()); diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java index db11db8a195..b9f22993198 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2012, 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 @@ -374,6 +374,12 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { */ private boolean isFirstAppOutputRecord = true; + /* + * If AppOutputStream needs to delay writes of small packets, we + * will use this to store the data until we actually do the write. + */ + private ByteArrayOutputStream heldRecordBuffer = null; + // // CONSTRUCTORS AND INITIALIZATION CODE // @@ -653,6 +659,17 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { // READING AND WRITING RECORDS // + /* + * AppOutputStream calls may need to buffer multiple outbound + * application packets. + * + * All other writeRecord() calls will not buffer, so do not hold + * these records. + */ + void writeRecord(OutputRecord r) throws IOException { + writeRecord(r, false); + } + /* * Record Output. Application data can't be sent until the first * handshake establishes a session. @@ -660,7 +677,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * NOTE: we let empty records be written as a hook to force some * TCP-level activity, notably handshaking, to occur. */ - void writeRecord(OutputRecord r) throws IOException { + void writeRecord(OutputRecord r, boolean holdRecord) throws IOException { /* * The loop is in case of HANDSHAKE --> ERROR transitions, etc */ @@ -731,7 +748,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { try { if (writeLock.tryLock(getSoLinger(), TimeUnit.SECONDS)) { try { - writeRecordInternal(r); + writeRecordInternal(r, holdRecord); } finally { writeLock.unlock(); } @@ -779,7 +796,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } else { writeLock.lock(); try { - writeRecordInternal(r); + writeRecordInternal(r, holdRecord); } finally { writeLock.unlock(); } @@ -787,11 +804,29 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } } - private void writeRecordInternal(OutputRecord r) throws IOException { + private void writeRecordInternal(OutputRecord r, + boolean holdRecord) throws IOException { + // r.compress(c); r.addMAC(writeMAC); r.encrypt(writeCipher); - r.write(sockOutput); + + if (holdRecord) { + // If we were requested to delay the record due to possibility + // of Nagle's being active when finally got to writing, and + // it's actually not, we don't really need to delay it. + if (getTcpNoDelay()) { + holdRecord = false; + } else { + // We need to hold the record, so let's provide + // a per-socket place to do it. + if (heldRecordBuffer == null) { + // Likely only need 37 bytes. + heldRecordBuffer = new ByteArrayOutputStream(40); + } + } + } + r.write(sockOutput, holdRecord, heldRecordBuffer); /* * Check the sequence number state From 00b38ee051120f40ba249af2aef92f2371d889c9 Mon Sep 17 00:00:00 2001 From: Deven You Date: Thu, 12 Apr 2012 15:04:39 +0800 Subject: [PATCH 34/82] 6610897: New constructor in sun.tools.java.ClassPath builds a path using File.separator instead of File.pathSeparator Reviewed-by: alanb --- .../classes/sun/tools/java/ClassPath.java | 4 +- .../tools/classpath/RMICClassPathTest.java | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 jdk/test/sun/tools/classpath/RMICClassPathTest.java diff --git a/jdk/src/share/classes/sun/tools/java/ClassPath.java b/jdk/src/share/classes/sun/tools/java/ClassPath.java index ccb1cfffc18..5f8aa01e6b8 100644 --- a/jdk/src/share/classes/sun/tools/java/ClassPath.java +++ b/jdk/src/share/classes/sun/tools/java/ClassPath.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2012, 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 @@ -141,7 +141,7 @@ class ClassPath { } else { StringBuilder sb = new StringBuilder(patharray[0]); for (int i = 1; i < patharray.length; i++) { - sb.append(File.separator); + sb.append(File.pathSeparatorChar); sb.append(patharray[i]); } this.pathstr = sb.toString(); diff --git a/jdk/test/sun/tools/classpath/RMICClassPathTest.java b/jdk/test/sun/tools/classpath/RMICClassPathTest.java new file mode 100644 index 00000000000..a79d21b8339 --- /dev/null +++ b/jdk/test/sun/tools/classpath/RMICClassPathTest.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2012 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. + */ + +/* + * Portions Copyright (c) 2012 IBM Corporation + */ + +/* @test + * @bug 6610897 + * @summary New constructor in sun.tools.java.ClassPath builds a path using + * File.separator instead of File.pathSeparator + * @run main RMICClassPathTest + */ + +import java.io.File; + +import sun.rmi.rmic.BatchEnvironment; + +public class RMICClassPathTest { + public static void main(String[] args) throws Exception { + String sysPath = "/home/~user/jdk/jre/lib/rt.jar"; + String extDir = ""; + String clPath = "/home/~user/user.jar" + File.pathSeparator + + "/home/~user/user2.jar" + File.pathSeparator + + "/home/~user/user3.jar"; + + String cpStr = BatchEnvironment.createClassPath(clPath, sysPath, extDir).toString(); + + String[] paths = cpStr.split(File.pathSeparator); + + if (paths.length != 4) { + throw new Exception("ClassPath length is not correct: the expected length is 4 and the actual length is " + paths.length); + } + } +} From 93c317d8e6a898c406e0b7619758f5d2eb98775f Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Thu, 12 Apr 2012 12:48:31 +0300 Subject: [PATCH 35/82] 7160653: test/javax/swing/plaf/synth/7158712/bug7158712.java failed on Ubuntu Reviewed-by: alexp --- jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java b/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java index 8252d922afa..a0311bced03 100644 --- a/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java +++ b/jdk/test/javax/swing/plaf/synth/7158712/bug7158712.java @@ -28,6 +28,8 @@ @author Pavel Porvatov */ +import sun.awt.SunToolkit; + import javax.swing.*; import javax.swing.plaf.basic.BasicComboPopup; import javax.swing.plaf.synth.SynthLookAndFeel; @@ -65,7 +67,7 @@ public class bug7158712 { UIManager.setLookAndFeel(laf); - EventQueue.invokeLater(new Runnable() { + EventQueue.invokeAndWait(new Runnable() { public void run() { comboBox = new JComboBox<>( new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"}); @@ -80,6 +82,8 @@ public class bug7158712 { } }); + ((SunToolkit) Toolkit.getDefaultToolkit()).realSync(); + Point comboBoxLocation = Util.invokeOnEDT(new Callable() { @Override public Point call() throws Exception { From 1095f90a26e912e033f9eb9e176b27932a5a346b Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Thu, 12 Apr 2012 08:11:08 -0700 Subject: [PATCH 36/82] 7160976: Fix missing file in new build infrastructure: Defs-utils.gmk Reviewed-by: ihse --- jdk/makefiles/common/shared/Defs-utils.gmk | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 jdk/makefiles/common/shared/Defs-utils.gmk diff --git a/jdk/makefiles/common/shared/Defs-utils.gmk b/jdk/makefiles/common/shared/Defs-utils.gmk new file mode 100644 index 00000000000..4c38e4b3aa9 --- /dev/null +++ b/jdk/makefiles/common/shared/Defs-utils.gmk @@ -0,0 +1,2 @@ +# Purposely empty for now, should be removed eventually. + From 60663487f6c4842720d219fe3f1a1de80f18599a Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Thu, 12 Apr 2012 08:38:26 -0700 Subject: [PATCH 37/82] 7160496: Rename JDK8 JAXP source directory Moving src/share/classes to src Reviewed-by: ohair --- jaxp/build.xml | 2 +- jaxp/make/scripts/update_src.sh | 2 +- .../classes => }/com/sun/java_cup/internal/runtime/Scanner.java | 0 .../classes => }/com/sun/java_cup/internal/runtime/Symbol.java | 0 .../com/sun/java_cup/internal/runtime/lr_parser.java | 0 .../com/sun/java_cup/internal/runtime/virtual_parse_stack.java | 0 .../com/sun/org/apache/bcel/internal/Constants.java | 0 .../com/sun/org/apache/bcel/internal/ExceptionConstants.java | 0 .../com/sun/org/apache/bcel/internal/Repository.java | 0 .../com/sun/org/apache/bcel/internal/classfile/AccessFlags.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Attribute.java | 0 .../sun/org/apache/bcel/internal/classfile/AttributeReader.java | 0 .../apache/bcel/internal/classfile/ClassFormatException.java | 0 .../com/sun/org/apache/bcel/internal/classfile/ClassParser.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Code.java | 0 .../sun/org/apache/bcel/internal/classfile/CodeException.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Constant.java | 0 .../com/sun/org/apache/bcel/internal/classfile/ConstantCP.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantClass.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantDouble.java | 0 .../org/apache/bcel/internal/classfile/ConstantFieldref.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantFloat.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantInteger.java | 0 .../bcel/internal/classfile/ConstantInterfaceMethodref.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantLong.java | 0 .../org/apache/bcel/internal/classfile/ConstantMethodref.java | 0 .../org/apache/bcel/internal/classfile/ConstantNameAndType.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantObject.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantPool.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantString.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantUtf8.java | 0 .../sun/org/apache/bcel/internal/classfile/ConstantValue.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Deprecated.java | 0 .../org/apache/bcel/internal/classfile/DescendingVisitor.java | 0 .../sun/org/apache/bcel/internal/classfile/EmptyVisitor.java | 0 .../sun/org/apache/bcel/internal/classfile/ExceptionTable.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Field.java | 0 .../sun/org/apache/bcel/internal/classfile/FieldOrMethod.java | 0 .../com/sun/org/apache/bcel/internal/classfile/InnerClass.java | 0 .../sun/org/apache/bcel/internal/classfile/InnerClasses.java | 0 .../com/sun/org/apache/bcel/internal/classfile/JavaClass.java | 0 .../com/sun/org/apache/bcel/internal/classfile/LineNumber.java | 0 .../sun/org/apache/bcel/internal/classfile/LineNumberTable.java | 0 .../sun/org/apache/bcel/internal/classfile/LocalVariable.java | 0 .../org/apache/bcel/internal/classfile/LocalVariableTable.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Method.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Node.java | 0 .../com/sun/org/apache/bcel/internal/classfile/PMGClass.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Signature.java | 0 .../com/sun/org/apache/bcel/internal/classfile/SourceFile.java | 0 .../com/sun/org/apache/bcel/internal/classfile/StackMap.java | 0 .../sun/org/apache/bcel/internal/classfile/StackMapEntry.java | 0 .../sun/org/apache/bcel/internal/classfile/StackMapType.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Synthetic.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Unknown.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Utility.java | 0 .../com/sun/org/apache/bcel/internal/classfile/Visitor.java | 0 .../com/sun/org/apache/bcel/internal/classfile/package.html | 0 .../com/sun/org/apache/bcel/internal/generic/AALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/AASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java | 0 .../com/sun/org/apache/bcel/internal/generic/ALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java | 0 .../com/sun/org/apache/bcel/internal/generic/ARETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java | 0 .../com/sun/org/apache/bcel/internal/generic/ASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/ATHROW.java | 0 .../org/apache/bcel/internal/generic/AllocationInstruction.java | 0 .../org/apache/bcel/internal/generic/ArithmeticInstruction.java | 0 .../sun/org/apache/bcel/internal/generic/ArrayInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/ArrayType.java | 0 .../com/sun/org/apache/bcel/internal/generic/BALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/BASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/BIPUSH.java | 0 .../com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java | 0 .../com/sun/org/apache/bcel/internal/generic/BasicType.java | 0 .../com/sun/org/apache/bcel/internal/generic/BranchHandle.java | 0 .../sun/org/apache/bcel/internal/generic/BranchInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/CALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/CASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/CHECKCAST.java | 0 .../com/sun/org/apache/bcel/internal/generic/CPInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/ClassGen.java | 0 .../sun/org/apache/bcel/internal/generic/ClassGenException.java | 0 .../com/sun/org/apache/bcel/internal/generic/ClassObserver.java | 0 .../sun/org/apache/bcel/internal/generic/CodeExceptionGen.java | 0 .../org/apache/bcel/internal/generic/CompoundInstruction.java | 0 .../sun/org/apache/bcel/internal/generic/ConstantPoolGen.java | 0 .../apache/bcel/internal/generic/ConstantPushInstruction.java | 0 .../org/apache/bcel/internal/generic/ConversionInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/D2F.java | 0 .../com/sun/org/apache/bcel/internal/generic/D2I.java | 0 .../com/sun/org/apache/bcel/internal/generic/D2L.java | 0 .../com/sun/org/apache/bcel/internal/generic/DADD.java | 0 .../com/sun/org/apache/bcel/internal/generic/DALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/DASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/DCMPG.java | 0 .../com/sun/org/apache/bcel/internal/generic/DCMPL.java | 0 .../com/sun/org/apache/bcel/internal/generic/DCONST.java | 0 .../com/sun/org/apache/bcel/internal/generic/DDIV.java | 0 .../com/sun/org/apache/bcel/internal/generic/DLOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/DMUL.java | 0 .../com/sun/org/apache/bcel/internal/generic/DNEG.java | 0 .../com/sun/org/apache/bcel/internal/generic/DREM.java | 0 .../com/sun/org/apache/bcel/internal/generic/DRETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/DSTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/DSUB.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP2.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP2_X1.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP2_X2.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP_X1.java | 0 .../com/sun/org/apache/bcel/internal/generic/DUP_X2.java | 0 .../com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java | 0 .../sun/org/apache/bcel/internal/generic/ExceptionThrower.java | 0 .../com/sun/org/apache/bcel/internal/generic/F2D.java | 0 .../com/sun/org/apache/bcel/internal/generic/F2I.java | 0 .../com/sun/org/apache/bcel/internal/generic/F2L.java | 0 .../com/sun/org/apache/bcel/internal/generic/FADD.java | 0 .../com/sun/org/apache/bcel/internal/generic/FALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/FASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/FCMPG.java | 0 .../com/sun/org/apache/bcel/internal/generic/FCMPL.java | 0 .../com/sun/org/apache/bcel/internal/generic/FCONST.java | 0 .../com/sun/org/apache/bcel/internal/generic/FDIV.java | 0 .../com/sun/org/apache/bcel/internal/generic/FLOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/FMUL.java | 0 .../com/sun/org/apache/bcel/internal/generic/FNEG.java | 0 .../com/sun/org/apache/bcel/internal/generic/FREM.java | 0 .../com/sun/org/apache/bcel/internal/generic/FRETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/FSTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/FSUB.java | 0 .../com/sun/org/apache/bcel/internal/generic/FieldGen.java | 0 .../org/apache/bcel/internal/generic/FieldGenOrMethodGen.java | 0 .../sun/org/apache/bcel/internal/generic/FieldInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/FieldObserver.java | 0 .../com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java | 0 .../com/sun/org/apache/bcel/internal/generic/GETFIELD.java | 0 .../com/sun/org/apache/bcel/internal/generic/GETSTATIC.java | 0 .../com/sun/org/apache/bcel/internal/generic/GOTO.java | 0 .../com/sun/org/apache/bcel/internal/generic/GOTO_W.java | 0 .../sun/org/apache/bcel/internal/generic/GotoInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2B.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2C.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2D.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2F.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2L.java | 0 .../com/sun/org/apache/bcel/internal/generic/I2S.java | 0 .../com/sun/org/apache/bcel/internal/generic/IADD.java | 0 .../com/sun/org/apache/bcel/internal/generic/IALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/IAND.java | 0 .../com/sun/org/apache/bcel/internal/generic/IASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/ICONST.java | 0 .../com/sun/org/apache/bcel/internal/generic/IDIV.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFEQ.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFGE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFGT.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFLE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFLT.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFNE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFNONNULL.java | 0 .../com/sun/org/apache/bcel/internal/generic/IFNULL.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java | 0 .../com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java | 0 .../com/sun/org/apache/bcel/internal/generic/IINC.java | 0 .../com/sun/org/apache/bcel/internal/generic/ILOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/IMPDEP1.java | 0 .../com/sun/org/apache/bcel/internal/generic/IMPDEP2.java | 0 .../com/sun/org/apache/bcel/internal/generic/IMUL.java | 0 .../com/sun/org/apache/bcel/internal/generic/INEG.java | 0 .../com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java | 0 .../sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java | 0 .../com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java | 0 .../com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java | 0 .../com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java | 0 .../com/sun/org/apache/bcel/internal/generic/IOR.java | 0 .../com/sun/org/apache/bcel/internal/generic/IREM.java | 0 .../com/sun/org/apache/bcel/internal/generic/IRETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/ISHL.java | 0 .../com/sun/org/apache/bcel/internal/generic/ISHR.java | 0 .../com/sun/org/apache/bcel/internal/generic/ISTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/ISUB.java | 0 .../com/sun/org/apache/bcel/internal/generic/IUSHR.java | 0 .../com/sun/org/apache/bcel/internal/generic/IXOR.java | 0 .../com/sun/org/apache/bcel/internal/generic/IfInstruction.java | 0 .../org/apache/bcel/internal/generic/IndexedInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/Instruction.java | 0 .../org/apache/bcel/internal/generic/InstructionComparator.java | 0 .../org/apache/bcel/internal/generic/InstructionConstants.java | 0 .../org/apache/bcel/internal/generic/InstructionFactory.java | 0 .../sun/org/apache/bcel/internal/generic/InstructionHandle.java | 0 .../sun/org/apache/bcel/internal/generic/InstructionList.java | 0 .../apache/bcel/internal/generic/InstructionListObserver.java | 0 .../org/apache/bcel/internal/generic/InstructionTargeter.java | 0 .../sun/org/apache/bcel/internal/generic/InvokeInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/JSR.java | 0 .../com/sun/org/apache/bcel/internal/generic/JSR_W.java | 0 .../sun/org/apache/bcel/internal/generic/JsrInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/L2D.java | 0 .../com/sun/org/apache/bcel/internal/generic/L2F.java | 0 .../com/sun/org/apache/bcel/internal/generic/L2I.java | 0 .../com/sun/org/apache/bcel/internal/generic/LADD.java | 0 .../com/sun/org/apache/bcel/internal/generic/LALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/LAND.java | 0 .../com/sun/org/apache/bcel/internal/generic/LASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/LCMP.java | 0 .../com/sun/org/apache/bcel/internal/generic/LCONST.java | 0 .../com/sun/org/apache/bcel/internal/generic/LDC.java | 0 .../com/sun/org/apache/bcel/internal/generic/LDC2_W.java | 0 .../com/sun/org/apache/bcel/internal/generic/LDC_W.java | 0 .../com/sun/org/apache/bcel/internal/generic/LDIV.java | 0 .../com/sun/org/apache/bcel/internal/generic/LLOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/LMUL.java | 0 .../com/sun/org/apache/bcel/internal/generic/LNEG.java | 0 .../com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java | 0 .../com/sun/org/apache/bcel/internal/generic/LOR.java | 0 .../com/sun/org/apache/bcel/internal/generic/LREM.java | 0 .../com/sun/org/apache/bcel/internal/generic/LRETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/LSHL.java | 0 .../com/sun/org/apache/bcel/internal/generic/LSHR.java | 0 .../com/sun/org/apache/bcel/internal/generic/LSTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/LSUB.java | 0 .../com/sun/org/apache/bcel/internal/generic/LUSHR.java | 0 .../com/sun/org/apache/bcel/internal/generic/LXOR.java | 0 .../com/sun/org/apache/bcel/internal/generic/LineNumberGen.java | 0 .../com/sun/org/apache/bcel/internal/generic/LoadClass.java | 0 .../sun/org/apache/bcel/internal/generic/LoadInstruction.java | 0 .../sun/org/apache/bcel/internal/generic/LocalVariableGen.java | 0 .../apache/bcel/internal/generic/LocalVariableInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/MONITORENTER.java | 0 .../com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java | 0 .../sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java | 0 .../com/sun/org/apache/bcel/internal/generic/MethodGen.java | 0 .../sun/org/apache/bcel/internal/generic/MethodObserver.java | 0 .../com/sun/org/apache/bcel/internal/generic/NEW.java | 0 .../com/sun/org/apache/bcel/internal/generic/NEWARRAY.java | 0 .../com/sun/org/apache/bcel/internal/generic/NOP.java | 0 .../com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java | 0 .../com/sun/org/apache/bcel/internal/generic/ObjectType.java | 0 .../com/sun/org/apache/bcel/internal/generic/POP.java | 0 .../com/sun/org/apache/bcel/internal/generic/POP2.java | 0 .../com/sun/org/apache/bcel/internal/generic/PUSH.java | 0 .../com/sun/org/apache/bcel/internal/generic/PUTFIELD.java | 0 .../com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java | 0 .../sun/org/apache/bcel/internal/generic/PopInstruction.java | 0 .../sun/org/apache/bcel/internal/generic/PushInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/RET.java | 0 .../com/sun/org/apache/bcel/internal/generic/RETURN.java | 0 .../com/sun/org/apache/bcel/internal/generic/ReferenceType.java | 0 .../sun/org/apache/bcel/internal/generic/ReturnInstruction.java | 0 .../sun/org/apache/bcel/internal/generic/ReturnaddressType.java | 0 .../com/sun/org/apache/bcel/internal/generic/SALOAD.java | 0 .../com/sun/org/apache/bcel/internal/generic/SASTORE.java | 0 .../com/sun/org/apache/bcel/internal/generic/SIPUSH.java | 0 .../com/sun/org/apache/bcel/internal/generic/SWAP.java | 0 .../com/sun/org/apache/bcel/internal/generic/SWITCH.java | 0 .../com/sun/org/apache/bcel/internal/generic/Select.java | 0 .../com/sun/org/apache/bcel/internal/generic/StackConsumer.java | 0 .../sun/org/apache/bcel/internal/generic/StackInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/StackProducer.java | 0 .../sun/org/apache/bcel/internal/generic/StoreInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java | 0 .../org/apache/bcel/internal/generic/TargetLostException.java | 0 .../com/sun/org/apache/bcel/internal/generic/Type.java | 0 .../sun/org/apache/bcel/internal/generic/TypedInstruction.java | 0 .../org/apache/bcel/internal/generic/UnconditionalBranch.java | 0 .../apache/bcel/internal/generic/VariableLengthInstruction.java | 0 .../com/sun/org/apache/bcel/internal/generic/Visitor.java | 0 .../com/sun/org/apache/bcel/internal/generic/package.html | 0 .../classes => }/com/sun/org/apache/bcel/internal/package.html | 0 .../com/sun/org/apache/bcel/internal/util/AttributeHTML.java | 0 .../com/sun/org/apache/bcel/internal/util/BCELFactory.java | 0 .../com/sun/org/apache/bcel/internal/util/BCELifier.java | 0 .../com/sun/org/apache/bcel/internal/util/ByteSequence.java | 0 .../com/sun/org/apache/bcel/internal/util/Class2HTML.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassLoader.java | 0 .../org/apache/bcel/internal/util/ClassLoaderRepository.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassPath.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassQueue.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassSet.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassStack.java | 0 .../com/sun/org/apache/bcel/internal/util/ClassVector.java | 0 .../com/sun/org/apache/bcel/internal/util/CodeHTML.java | 0 .../com/sun/org/apache/bcel/internal/util/ConstantHTML.java | 0 .../sun/org/apache/bcel/internal/util/InstructionFinder.java | 0 .../com/sun/org/apache/bcel/internal/util/JavaWrapper.java | 0 .../com/sun/org/apache/bcel/internal/util/MethodHTML.java | 0 .../com/sun/org/apache/bcel/internal/util/Repository.java | 0 .../sun/org/apache/bcel/internal/util/SyntheticRepository.java | 0 .../com/sun/org/apache/bcel/internal/util/package.html | 0 .../apache/regexp/internal/CharacterArrayCharacterIterator.java | 0 .../com/sun/org/apache/regexp/internal/CharacterIterator.java | 0 .../classes => }/com/sun/org/apache/regexp/internal/RE.java | 0 .../com/sun/org/apache/regexp/internal/RECompiler.java | 0 .../com/sun/org/apache/regexp/internal/REDebugCompiler.java | 0 .../com/sun/org/apache/regexp/internal/REProgram.java | 0 .../com/sun/org/apache/regexp/internal/RESyntaxException.java | 0 .../classes => }/com/sun/org/apache/regexp/internal/RETest.java | 0 .../classes => }/com/sun/org/apache/regexp/internal/REUtil.java | 0 .../sun/org/apache/regexp/internal/ReaderCharacterIterator.java | 0 .../sun/org/apache/regexp/internal/StreamCharacterIterator.java | 0 .../sun/org/apache/regexp/internal/StringCharacterIterator.java | 0 .../com/sun/org/apache/regexp/internal/recompile.java | 0 .../META-INF/services/javax.xml.transform.TransformerFactory | 0 .../apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory | 0 .../xalan/META-INF/services/org.apache.xml.dtm.DTMManager | 0 .../classes => }/com/sun/org/apache/xalan/internal/Version.java | 0 .../org/apache/xalan/internal/extensions/ExpressionContext.java | 0 .../com/sun/org/apache/xalan/internal/extensions/package.html | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltBase.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltCommon.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltMath.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltSets.java | 0 .../com/sun/org/apache/xalan/internal/lib/ExsltStrings.java | 0 .../com/sun/org/apache/xalan/internal/lib/Extensions.java | 0 .../com/sun/org/apache/xalan/internal/lib/NodeInfo.java | 0 .../com/sun/org/apache/xalan/internal/lib/ObjectFactory.java | 0 .../com/sun/org/apache/xalan/internal/lib/SecuritySupport.java | 0 .../sun/org/apache/xalan/internal/lib/SecuritySupport12.java | 0 .../com/sun/org/apache/xalan/internal/lib/package.html | 0 .../com/sun/org/apache/xalan/internal/res/XSLMessages.java | 0 .../sun/org/apache/xalan/internal/res/XSLTErrorResources.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_de.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_en.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_es.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_fr.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_it.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_ja.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_ko.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_sv.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java | 0 .../org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java | 0 .../com/sun/org/apache/xalan/internal/res/XSLTInfo.properties | 0 .../com/sun/org/apache/xalan/internal/res/package.html | 0 .../com/sun/org/apache/xalan/internal/templates/Constants.java | 0 .../com/sun/org/apache/xalan/internal/templates/package.html | 0 .../sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java | 0 .../com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java | 0 .../com/sun/org/apache/xalan/internal/xslt/Process.java | 0 .../com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java | 0 .../sun/org/apache/xalan/internal/xslt/SecuritySupport12.java | 0 .../com/sun/org/apache/xalan/internal/xslt/package.html | 0 .../sun/org/apache/xalan/internal/xsltc/CollatorFactory.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/DOM.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/DOMCache.java | 0 .../sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java | 0 .../sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/StripFilter.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/Translet.java | 0 .../sun/org/apache/xalan/internal/xsltc/TransletException.java | 0 .../sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java | 0 .../org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java | 0 .../apache/xalan/internal/xsltc/cmdline/SecuritySupport.java | 0 .../apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java | 0 .../sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java | 0 .../org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java | 0 .../xalan/internal/xsltc/cmdline/getopt/GetOptsException.java | 0 .../internal/xsltc/cmdline/getopt/IllegalArgumentException.java | 0 .../internal/xsltc/cmdline/getopt/MissingOptArgException.java | 0 .../xalan/internal/xsltc/compiler/AbsoluteLocationPath.java | 0 .../xalan/internal/xsltc/compiler/AbsolutePathPattern.java | 0 .../xalan/internal/xsltc/compiler/AlternativePattern.java | 0 .../apache/xalan/internal/xsltc/compiler/AncestorPattern.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ApplyImports.java | 0 .../apache/xalan/internal/xsltc/compiler/ApplyTemplates.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ArgumentList.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java | 0 .../org/apache/xalan/internal/xsltc/compiler/AttributeSet.java | 0 .../apache/xalan/internal/xsltc/compiler/AttributeValue.java | 0 .../xalan/internal/xsltc/compiler/AttributeValueTemplate.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/BooleanCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/CallTemplate.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/CeilingCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Choose.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Closure.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Comment.java | 0 .../apache/xalan/internal/xsltc/compiler/CompilerException.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ConcatCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Constants.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ContainsCall.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java | 0 .../org/apache/xalan/internal/xsltc/compiler/CurrentCall.java | 0 .../apache/xalan/internal/xsltc/compiler/DecimalFormatting.java | 0 .../org/apache/xalan/internal/xsltc/compiler/DocumentCall.java | 0 .../xalan/internal/xsltc/compiler/ElementAvailableCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/Expression.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java | 0 .../org/apache/xalan/internal/xsltc/compiler/FilterExpr.java | 0 .../apache/xalan/internal/xsltc/compiler/FilterParentPath.java | 0 .../internal/xsltc/compiler/FilteredAbsoluteLocationPath.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java | 0 .../apache/xalan/internal/xsltc/compiler/FormatNumberCall.java | 0 .../xalan/internal/xsltc/compiler/FunctionAvailableCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/FunctionCall.java | 0 .../apache/xalan/internal/xsltc/compiler/GenerateIdCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/If.java | 0 .../xalan/internal/xsltc/compiler/IllegalCharException.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Import.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Include.java | 0 .../org/apache/xalan/internal/xsltc/compiler/Instruction.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/KeyPattern.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java | 0 .../apache/xalan/internal/xsltc/compiler/LiteralAttribute.java | 0 .../apache/xalan/internal/xsltc/compiler/LiteralElement.java | 0 .../org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java | 0 .../xalan/internal/xsltc/compiler/LocationPathPattern.java | 0 .../org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Message.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java | 0 .../apache/xalan/internal/xsltc/compiler/NamespaceAlias.java | 0 .../apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Number.java | 0 .../org/apache/xalan/internal/xsltc/compiler/NumberCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Output.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ParameterRef.java | 0 .../xalan/internal/xsltc/compiler/ParentLocationPath.java | 0 .../org/apache/xalan/internal/xsltc/compiler/ParentPattern.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Parser.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java | 0 .../org/apache/xalan/internal/xsltc/compiler/PositionCall.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java | 0 .../xalan/internal/xsltc/compiler/ProcessingInstruction.java | 0 .../internal/xsltc/compiler/ProcessingInstructionPattern.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java | 0 .../apache/xalan/internal/xsltc/compiler/RelationalExpr.java | 0 .../xalan/internal/xsltc/compiler/RelativeLocationPath.java | 0 .../xalan/internal/xsltc/compiler/RelativePathPattern.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java | 0 .../apache/xalan/internal/xsltc/compiler/SecuritySupport.java | 0 .../apache/xalan/internal/xsltc/compiler/SecuritySupport12.java | 0 .../xalan/internal/xsltc/compiler/SimpleAttributeValue.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java | 0 .../org/apache/xalan/internal/xsltc/compiler/SourceLoader.java | 0 .../apache/xalan/internal/xsltc/compiler/StartsWithCall.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java | 0 .../org/apache/xalan/internal/xsltc/compiler/StepPattern.java | 0 .../org/apache/xalan/internal/xsltc/compiler/StringCall.java | 0 .../apache/xalan/internal/xsltc/compiler/StringLengthCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/Stylesheet.java | 0 .../org/apache/xalan/internal/xsltc/compiler/SymbolTable.java | 0 .../apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Template.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java | 0 .../apache/xalan/internal/xsltc/compiler/TopLevelElement.java | 0 .../apache/xalan/internal/xsltc/compiler/TransletOutput.java | 0 .../org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java | 0 .../org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java | 0 .../xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java | 0 .../org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java | 0 .../xalan/internal/xsltc/compiler/UnsupportedElement.java | 0 .../apache/xalan/internal/xsltc/compiler/UseAttributeSets.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/Variable.java | 0 .../org/apache/xalan/internal/xsltc/compiler/VariableBase.java | 0 .../org/apache/xalan/internal/xsltc/compiler/VariableRef.java | 0 .../apache/xalan/internal/xsltc/compiler/VariableRefBase.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/When.java | 0 .../org/apache/xalan/internal/xsltc/compiler/Whitespace.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java | 0 .../org/apache/xalan/internal/xsltc/compiler/XPathLexer.java | 0 .../org/apache/xalan/internal/xsltc/compiler/XPathParser.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java | 0 .../org/apache/xalan/internal/xsltc/compiler/XslAttribute.java | 0 .../org/apache/xalan/internal/xsltc/compiler/XslElement.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java | 0 .../xsltc/compiler/util/AttributeSetMethodGenerator.java | 0 .../apache/xalan/internal/xsltc/compiler/util/BooleanType.java | 0 .../xalan/internal/xsltc/compiler/util/ClassGenerator.java | 0 .../xalan/internal/xsltc/compiler/util/CompareGenerator.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_de.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_es.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_it.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java | 0 .../xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java | 0 .../org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java | 0 .../xalan/internal/xsltc/compiler/util/FilterGenerator.java | 0 .../org/apache/xalan/internal/xsltc/compiler/util/IntType.java | 0 .../xalan/internal/xsltc/compiler/util/MatchGenerator.java | 0 .../xalan/internal/xsltc/compiler/util/MethodGenerator.java | 0 .../apache/xalan/internal/xsltc/compiler/util/MethodType.java | 0 .../xalan/internal/xsltc/compiler/util/MultiHashtable.java | 0 .../internal/xsltc/compiler/util/NamedMethodGenerator.java | 0 .../internal/xsltc/compiler/util/NodeCounterGenerator.java | 0 .../apache/xalan/internal/xsltc/compiler/util/NodeSetType.java | 0 .../xsltc/compiler/util/NodeSortRecordFactGenerator.java | 0 .../internal/xsltc/compiler/util/NodeSortRecordGenerator.java | 0 .../org/apache/xalan/internal/xsltc/compiler/util/NodeType.java | 0 .../apache/xalan/internal/xsltc/compiler/util/NumberType.java | 0 .../xalan/internal/xsltc/compiler/util/ObjectFactory.java | 0 .../apache/xalan/internal/xsltc/compiler/util/ObjectType.java | 0 .../org/apache/xalan/internal/xsltc/compiler/util/RealType.java | 0 .../xalan/internal/xsltc/compiler/util/ReferenceType.java | 0 .../xalan/internal/xsltc/compiler/util/ResultTreeType.java | 0 .../xalan/internal/xsltc/compiler/util/RtMethodGenerator.java | 0 .../xalan/internal/xsltc/compiler/util/SecuritySupport.java | 0 .../xalan/internal/xsltc/compiler/util/SecuritySupport12.java | 0 .../xalan/internal/xsltc/compiler/util/SlotAllocator.java | 0 .../apache/xalan/internal/xsltc/compiler/util/StringStack.java | 0 .../apache/xalan/internal/xsltc/compiler/util/StringType.java | 0 .../xalan/internal/xsltc/compiler/util/TestGenerator.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java | 0 .../xalan/internal/xsltc/compiler/util/TypeCheckError.java | 0 .../sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java | 0 .../org/apache/xalan/internal/xsltc/compiler/util/VoidType.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup | 0 .../com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex | 0 .../org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java | 0 .../apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java | 0 .../apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java | 0 .../apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java | 0 .../apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java | 0 .../apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java | 0 .../xalan/internal/xsltc/dom/CurrentNodeListIterator.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java | 0 .../org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java | 0 .../apache/xalan/internal/xsltc/dom/FilteredStepIterator.java | 0 .../xalan/internal/xsltc/dom/ForwardPositionIterator.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java | 0 .../org/apache/xalan/internal/xsltc/dom/MatchingIterator.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java | 0 .../xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java | 0 .../apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java | 0 .../org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java | 0 .../apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java | 0 .../org/apache/xalan/internal/xsltc/dom/SecuritySupport.java | 0 .../org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java | 0 .../apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java | 0 .../org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java | 0 .../org/apache/xalan/internal/xsltc/dom/SingletonIterator.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java | 0 .../org/apache/xalan/internal/xsltc/dom/SortingIterator.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java | 0 .../apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java | 0 .../sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java | 0 .../org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java | 0 .../xalan/internal/xsltc/javax.xml.transform.TransformerFactory | 0 .../apache/xalan/internal/xsltc/runtime/AbstractTranslet.java | 0 .../sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java | 0 .../org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java | 0 .../sun/org/apache/xalan/internal/xsltc/runtime/Constants.java | 0 .../org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java | 0 .../xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java | 0 .../apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java | 0 .../xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java | 0 .../xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java | 0 .../sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java | 0 .../org/apache/xalan/internal/xsltc/runtime/MessageHandler.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java | 0 .../org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java | 0 .../sun/org/apache/xalan/internal/xsltc/runtime/Operators.java | 0 .../sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java | 0 .../apache/xalan/internal/xsltc/runtime/SecuritySupport.java | 0 .../apache/xalan/internal/xsltc/runtime/SecuritySupport12.java | 0 .../apache/xalan/internal/xsltc/runtime/StringValueHandler.java | 0 .../xalan/internal/xsltc/runtime/output/OutputBuffer.java | 0 .../xalan/internal/xsltc/runtime/output/StringOutputBuffer.java | 0 .../xsltc/runtime/output/TransletOutputHandlerFactory.java | 0 .../xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java | 0 .../sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java | 0 .../org/apache/xalan/internal/xsltc/trax/OutputSettings.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java | 0 .../apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java | 0 .../apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java | 0 .../apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java | 0 .../org/apache/xalan/internal/xsltc/trax/SecuritySupport.java | 0 .../org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java | 0 .../xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java | 0 .../sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java | 0 .../org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java | 0 .../apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java | 0 .../sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java | 0 .../sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java | 0 .../xalan/internal/xsltc/trax/TransformerFactoryImpl.java | 0 .../xalan/internal/xsltc/trax/TransformerHandlerImpl.java | 0 .../org/apache/xalan/internal/xsltc/trax/TransformerImpl.java | 0 .../com/sun/org/apache/xalan/internal/xsltc/trax/Util.java | 0 .../sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java | 0 .../sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java | 0 .../com/sun/org/apache/xerces/internal/dom/AttrImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/AttributeMap.java | 0 .../sun/org/apache/xerces/internal/dom/CDATASectionImpl.java | 0 .../sun/org/apache/xerces/internal/dom/CharacterDataImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/ChildNode.java | 0 .../com/sun/org/apache/xerces/internal/dom/CommentImpl.java | 0 .../apache/xerces/internal/dom/CoreDOMImplementationImpl.java | 0 .../sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java | 0 .../org/apache/xerces/internal/dom/DOMConfigurationImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java | 0 .../org/apache/xerces/internal/dom/DOMImplementationImpl.java | 0 .../apache/xerces/internal/dom/DOMImplementationListImpl.java | 0 .../apache/xerces/internal/dom/DOMImplementationSourceImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java | 0 .../com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java | 0 .../com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DOMStringListImpl.java | 0 .../xerces/internal/dom/DOMXSImplementationSourceImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java | 0 .../apache/xerces/internal/dom/DeferredCDATASectionImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java | 0 .../xerces/internal/dom/DeferredDOMImplementationImpl.java | 0 .../org/apache/xerces/internal/dom/DeferredDocumentImpl.java | 0 .../apache/xerces/internal/dom/DeferredDocumentTypeImpl.java | 0 .../xerces/internal/dom/DeferredElementDefinitionImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredElementImpl.java | 0 .../org/apache/xerces/internal/dom/DeferredElementNSImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java | 0 .../apache/xerces/internal/dom/DeferredEntityReferenceImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/DeferredNode.java | 0 .../org/apache/xerces/internal/dom/DeferredNotationImpl.java | 0 .../xerces/internal/dom/DeferredProcessingInstructionImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DeferredTextImpl.java | 0 .../org/apache/xerces/internal/dom/DocumentFragmentImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/DocumentImpl.java | 0 .../sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java | 0 .../org/apache/xerces/internal/dom/ElementDefinitionImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/ElementImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/EntityImpl.java | 0 .../sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/LCount.java | 0 .../sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/NodeImpl.java | 0 .../sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/NodeListCache.java | 0 .../com/sun/org/apache/xerces/internal/dom/NotationImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/ObjectFactory.java | 0 .../com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java | 0 .../apache/xerces/internal/dom/PSVIDOMImplementationImpl.java | 0 .../sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java | 0 .../sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/ParentNode.java | 0 .../apache/xerces/internal/dom/ProcessingInstructionImpl.java | 0 .../sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/RangeImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/SecuritySupport.java | 0 .../com/sun/org/apache/xerces/internal/dom/TextImpl.java | 0 .../com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java | 0 .../sun/org/apache/xerces/internal/dom/events/EventImpl.java | 0 .../apache/xerces/internal/dom/events/MutationEventImpl.java | 0 .../dom/org.apache.xerces.dom.DOMImplementationSourceImpl | 0 .../xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList | 0 .../com/sun/org/apache/xerces/internal/impl/Constants.java | 0 .../org/apache/xerces/internal/impl/ExternalSubsetResolver.java | 0 .../sun/org/apache/xerces/internal/impl/PropertyManager.java | 0 .../org/apache/xerces/internal/impl/RevalidationHandler.java | 0 .../com/sun/org/apache/xerces/internal/impl/Version.java | 0 .../org/apache/xerces/internal/impl/XML11DTDScannerImpl.java | 0 .../apache/xerces/internal/impl/XML11DocumentScannerImpl.java | 0 .../sun/org/apache/xerces/internal/impl/XML11EntityScanner.java | 0 .../apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java | 0 .../org/apache/xerces/internal/impl/XML11NamespaceBinder.java | 0 .../sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java | 0 .../xerces/internal/impl/XMLDocumentFragmentScannerImpl.java | 0 .../org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java | 0 .../org/apache/xerces/internal/impl/XMLEntityDescription.java | 0 .../sun/org/apache/xerces/internal/impl/XMLEntityHandler.java | 0 .../sun/org/apache/xerces/internal/impl/XMLEntityManager.java | 0 .../sun/org/apache/xerces/internal/impl/XMLEntityScanner.java | 0 .../sun/org/apache/xerces/internal/impl/XMLErrorReporter.java | 0 .../apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java | 0 .../sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java | 0 .../com/sun/org/apache/xerces/internal/impl/XMLScanner.java | 0 .../org/apache/xerces/internal/impl/XMLStreamFilterImpl.java | 0 .../org/apache/xerces/internal/impl/XMLStreamReaderImpl.java | 0 .../sun/org/apache/xerces/internal/impl/XMLVersionDetector.java | 0 .../org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java | 0 .../com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java | 0 .../org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java | 0 .../org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java | 0 .../org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java | 0 .../apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java | 0 .../apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java | 0 .../org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java | 0 .../org/apache/xerces/internal/impl/dtd/models/CMStateSet.java | 0 .../sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java | 0 .../xerces/internal/impl/dtd/models/ContentModelValidator.java | 0 .../apache/xerces/internal/impl/dtd/models/DFAContentModel.java | 0 .../xerces/internal/impl/dtd/models/MixedContentModel.java | 0 .../xerces/internal/impl/dtd/models/SimpleContentModel.java | 0 .../sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java | 0 .../org/apache/xerces/internal/impl/dv/DVFactoryException.java | 0 .../org/apache/xerces/internal/impl/dv/DatatypeException.java | 0 .../org/apache/xerces/internal/impl/dv/DatatypeValidator.java | 0 .../xerces/internal/impl/dv/InvalidDatatypeFacetException.java | 0 .../xerces/internal/impl/dv/InvalidDatatypeValueException.java | 0 .../sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java | 0 .../sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java | 0 .../sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java | 0 .../sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java | 0 .../org/apache/xerces/internal/impl/dv/ValidationContext.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java | 0 .../sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java | 0 .../apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java | 0 .../xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java | 0 .../apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/ListDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/StringDatatypeValidator.java | 0 .../xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java | 0 .../xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java | 0 .../internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java | 0 .../internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java | 0 .../org/apache/xerces/internal/impl/dv/util/ByteListImpl.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java | 0 .../apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java | 0 .../org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java | 0 .../org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java | 0 .../apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java | 0 .../apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java | 0 .../xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java | 0 .../org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java | 0 .../apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java | 0 .../apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java | 0 .../xerces/internal/impl/dv/xs/SchemaDateTimeException.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java | 0 .../org/apache/xerces/internal/impl/dv/xs/TypeValidator.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java | 0 .../org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java | 0 .../apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java | 0 .../com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java | 0 .../sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java | 0 .../apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java | 0 .../com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java | 0 .../xerces/internal/impl/io/MalformedByteSequenceException.java | 0 .../com/sun/org/apache/xerces/internal/impl/io/UCSReader.java | 0 .../com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java | 0 .../org/apache/xerces/internal/impl/msg/DOMMessages.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_de.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_es.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_fr.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_it.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_ja.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_ko.properties | 0 .../xerces/internal/impl/msg/DOMMessages_pt_BR.properties | 0 .../apache/xerces/internal/impl/msg/DOMMessages_sv.properties | 0 .../xerces/internal/impl/msg/DOMMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/DOMMessages_zh_TW.properties | 0 .../apache/xerces/internal/impl/msg/DatatypeMessages.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_de.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_es.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_fr.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_it.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_ja.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_ko.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_sv.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties | 0 .../xerces/internal/impl/msg/JAXPValidationMessages.properties | 0 .../internal/impl/msg/JAXPValidationMessages_de.properties | 0 .../internal/impl/msg/JAXPValidationMessages_es.properties | 0 .../internal/impl/msg/JAXPValidationMessages_fr.properties | 0 .../internal/impl/msg/JAXPValidationMessages_it.properties | 0 .../internal/impl/msg/JAXPValidationMessages_ja.properties | 0 .../internal/impl/msg/JAXPValidationMessages_ko.properties | 0 .../internal/impl/msg/JAXPValidationMessages_pt_BR.properties | 0 .../internal/impl/msg/JAXPValidationMessages_sv.properties | 0 .../internal/impl/msg/JAXPValidationMessages_zh_CN.properties | 0 .../internal/impl/msg/JAXPValidationMessages_zh_TW.properties | 0 .../org/apache/xerces/internal/impl/msg/SAXMessages.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_de.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_es.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_fr.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_it.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_ja.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_ko.properties | 0 .../xerces/internal/impl/msg/SAXMessages_pt_BR.properties | 0 .../apache/xerces/internal/impl/msg/SAXMessages_sv.properties | 0 .../xerces/internal/impl/msg/SAXMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/SAXMessages_zh_TW.properties | 0 .../apache/xerces/internal/impl/msg/XIncludeMessages.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_de.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_es.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_fr.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_it.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_ja.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_ko.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_sv.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java | 0 .../xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java | 0 .../apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java | 0 .../xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java | 0 .../xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java | 0 .../org/apache/xerces/internal/impl/msg/XMLMessages.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_de.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_es.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_fr.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_it.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_ja.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_ko.properties | 0 .../xerces/internal/impl/msg/XMLMessages_pt_BR.properties | 0 .../apache/xerces/internal/impl/msg/XMLMessages_sv.properties | 0 .../xerces/internal/impl/msg/XMLMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/XMLMessages_zh_TW.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_de.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_es.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_fr.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_it.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_ja.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_ko.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_sv.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties | 0 .../xerces/internal/impl/msg/XMLSerializerMessages.properties | 0 .../internal/impl/msg/XMLSerializerMessages_de.properties | 0 .../internal/impl/msg/XMLSerializerMessages_es.properties | 0 .../internal/impl/msg/XMLSerializerMessages_fr.properties | 0 .../internal/impl/msg/XMLSerializerMessages_it.properties | 0 .../internal/impl/msg/XMLSerializerMessages_ja.properties | 0 .../internal/impl/msg/XMLSerializerMessages_ko.properties | 0 .../internal/impl/msg/XMLSerializerMessages_pt_BR.properties | 0 .../internal/impl/msg/XMLSerializerMessages_sv.properties | 0 .../internal/impl/msg/XMLSerializerMessages_zh_CN.properties | 0 .../internal/impl/msg/XMLSerializerMessages_zh_TW.properties | 0 .../apache/xerces/internal/impl/msg/XPointerMessages.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_de.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_es.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_fr.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_it.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_ja.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_ko.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_pt_BR.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_sv.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_zh_CN.properties | 0 .../xerces/internal/impl/msg/XPointerMessages_zh_TW.properties | 0 .../org/apache/xerces/internal/impl/validation/EntityState.java | 0 .../xerces/internal/impl/validation/ValidationManager.java | 0 .../apache/xerces/internal/impl/validation/ValidationState.java | 0 .../com/sun/org/apache/xerces/internal/impl/xpath/XPath.java | 0 .../org/apache/xerces/internal/impl/xpath/XPathException.java | 0 .../org/apache/xerces/internal/impl/xpath/regex/BMPattern.java | 0 .../xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java | 0 .../sun/org/apache/xerces/internal/impl/xpath/regex/Match.java | 0 .../com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java | 0 .../apache/xerces/internal/impl/xpath/regex/ParseException.java | 0 .../xerces/internal/impl/xpath/regex/ParserForXMLSchema.java | 0 .../sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java | 0 .../org/apache/xerces/internal/impl/xpath/regex/RangeToken.java | 0 .../apache/xerces/internal/impl/xpath/regex/RegexParser.java | 0 .../xerces/internal/impl/xpath/regex/RegularExpression.java | 0 .../sun/org/apache/xerces/internal/impl/xpath/regex/Token.java | 0 .../apache/xerces/internal/impl/xpath/regex/message.properties | 0 .../xerces/internal/impl/xpath/regex/message_fr.properties | 0 .../xerces/internal/impl/xpath/regex/message_ja.properties | 0 .../org/apache/xerces/internal/impl/xs/AttributePSVImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java | 0 .../apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java | 0 .../sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java | 0 .../xerces/internal/impl/xs/SubstitutionGroupHandler.java | 0 .../org/apache/xerces/internal/impl/xs/XMLSchemaException.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java | 0 .../org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java | 0 .../org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java | 0 .../apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java | 0 .../org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java | 0 .../org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSConstraints.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSDDescription.java | 0 .../org/apache/xerces/internal/impl/xs/XSDeclarationPool.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java | 0 .../com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java | 0 .../apache/xerces/internal/impl/xs/XSImplementationImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java | 0 .../org/apache/xerces/internal/impl/xs/XSMessageFormatter.java | 0 .../org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java | 0 .../com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/identity/Field.java | 0 .../apache/xerces/internal/impl/xs/identity/FieldActivator.java | 0 .../xerces/internal/impl/xs/identity/IdentityConstraint.java | 0 .../sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java | 0 .../org/apache/xerces/internal/impl/xs/identity/Selector.java | 0 .../apache/xerces/internal/impl/xs/identity/UniqueOrKey.java | 0 .../org/apache/xerces/internal/impl/xs/identity/ValueStore.java | 0 .../apache/xerces/internal/impl/xs/identity/XPathMatcher.java | 0 .../org/apache/xerces/internal/impl/xs/models/CMBuilder.java | 0 .../apache/xerces/internal/impl/xs/models/CMNodeFactory.java | 0 .../sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java | 0 .../org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java | 0 .../sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java | 0 .../xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java | 0 .../org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java | 0 .../apache/xerces/internal/impl/xs/models/XSCMValidator.java | 0 .../sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java | 0 .../org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java | 0 .../sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java | 0 .../apache/xerces/internal/impl/xs/opti/DefaultDocument.java | 0 .../org/apache/xerces/internal/impl/xs/opti/DefaultElement.java | 0 .../org/apache/xerces/internal/impl/xs/opti/DefaultNode.java | 0 .../org/apache/xerces/internal/impl/xs/opti/DefaultText.java | 0 .../xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java | 0 .../org/apache/xerces/internal/impl/xs/opti/ElementImpl.java | 0 .../apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java | 0 .../sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java | 0 .../xerces/internal/impl/xs/opti/SchemaDOMImplementation.java | 0 .../apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java | 0 .../xerces/internal/impl/xs/opti/SchemaParsingConfig.java | 0 .../sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java | 0 .../internal/impl/xs/traversers/SchemaContentHandler.java | 0 .../xerces/internal/impl/xs/traversers/StAXSchemaParser.java | 0 .../xerces/internal/impl/xs/traversers/XSAnnotationInfo.java | 0 .../xerces/internal/impl/xs/traversers/XSAttributeChecker.java | 0 .../impl/xs/traversers/XSDAbstractIDConstraintTraverser.java | 0 .../impl/xs/traversers/XSDAbstractParticleTraverser.java | 0 .../internal/impl/xs/traversers/XSDAbstractTraverser.java | 0 .../internal/impl/xs/traversers/XSDAttributeGroupTraverser.java | 0 .../internal/impl/xs/traversers/XSDAttributeTraverser.java | 0 .../internal/impl/xs/traversers/XSDComplexTypeTraverser.java | 0 .../xerces/internal/impl/xs/traversers/XSDElementTraverser.java | 0 .../xerces/internal/impl/xs/traversers/XSDGroupTraverser.java | 0 .../apache/xerces/internal/impl/xs/traversers/XSDHandler.java | 0 .../xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java | 0 .../internal/impl/xs/traversers/XSDNotationTraverser.java | 0 .../internal/impl/xs/traversers/XSDSimpleTypeTraverser.java | 0 .../internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java | 0 .../internal/impl/xs/traversers/XSDWildcardTraverser.java | 0 .../xerces/internal/impl/xs/traversers/XSDocumentInfo.java | 0 .../apache/xerces/internal/impl/xs/util/LSInputListImpl.java | 0 .../org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java | 0 .../org/apache/xerces/internal/impl/xs/util/ShortListImpl.java | 0 .../org/apache/xerces/internal/impl/xs/util/SimpleLocator.java | 0 .../org/apache/xerces/internal/impl/xs/util/StringListImpl.java | 0 .../com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java | 0 .../sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java | 0 .../org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java | 0 .../org/apache/xerces/internal/impl/xs/util/XSInputSource.java | 0 .../apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java | 0 .../org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java | 0 .../apache/xerces/internal/impl/xs/util/XSObjectListImpl.java | 0 .../xerces/internal/jaxp/DefaultValidationErrorHandler.java | 0 .../apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java | 0 .../org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java | 0 .../com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java | 0 .../org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java | 0 .../org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java | 0 .../com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java | 0 .../xerces/internal/jaxp/SchemaValidatorConfiguration.java | 0 .../apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java | 0 .../org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java | 0 .../xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java | 0 .../xerces/internal/jaxp/datatype/DurationDayTimeImpl.java | 0 .../org/apache/xerces/internal/jaxp/datatype/DurationImpl.java | 0 .../xerces/internal/jaxp/datatype/DurationYearMonthImpl.java | 0 .../xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java | 0 .../internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory | 0 .../internal/jaxp/javax.xml.parsers.DocumentBuilderFactory | 0 .../xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory | 0 .../xerces/internal/jaxp/validation/AbstractXMLSchema.java | 0 .../xerces/internal/jaxp/validation/DOMDocumentHandler.java | 0 .../xerces/internal/jaxp/validation/DOMResultAugmentor.java | 0 .../xerces/internal/jaxp/validation/DOMResultBuilder.java | 0 .../xerces/internal/jaxp/validation/DOMValidatorHelper.java | 0 .../xerces/internal/jaxp/validation/DraconianErrorHandler.java | 0 .../apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java | 0 .../xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java | 0 .../jaxp/validation/JAXPValidationMessageFormatter.java | 0 .../xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java | 0 .../apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java | 0 .../internal/jaxp/validation/SoftReferenceGrammarPool.java | 0 .../xerces/internal/jaxp/validation/StAXValidatorHelper.java | 0 .../xerces/internal/jaxp/validation/StreamValidatorHelper.java | 0 .../sun/org/apache/xerces/internal/jaxp/validation/Util.java | 0 .../xerces/internal/jaxp/validation/ValidatorHandlerImpl.java | 0 .../apache/xerces/internal/jaxp/validation/ValidatorHelper.java | 0 .../apache/xerces/internal/jaxp/validation/ValidatorImpl.java | 0 .../xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java | 0 .../xerces/internal/jaxp/validation/WrappedSAXException.java | 0 .../org/apache/xerces/internal/jaxp/validation/XMLSchema.java | 0 .../xerces/internal/jaxp/validation/XMLSchemaFactory.java | 0 .../jaxp/validation/XMLSchemaValidatorComponentManager.java | 0 .../xerces/internal/jaxp/validation/XSGrammarPoolContainer.java | 0 .../internal/jaxp/validation/javax.xml.validation.SchemaFactory | 0 .../org/apache/xerces/internal/parsers/AbstractDOMParser.java | 0 .../org/apache/xerces/internal/parsers/AbstractSAXParser.java | 0 .../xerces/internal/parsers/AbstractXMLDocumentParser.java | 0 .../xerces/internal/parsers/BasicParserConfiguration.java | 0 .../org/apache/xerces/internal/parsers/CachingParserPool.java | 0 .../com/sun/org/apache/xerces/internal/parsers/DOMParser.java | 0 .../sun/org/apache/xerces/internal/parsers/DOMParserImpl.java | 0 .../org/apache/xerces/internal/parsers/DTDConfiguration.java | 0 .../com/sun/org/apache/xerces/internal/parsers/DTDParser.java | 0 .../xerces/internal/parsers/IntegratedParserConfiguration.java | 0 .../xerces/internal/parsers/NonValidatingConfiguration.java | 0 .../sun/org/apache/xerces/internal/parsers/ObjectFactory.java | 0 .../com/sun/org/apache/xerces/internal/parsers/SAXParser.java | 0 .../apache/xerces/internal/parsers/SecurityConfiguration.java | 0 .../sun/org/apache/xerces/internal/parsers/SecuritySupport.java | 0 .../xerces/internal/parsers/StandardParserConfiguration.java | 0 .../internal/parsers/XIncludeAwareParserConfiguration.java | 0 .../xerces/internal/parsers/XIncludeParserConfiguration.java | 0 .../org/apache/xerces/internal/parsers/XML11Configurable.java | 0 .../org/apache/xerces/internal/parsers/XML11Configuration.java | 0 .../apache/xerces/internal/parsers/XML11DTDConfiguration.java | 0 .../internal/parsers/XML11NonValidatingConfiguration.java | 0 .../org/apache/xerces/internal/parsers/XMLDocumentParser.java | 0 .../xerces/internal/parsers/XMLGrammarCachingConfiguration.java | 0 .../org/apache/xerces/internal/parsers/XMLGrammarParser.java | 0 .../org/apache/xerces/internal/parsers/XMLGrammarPreparser.java | 0 .../com/sun/org/apache/xerces/internal/parsers/XMLParser.java | 0 .../xerces/internal/parsers/XPointerParserConfiguration.java | 0 .../parsers/org.apache.xerces.xni.parser.DTDConfiguration | 0 .../parsers/org.apache.xerces.xni.parser.XML11Configuration | 0 .../parsers/org.apache.xerces.xni.parser.XMLParserConfiguration | 0 .../sun/org/apache/xerces/internal/parsers/org.xml.sax.driver | 0 .../sun/org/apache/xerces/internal/util/AttributesProxy.java | 0 .../sun/org/apache/xerces/internal/util/AugmentationsImpl.java | 0 .../apache/xerces/internal/util/DOMEntityResolverWrapper.java | 0 .../org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java | 0 .../com/sun/org/apache/xerces/internal/util/DOMInputSource.java | 0 .../com/sun/org/apache/xerces/internal/util/DOMUtil.java | 0 .../apache/xerces/internal/util/DatatypeMessageFormatter.java | 0 .../org/apache/xerces/internal/util/DefaultErrorHandler.java | 0 .../org/apache/xerces/internal/util/DraconianErrorHandler.java | 0 .../com/sun/org/apache/xerces/internal/util/EncodingMap.java | 0 .../org/apache/xerces/internal/util/EntityResolver2Wrapper.java | 0 .../org/apache/xerces/internal/util/EntityResolverWrapper.java | 0 .../sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java | 0 .../org/apache/xerces/internal/util/ErrorHandlerWrapper.java | 0 .../com/sun/org/apache/xerces/internal/util/FeatureState.java | 0 .../sun/org/apache/xerces/internal/util/HTTPInputSource.java | 0 .../com/sun/org/apache/xerces/internal/util/IntStack.java | 0 .../xerces/internal/util/JAXPNamespaceContextWrapper.java | 0 .../com/sun/org/apache/xerces/internal/util/LocatorProxy.java | 0 .../com/sun/org/apache/xerces/internal/util/LocatorWrapper.java | 0 .../sun/org/apache/xerces/internal/util/MessageFormatter.java | 0 .../apache/xerces/internal/util/NamespaceContextWrapper.java | 0 .../sun/org/apache/xerces/internal/util/NamespaceSupport.java | 0 .../xerces/internal/util/ParserConfigurationSettings.java | 0 .../com/sun/org/apache/xerces/internal/util/PropertyState.java | 0 .../com/sun/org/apache/xerces/internal/util/SAX2XNI.java | 0 .../com/sun/org/apache/xerces/internal/util/SAXInputSource.java | 0 .../sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java | 0 .../org/apache/xerces/internal/util/SAXMessageFormatter.java | 0 .../sun/org/apache/xerces/internal/util/SecurityManager.java | 0 .../org/apache/xerces/internal/util/ShadowedSymbolTable.java | 0 .../sun/org/apache/xerces/internal/util/StAXInputSource.java | 0 .../org/apache/xerces/internal/util/StAXLocationWrapper.java | 0 .../com/sun/org/apache/xerces/internal/util/Status.java | 0 .../com/sun/org/apache/xerces/internal/util/SymbolHash.java | 0 .../com/sun/org/apache/xerces/internal/util/SymbolTable.java | 0 .../apache/xerces/internal/util/SynchronizedSymbolTable.java | 0 .../apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java | 0 .../com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java | 0 .../com/sun/org/apache/xerces/internal/util/URI.java | 0 .../com/sun/org/apache/xerces/internal/util/XML11Char.java | 0 .../sun/org/apache/xerces/internal/util/XMLAttributesImpl.java | 0 .../apache/xerces/internal/util/XMLAttributesIteratorImpl.java | 0 .../sun/org/apache/xerces/internal/util/XMLCatalogResolver.java | 0 .../com/sun/org/apache/xerces/internal/util/XMLChar.java | 0 .../org/apache/xerces/internal/util/XMLDocumentFilterImpl.java | 0 .../apache/xerces/internal/util/XMLEntityDescriptionImpl.java | 0 .../com/sun/org/apache/xerces/internal/util/XMLErrorCode.java | 0 .../sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java | 0 .../org/apache/xerces/internal/util/XMLInputSourceAdaptor.java | 0 .../apache/xerces/internal/util/XMLResourceIdentifierImpl.java | 0 .../sun/org/apache/xerces/internal/util/XMLStringBuffer.java | 0 .../com/sun/org/apache/xerces/internal/util/XMLSymbols.java | 0 .../xerces/internal/xinclude/MultipleScopeNamespaceSupport.java | 0 .../sun/org/apache/xerces/internal/xinclude/ObjectFactory.java | 0 .../org/apache/xerces/internal/xinclude/SecuritySupport.java | 0 .../apache/xerces/internal/xinclude/XInclude11TextReader.java | 0 .../org/apache/xerces/internal/xinclude/XIncludeHandler.java | 0 .../xerces/internal/xinclude/XIncludeMessageFormatter.java | 0 .../xerces/internal/xinclude/XIncludeNamespaceSupport.java | 0 .../org/apache/xerces/internal/xinclude/XIncludeTextReader.java | 0 .../apache/xerces/internal/xinclude/XPointerElementHandler.java | 0 .../org/apache/xerces/internal/xinclude/XPointerFramework.java | 0 .../sun/org/apache/xerces/internal/xinclude/XPointerSchema.java | 0 .../com/sun/org/apache/xerces/internal/xni/Augmentations.java | 0 .../sun/org/apache/xerces/internal/xni/NamespaceContext.java | 0 .../com/sun/org/apache/xerces/internal/xni/QName.java | 0 .../com/sun/org/apache/xerces/internal/xni/XMLAttributes.java | 0 .../apache/xerces/internal/xni/XMLDTDContentModelHandler.java | 0 .../com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java | 0 .../apache/xerces/internal/xni/XMLDocumentFragmentHandler.java | 0 .../sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java | 0 .../com/sun/org/apache/xerces/internal/xni/XMLLocator.java | 0 .../org/apache/xerces/internal/xni/XMLResourceIdentifier.java | 0 .../com/sun/org/apache/xerces/internal/xni/XMLString.java | 0 .../com/sun/org/apache/xerces/internal/xni/XNIException.java | 0 .../sun/org/apache/xerces/internal/xni/grammars/Grammar.java | 0 .../apache/xerces/internal/xni/grammars/XMLDTDDescription.java | 0 .../xerces/internal/xni/grammars/XMLGrammarDescription.java | 0 .../apache/xerces/internal/xni/grammars/XMLGrammarLoader.java | 0 .../org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java | 0 .../xerces/internal/xni/grammars/XMLSchemaDescription.java | 0 .../sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java | 0 .../sun/org/apache/xerces/internal/xni/parser/XMLComponent.java | 0 .../apache/xerces/internal/xni/parser/XMLComponentManager.java | 0 .../xerces/internal/xni/parser/XMLConfigurationException.java | 0 .../xerces/internal/xni/parser/XMLDTDContentModelFilter.java | 0 .../xerces/internal/xni/parser/XMLDTDContentModelSource.java | 0 .../sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java | 0 .../org/apache/xerces/internal/xni/parser/XMLDTDScanner.java | 0 .../sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java | 0 .../apache/xerces/internal/xni/parser/XMLDocumentFilter.java | 0 .../apache/xerces/internal/xni/parser/XMLDocumentScanner.java | 0 .../apache/xerces/internal/xni/parser/XMLDocumentSource.java | 0 .../apache/xerces/internal/xni/parser/XMLEntityResolver.java | 0 .../org/apache/xerces/internal/xni/parser/XMLErrorHandler.java | 0 .../org/apache/xerces/internal/xni/parser/XMLInputSource.java | 0 .../apache/xerces/internal/xni/parser/XMLParseException.java | 0 .../xerces/internal/xni/parser/XMLParserConfiguration.java | 0 .../xerces/internal/xni/parser/XMLPullParserConfiguration.java | 0 .../apache/xerces/internal/xpointer/ElementSchemePointer.java | 0 .../org/apache/xerces/internal/xpointer/ShortHandPointer.java | 0 .../apache/xerces/internal/xpointer/XPointerErrorHandler.java | 0 .../org/apache/xerces/internal/xpointer/XPointerHandler.java | 0 .../xerces/internal/xpointer/XPointerMessageFormatter.java | 0 .../sun/org/apache/xerces/internal/xpointer/XPointerPart.java | 0 .../org/apache/xerces/internal/xpointer/XPointerProcessor.java | 0 .../com/sun/org/apache/xerces/internal/xs/AttributePSVI.java | 0 .../com/sun/org/apache/xerces/internal/xs/ElementPSVI.java | 0 .../com/sun/org/apache/xerces/internal/xs/ItemPSVI.java | 0 .../com/sun/org/apache/xerces/internal/xs/LSInputList.java | 0 .../com/sun/org/apache/xerces/internal/xs/PSVIProvider.java | 0 .../com/sun/org/apache/xerces/internal/xs/ShortList.java | 0 .../com/sun/org/apache/xerces/internal/xs/StringList.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSAnnotation.java | 0 .../org/apache/xerces/internal/xs/XSAttributeDeclaration.java | 0 .../apache/xerces/internal/xs/XSAttributeGroupDefinition.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java | 0 .../org/apache/xerces/internal/xs/XSComplexTypeDefinition.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSConstants.java | 0 .../sun/org/apache/xerces/internal/xs/XSElementDeclaration.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSException.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSFacet.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSImplementation.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSLoader.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSModel.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSModelGroup.java | 0 .../org/apache/xerces/internal/xs/XSModelGroupDefinition.java | 0 .../sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSNamedMap.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java | 0 .../sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java | 0 .../org/apache/xerces/internal/xs/XSNotationDeclaration.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSObject.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSObjectList.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSParticle.java | 0 .../org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSTerm.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java | 0 .../com/sun/org/apache/xerces/internal/xs/XSWildcard.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/ByteList.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/XSQName.java | 0 .../sun/org/apache/xerces/internal/xs/datatypes/package.html | 0 .../classes => }/com/sun/org/apache/xml/internal/dtm/Axis.java | 0 .../classes => }/com/sun/org/apache/xml/internal/dtm/DTM.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java | 0 .../org/apache/xml/internal/dtm/DTMConfigurationException.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMDOMException.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMException.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMFilter.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMIterator.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMManager.java | 0 .../com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java | 0 .../com/sun/org/apache/xml/internal/dtm/ObjectFactory.java | 0 .../com/sun/org/apache/xml/internal/dtm/SecuritySupport.java | 0 .../com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java | 0 .../sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java | 0 .../sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java | 0 .../sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java | 0 .../sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java | 0 .../org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java | 0 .../org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java | 0 .../org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java | 0 .../apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java | 0 .../apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java | 0 .../sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java | 0 .../sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java | 0 .../org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java | 0 .../xml/internal/dtm/ref/IncrementalSAXSource_Filter.java | 0 .../xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java | 0 .../com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java | 0 .../sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java | 0 .../sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java | 0 .../sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java | 0 .../dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java | 0 .../sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java | 0 .../sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java | 0 .../sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java | 0 .../com/sun/org/apache/xml/internal/res/XMLErrorResources.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_ca.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_cs.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_de.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_en.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_es.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_fr.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_it.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_ja.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_ko.java | 0 .../org/apache/xml/internal/res/XMLErrorResources_pt_BR.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_sk.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_sv.java | 0 .../sun/org/apache/xml/internal/res/XMLErrorResources_tr.java | 0 .../org/apache/xml/internal/res/XMLErrorResources_zh_CN.java | 0 .../org/apache/xml/internal/res/XMLErrorResources_zh_HK.java | 0 .../org/apache/xml/internal/res/XMLErrorResources_zh_TW.java | 0 .../com/sun/org/apache/xml/internal/res/XMLMessages.java | 0 .../com/sun/org/apache/xml/internal/resolver/Catalog.java | 0 .../com/sun/org/apache/xml/internal/resolver/CatalogEntry.java | 0 .../sun/org/apache/xml/internal/resolver/CatalogException.java | 0 .../sun/org/apache/xml/internal/resolver/CatalogManager.java | 0 .../com/sun/org/apache/xml/internal/resolver/Resolver.java | 0 .../apache/xml/internal/resolver/helpers/BootstrapResolver.java | 0 .../com/sun/org/apache/xml/internal/resolver/helpers/Debug.java | 0 .../sun/org/apache/xml/internal/resolver/helpers/FileURL.java | 0 .../org/apache/xml/internal/resolver/helpers/Namespaces.java | 0 .../sun/org/apache/xml/internal/resolver/helpers/PublicId.java | 0 .../org/apache/xml/internal/resolver/readers/CatalogReader.java | 0 .../apache/xml/internal/resolver/readers/DOMCatalogParser.java | 0 .../apache/xml/internal/resolver/readers/DOMCatalogReader.java | 0 .../xml/internal/resolver/readers/ExtendedXMLCatalogReader.java | 0 .../xml/internal/resolver/readers/OASISXMLCatalogReader.java | 0 .../apache/xml/internal/resolver/readers/SAXCatalogParser.java | 0 .../apache/xml/internal/resolver/readers/SAXCatalogReader.java | 0 .../apache/xml/internal/resolver/readers/SAXParserHandler.java | 0 .../xml/internal/resolver/readers/TR9401CatalogReader.java | 0 .../apache/xml/internal/resolver/readers/TextCatalogReader.java | 0 .../apache/xml/internal/resolver/readers/XCatalogReader.java | 0 .../org/apache/xml/internal/resolver/tools/CatalogResolver.java | 0 .../org/apache/xml/internal/resolver/tools/ResolvingParser.java | 0 .../apache/xml/internal/resolver/tools/ResolvingXMLFilter.java | 0 .../apache/xml/internal/resolver/tools/ResolvingXMLReader.java | 0 .../org/apache/xml/internal/serialize/BaseMarkupSerializer.java | 0 .../sun/org/apache/xml/internal/serialize/DOMSerializer.java | 0 .../org/apache/xml/internal/serialize/DOMSerializerImpl.java | 0 .../com/sun/org/apache/xml/internal/serialize/ElementState.java | 0 .../com/sun/org/apache/xml/internal/serialize/EncodingInfo.java | 0 .../com/sun/org/apache/xml/internal/serialize/Encodings.java | 0 .../com/sun/org/apache/xml/internal/serialize/HTMLEntities.res | 0 .../sun/org/apache/xml/internal/serialize/HTMLSerializer.java | 0 .../com/sun/org/apache/xml/internal/serialize/HTMLdtd.java | 0 .../sun/org/apache/xml/internal/serialize/IndentPrinter.java | 0 .../sun/org/apache/xml/internal/serialize/LineSeparator.java | 0 .../com/sun/org/apache/xml/internal/serialize/Method.java | 0 .../sun/org/apache/xml/internal/serialize/ObjectFactory.java | 0 .../com/sun/org/apache/xml/internal/serialize/OutputFormat.java | 0 .../com/sun/org/apache/xml/internal/serialize/Printer.java | 0 .../sun/org/apache/xml/internal/serialize/SecuritySupport.java | 0 .../com/sun/org/apache/xml/internal/serialize/Serializer.java | 0 .../org/apache/xml/internal/serialize/SerializerFactory.java | 0 .../apache/xml/internal/serialize/SerializerFactoryImpl.java | 0 .../sun/org/apache/xml/internal/serialize/TextSerializer.java | 0 .../sun/org/apache/xml/internal/serialize/XHTMLSerializer.java | 0 .../sun/org/apache/xml/internal/serialize/XML11Serializer.java | 0 .../sun/org/apache/xml/internal/serialize/XMLSerializer.java | 0 .../xml/internal/serializer/AttributesImplSerializer.java | 0 .../com/sun/org/apache/xml/internal/serializer/CharInfo.java | 0 .../sun/org/apache/xml/internal/serializer/DOMSerializer.java | 0 .../com/sun/org/apache/xml/internal/serializer/ElemContext.java | 0 .../com/sun/org/apache/xml/internal/serializer/ElemDesc.java | 0 .../sun/org/apache/xml/internal/serializer/EmptySerializer.java | 0 .../sun/org/apache/xml/internal/serializer/EncodingInfo.java | 0 .../com/sun/org/apache/xml/internal/serializer/Encodings.java | 0 .../sun/org/apache/xml/internal/serializer/Encodings.properties | 0 .../apache/xml/internal/serializer/ExtendedContentHandler.java | 0 .../apache/xml/internal/serializer/ExtendedLexicalHandler.java | 0 .../org/apache/xml/internal/serializer/HTMLEntities.properties | 0 .../com/sun/org/apache/xml/internal/serializer/Method.java | 0 .../org/apache/xml/internal/serializer/NamespaceMappings.java | 0 .../sun/org/apache/xml/internal/serializer/ObjectFactory.java | 0 .../apache/xml/internal/serializer/OutputPropertiesFactory.java | 0 .../org/apache/xml/internal/serializer/OutputPropertyUtils.java | 0 .../sun/org/apache/xml/internal/serializer/SecuritySupport.java | 0 .../org/apache/xml/internal/serializer/SecuritySupport12.java | 0 .../apache/xml/internal/serializer/SerializationHandler.java | 0 .../com/sun/org/apache/xml/internal/serializer/Serializer.java | 0 .../sun/org/apache/xml/internal/serializer/SerializerBase.java | 0 .../org/apache/xml/internal/serializer/SerializerConstants.java | 0 .../org/apache/xml/internal/serializer/SerializerFactory.java | 0 .../sun/org/apache/xml/internal/serializer/SerializerTrace.java | 0 .../apache/xml/internal/serializer/SerializerTraceWriter.java | 0 .../org/apache/xml/internal/serializer/ToHTMLSAXHandler.java | 0 .../sun/org/apache/xml/internal/serializer/ToHTMLStream.java | 0 .../sun/org/apache/xml/internal/serializer/ToSAXHandler.java | 0 .../com/sun/org/apache/xml/internal/serializer/ToStream.java | 0 .../org/apache/xml/internal/serializer/ToTextSAXHandler.java | 0 .../sun/org/apache/xml/internal/serializer/ToTextStream.java | 0 .../sun/org/apache/xml/internal/serializer/ToUnknownStream.java | 0 .../sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java | 0 .../com/sun/org/apache/xml/internal/serializer/ToXMLStream.java | 0 .../apache/xml/internal/serializer/TransformStateSetter.java | 0 .../com/sun/org/apache/xml/internal/serializer/TreeWalker.java | 0 .../com/sun/org/apache/xml/internal/serializer/Utils.java | 0 .../com/sun/org/apache/xml/internal/serializer/Version.java | 0 .../com/sun/org/apache/xml/internal/serializer/WriterChain.java | 0 .../sun/org/apache/xml/internal/serializer/WriterToASCI.java | 0 .../apache/xml/internal/serializer/WriterToUTF8Buffered.java | 0 .../org/apache/xml/internal/serializer/XMLEntities.properties | 0 .../org/apache/xml/internal/serializer/XSLOutputAttributes.java | 0 .../org/apache/xml/internal/serializer/output_html.properties | 0 .../org/apache/xml/internal/serializer/output_text.properties | 0 .../apache/xml/internal/serializer/output_unknown.properties | 0 .../org/apache/xml/internal/serializer/output_xml.properties | 0 .../com/sun/org/apache/xml/internal/serializer/package.html | 0 .../sun/org/apache/xml/internal/serializer/utils/AttList.java | 0 .../sun/org/apache/xml/internal/serializer/utils/BoolStack.java | 0 .../org/apache/xml/internal/serializer/utils/DOM2Helper.java | 0 .../sun/org/apache/xml/internal/serializer/utils/Messages.java | 0 .../sun/org/apache/xml/internal/serializer/utils/MsgKey.java | 0 .../xml/internal/serializer/utils/SerializerMessages.java | 0 .../xml/internal/serializer/utils/SerializerMessages_ca.java | 0 .../xml/internal/serializer/utils/SerializerMessages_cs.java | 0 .../xml/internal/serializer/utils/SerializerMessages_de.java | 0 .../xml/internal/serializer/utils/SerializerMessages_en.java | 0 .../xml/internal/serializer/utils/SerializerMessages_es.java | 0 .../xml/internal/serializer/utils/SerializerMessages_fr.java | 0 .../xml/internal/serializer/utils/SerializerMessages_it.java | 0 .../xml/internal/serializer/utils/SerializerMessages_ja.java | 0 .../xml/internal/serializer/utils/SerializerMessages_ko.java | 0 .../xml/internal/serializer/utils/SerializerMessages_sv.java | 0 .../xml/internal/serializer/utils/SerializerMessages_zh_CN.java | 0 .../xml/internal/serializer/utils/SerializerMessages_zh_TW.java | 0 .../apache/xml/internal/serializer/utils/StringToIntTable.java | 0 .../apache/xml/internal/serializer/utils/SystemIDResolver.java | 0 .../com/sun/org/apache/xml/internal/serializer/utils/URI.java | 0 .../com/sun/org/apache/xml/internal/serializer/utils/Utils.java | 0 .../xml/internal/serializer/utils/WrappedRuntimeException.java | 0 .../com/sun/org/apache/xml/internal/utils/AttList.java | 0 .../com/sun/org/apache/xml/internal/utils/BoolStack.java | 0 .../com/sun/org/apache/xml/internal/utils/CharKey.java | 0 .../com/sun/org/apache/xml/internal/utils/Constants.java | 0 .../com/sun/org/apache/xml/internal/utils/DOM2Helper.java | 0 .../com/sun/org/apache/xml/internal/utils/DOMBuilder.java | 0 .../com/sun/org/apache/xml/internal/utils/DOMHelper.java | 0 .../com/sun/org/apache/xml/internal/utils/DOMOrder.java | 0 .../sun/org/apache/xml/internal/utils/DefaultErrorHandler.java | 0 .../com/sun/org/apache/xml/internal/utils/ElemDesc.java | 0 .../com/sun/org/apache/xml/internal/utils/FastStringBuffer.java | 0 .../com/sun/org/apache/xml/internal/utils/Hashtree2Node.java | 0 .../com/sun/org/apache/xml/internal/utils/IntStack.java | 0 .../com/sun/org/apache/xml/internal/utils/IntVector.java | 0 .../sun/org/apache/xml/internal/utils/ListingErrorHandler.java | 0 .../com/sun/org/apache/xml/internal/utils/LocaleUtility.java | 0 .../sun/org/apache/xml/internal/utils/MutableAttrListImpl.java | 0 .../com/sun/org/apache/xml/internal/utils/NSInfo.java | 0 .../com/sun/org/apache/xml/internal/utils/NameSpace.java | 0 .../sun/org/apache/xml/internal/utils/NamespaceSupport2.java | 0 .../com/sun/org/apache/xml/internal/utils/NodeConsumer.java | 0 .../com/sun/org/apache/xml/internal/utils/NodeVector.java | 0 .../com/sun/org/apache/xml/internal/utils/ObjectFactory.java | 0 .../com/sun/org/apache/xml/internal/utils/ObjectPool.java | 0 .../com/sun/org/apache/xml/internal/utils/ObjectStack.java | 0 .../com/sun/org/apache/xml/internal/utils/ObjectVector.java | 0 .../com/sun/org/apache/xml/internal/utils/PrefixResolver.java | 0 .../org/apache/xml/internal/utils/PrefixResolverDefault.java | 0 .../com/sun/org/apache/xml/internal/utils/QName.java | 0 .../sun/org/apache/xml/internal/utils/RawCharacterHandler.java | 0 .../com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java | 0 .../com/sun/org/apache/xml/internal/utils/SecuritySupport.java | 0 .../sun/org/apache/xml/internal/utils/SecuritySupport12.java | 0 .../org/apache/xml/internal/utils/SerializableLocatorImpl.java | 0 .../sun/org/apache/xml/internal/utils/StopParseException.java | 0 .../com/sun/org/apache/xml/internal/utils/StringBufferPool.java | 0 .../com/sun/org/apache/xml/internal/utils/StringComparable.java | 0 .../com/sun/org/apache/xml/internal/utils/StringToIntTable.java | 0 .../sun/org/apache/xml/internal/utils/StringToStringTable.java | 0 .../apache/xml/internal/utils/StringToStringTableVector.java | 0 .../com/sun/org/apache/xml/internal/utils/StringVector.java | 0 .../sun/org/apache/xml/internal/utils/StylesheetPIHandler.java | 0 .../org/apache/xml/internal/utils/SuballocatedByteVector.java | 0 .../org/apache/xml/internal/utils/SuballocatedIntVector.java | 0 .../com/sun/org/apache/xml/internal/utils/SystemIDResolver.java | 0 .../org/apache/xml/internal/utils/ThreadControllerWrapper.java | 0 .../com/sun/org/apache/xml/internal/utils/TreeWalker.java | 0 .../com/sun/org/apache/xml/internal/utils/Trie.java | 0 .../classes => }/com/sun/org/apache/xml/internal/utils/URI.java | 0 .../com/sun/org/apache/xml/internal/utils/UnImplNode.java | 0 .../org/apache/xml/internal/utils/WrappedRuntimeException.java | 0 .../sun/org/apache/xml/internal/utils/WrongParserException.java | 0 .../com/sun/org/apache/xml/internal/utils/XML11Char.java | 0 .../com/sun/org/apache/xml/internal/utils/XMLChar.java | 0 .../org/apache/xml/internal/utils/XMLCharacterRecognizer.java | 0 .../com/sun/org/apache/xml/internal/utils/XMLReaderManager.java | 0 .../com/sun/org/apache/xml/internal/utils/XMLString.java | 0 .../com/sun/org/apache/xml/internal/utils/XMLStringDefault.java | 0 .../com/sun/org/apache/xml/internal/utils/XMLStringFactory.java | 0 .../org/apache/xml/internal/utils/XMLStringFactoryDefault.java | 0 .../com/sun/org/apache/xml/internal/utils/package.html | 0 .../sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java | 0 .../sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java | 0 .../sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java | 0 .../org/apache/xml/internal/utils/res/StringArrayWrapper.java | 0 .../sun/org/apache/xml/internal/utils/res/XResourceBundle.java | 0 .../org/apache/xml/internal/utils/res/XResourceBundleBase.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_de.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_en.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_es.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_fr.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_it.java | 0 .../org/apache/xml/internal/utils/res/XResources_ja_JP_A.java | 0 .../org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java | 0 .../org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java | 0 .../org/apache/xml/internal/utils/res/XResources_ja_JP_I.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_ko.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_sv.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java | 0 .../sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java | 0 .../classes => }/com/sun/org/apache/xpath/internal/Arg.java | 0 .../com/sun/org/apache/xpath/internal/CachedXPathAPI.java | 0 .../com/sun/org/apache/xpath/internal/Expression.java | 0 .../com/sun/org/apache/xpath/internal/ExpressionNode.java | 0 .../com/sun/org/apache/xpath/internal/ExpressionOwner.java | 0 .../com/sun/org/apache/xpath/internal/ExtensionsProvider.java | 0 .../com/sun/org/apache/xpath/internal/FoundIndex.java | 0 .../classes => }/com/sun/org/apache/xpath/internal/NodeSet.java | 0 .../com/sun/org/apache/xpath/internal/NodeSetDTM.java | 0 .../com/sun/org/apache/xpath/internal/SourceTree.java | 0 .../com/sun/org/apache/xpath/internal/SourceTreeManager.java | 0 .../com/sun/org/apache/xpath/internal/VariableStack.java | 0 .../xpath/internal/WhitespaceStrippingElementMatcher.java | 0 .../classes => }/com/sun/org/apache/xpath/internal/XPath.java | 0 .../com/sun/org/apache/xpath/internal/XPathAPI.java | 0 .../com/sun/org/apache/xpath/internal/XPathContext.java | 0 .../com/sun/org/apache/xpath/internal/XPathException.java | 0 .../com/sun/org/apache/xpath/internal/XPathFactory.java | 0 .../sun/org/apache/xpath/internal/XPathProcessorException.java | 0 .../com/sun/org/apache/xpath/internal/XPathVisitable.java | 0 .../com/sun/org/apache/xpath/internal/XPathVisitor.java | 0 .../sun/org/apache/xpath/internal/axes/AttributeIterator.java | 0 .../com/sun/org/apache/xpath/internal/axes/AxesWalker.java | 0 .../sun/org/apache/xpath/internal/axes/BasicTestIterator.java | 0 .../com/sun/org/apache/xpath/internal/axes/ChildIterator.java | 0 .../sun/org/apache/xpath/internal/axes/ChildTestIterator.java | 0 .../com/sun/org/apache/xpath/internal/axes/ContextNodeList.java | 0 .../sun/org/apache/xpath/internal/axes/DescendantIterator.java | 0 .../sun/org/apache/xpath/internal/axes/FilterExprIterator.java | 0 .../apache/xpath/internal/axes/FilterExprIteratorSimple.java | 0 .../sun/org/apache/xpath/internal/axes/FilterExprWalker.java | 0 .../apache/xpath/internal/axes/HasPositionalPredChecker.java | 0 .../com/sun/org/apache/xpath/internal/axes/IteratorPool.java | 0 .../com/sun/org/apache/xpath/internal/axes/LocPathIterator.java | 0 .../org/apache/xpath/internal/axes/MatchPatternIterator.java | 0 .../com/sun/org/apache/xpath/internal/axes/NodeSequence.java | 0 .../com/sun/org/apache/xpath/internal/axes/OneStepIterator.java | 0 .../org/apache/xpath/internal/axes/OneStepIteratorForward.java | 0 .../com/sun/org/apache/xpath/internal/axes/PathComponent.java | 0 .../sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java | 0 .../com/sun/org/apache/xpath/internal/axes/RTFIterator.java | 0 .../sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java | 0 .../org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java | 0 .../com/sun/org/apache/xpath/internal/axes/SubContextList.java | 0 .../sun/org/apache/xpath/internal/axes/UnionChildIterator.java | 0 .../sun/org/apache/xpath/internal/axes/UnionPathIterator.java | 0 .../com/sun/org/apache/xpath/internal/axes/WalkerFactory.java | 0 .../com/sun/org/apache/xpath/internal/axes/WalkingIterator.java | 0 .../org/apache/xpath/internal/axes/WalkingIteratorSorted.java | 0 .../com/sun/org/apache/xpath/internal/axes/package.html | 0 .../com/sun/org/apache/xpath/internal/compiler/Compiler.java | 0 .../com/sun/org/apache/xpath/internal/compiler/FuncLoader.java | 0 .../sun/org/apache/xpath/internal/compiler/FunctionTable.java | 0 .../com/sun/org/apache/xpath/internal/compiler/Keywords.java | 0 .../com/sun/org/apache/xpath/internal/compiler/Lexer.java | 0 .../sun/org/apache/xpath/internal/compiler/ObjectFactory.java | 0 .../com/sun/org/apache/xpath/internal/compiler/OpCodes.java | 0 .../com/sun/org/apache/xpath/internal/compiler/OpMap.java | 0 .../com/sun/org/apache/xpath/internal/compiler/OpMapVector.java | 0 .../com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java | 0 .../sun/org/apache/xpath/internal/compiler/SecuritySupport.java | 0 .../org/apache/xpath/internal/compiler/SecuritySupport12.java | 0 .../com/sun/org/apache/xpath/internal/compiler/XPathDumper.java | 0 .../com/sun/org/apache/xpath/internal/compiler/XPathParser.java | 0 .../com/sun/org/apache/xpath/internal/compiler/package.html | 0 .../org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java | 0 .../org/apache/xpath/internal/domapi/XPathExpressionImpl.java | 0 .../org/apache/xpath/internal/domapi/XPathNSResolverImpl.java | 0 .../org/apache/xpath/internal/domapi/XPathNamespaceImpl.java | 0 .../sun/org/apache/xpath/internal/domapi/XPathResultImpl.java | 0 .../xpath/internal/domapi/XPathStylesheetDOM3Exception.java | 0 .../com/sun/org/apache/xpath/internal/domapi/package.html | 0 .../sun/org/apache/xpath/internal/functions/FuncBoolean.java | 0 .../sun/org/apache/xpath/internal/functions/FuncCeiling.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncConcat.java | 0 .../sun/org/apache/xpath/internal/functions/FuncContains.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncCount.java | 0 .../sun/org/apache/xpath/internal/functions/FuncCurrent.java | 0 .../org/apache/xpath/internal/functions/FuncDoclocation.java | 0 .../xpath/internal/functions/FuncExtElementAvailable.java | 0 .../org/apache/xpath/internal/functions/FuncExtFunction.java | 0 .../xpath/internal/functions/FuncExtFunctionAvailable.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncFalse.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncFloor.java | 0 .../sun/org/apache/xpath/internal/functions/FuncGenerateId.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncId.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncLang.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncLast.java | 0 .../sun/org/apache/xpath/internal/functions/FuncLocalPart.java | 0 .../sun/org/apache/xpath/internal/functions/FuncNamespace.java | 0 .../org/apache/xpath/internal/functions/FuncNormalizeSpace.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncNot.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncNumber.java | 0 .../sun/org/apache/xpath/internal/functions/FuncPosition.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncQname.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncRound.java | 0 .../sun/org/apache/xpath/internal/functions/FuncStartsWith.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncString.java | 0 .../org/apache/xpath/internal/functions/FuncStringLength.java | 0 .../sun/org/apache/xpath/internal/functions/FuncSubstring.java | 0 .../org/apache/xpath/internal/functions/FuncSubstringAfter.java | 0 .../apache/xpath/internal/functions/FuncSubstringBefore.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncSum.java | 0 .../org/apache/xpath/internal/functions/FuncSystemProperty.java | 0 .../sun/org/apache/xpath/internal/functions/FuncTranslate.java | 0 .../com/sun/org/apache/xpath/internal/functions/FuncTrue.java | 0 .../apache/xpath/internal/functions/FuncUnparsedEntityURI.java | 0 .../com/sun/org/apache/xpath/internal/functions/Function.java | 0 .../sun/org/apache/xpath/internal/functions/Function2Args.java | 0 .../sun/org/apache/xpath/internal/functions/Function3Args.java | 0 .../org/apache/xpath/internal/functions/FunctionDef1Arg.java | 0 .../org/apache/xpath/internal/functions/FunctionMultiArgs.java | 0 .../sun/org/apache/xpath/internal/functions/FunctionOneArg.java | 0 .../sun/org/apache/xpath/internal/functions/ObjectFactory.java | 0 .../org/apache/xpath/internal/functions/SecuritySupport.java | 0 .../org/apache/xpath/internal/functions/SecuritySupport12.java | 0 .../xpath/internal/functions/WrongNumberArgsException.java | 0 .../com/sun/org/apache/xpath/internal/functions/package.html | 0 .../org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java | 0 .../sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java | 0 .../sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java | 0 .../sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java | 0 .../sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java | 0 .../com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java | 0 .../sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java | 0 .../com/sun/org/apache/xpath/internal/objects/XBoolean.java | 0 .../sun/org/apache/xpath/internal/objects/XBooleanStatic.java | 0 .../org/apache/xpath/internal/objects/XMLStringFactoryImpl.java | 0 .../com/sun/org/apache/xpath/internal/objects/XNodeSet.java | 0 .../sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java | 0 .../com/sun/org/apache/xpath/internal/objects/XNull.java | 0 .../com/sun/org/apache/xpath/internal/objects/XNumber.java | 0 .../com/sun/org/apache/xpath/internal/objects/XObject.java | 0 .../sun/org/apache/xpath/internal/objects/XObjectFactory.java | 0 .../com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java | 0 .../apache/xpath/internal/objects/XRTreeFragSelectWrapper.java | 0 .../com/sun/org/apache/xpath/internal/objects/XString.java | 0 .../sun/org/apache/xpath/internal/objects/XStringForChars.java | 0 .../sun/org/apache/xpath/internal/objects/XStringForFSB.java | 0 .../com/sun/org/apache/xpath/internal/objects/package.html | 0 .../com/sun/org/apache/xpath/internal/operations/And.java | 0 .../com/sun/org/apache/xpath/internal/operations/Bool.java | 0 .../com/sun/org/apache/xpath/internal/operations/Div.java | 0 .../com/sun/org/apache/xpath/internal/operations/Equals.java | 0 .../com/sun/org/apache/xpath/internal/operations/Gt.java | 0 .../com/sun/org/apache/xpath/internal/operations/Gte.java | 0 .../com/sun/org/apache/xpath/internal/operations/Lt.java | 0 .../com/sun/org/apache/xpath/internal/operations/Lte.java | 0 .../com/sun/org/apache/xpath/internal/operations/Minus.java | 0 .../com/sun/org/apache/xpath/internal/operations/Mod.java | 0 .../com/sun/org/apache/xpath/internal/operations/Mult.java | 0 .../com/sun/org/apache/xpath/internal/operations/Neg.java | 0 .../com/sun/org/apache/xpath/internal/operations/NotEquals.java | 0 .../com/sun/org/apache/xpath/internal/operations/Number.java | 0 .../com/sun/org/apache/xpath/internal/operations/Operation.java | 0 .../com/sun/org/apache/xpath/internal/operations/Or.java | 0 .../com/sun/org/apache/xpath/internal/operations/Plus.java | 0 .../com/sun/org/apache/xpath/internal/operations/Quo.java | 0 .../com/sun/org/apache/xpath/internal/operations/String.java | 0 .../org/apache/xpath/internal/operations/UnaryOperation.java | 0 .../com/sun/org/apache/xpath/internal/operations/Variable.java | 0 .../apache/xpath/internal/operations/VariableSafeAbsRef.java | 0 .../com/sun/org/apache/xpath/internal/operations/package.html | 0 .../classes => }/com/sun/org/apache/xpath/internal/package.html | 0 .../apache/xpath/internal/patterns/ContextMatchStepPattern.java | 0 .../sun/org/apache/xpath/internal/patterns/FunctionPattern.java | 0 .../com/sun/org/apache/xpath/internal/patterns/NodeTest.java | 0 .../sun/org/apache/xpath/internal/patterns/NodeTestFilter.java | 0 .../com/sun/org/apache/xpath/internal/patterns/StepPattern.java | 0 .../sun/org/apache/xpath/internal/patterns/UnionPattern.java | 0 .../com/sun/org/apache/xpath/internal/patterns/package.html | 0 .../sun/org/apache/xpath/internal/res/XPATHErrorResources.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_de.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_en.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_es.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_fr.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_it.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_ja.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_ko.java | 0 .../apache/xpath/internal/res/XPATHErrorResources_pt_BR.java | 0 .../org/apache/xpath/internal/res/XPATHErrorResources_sv.java | 0 .../apache/xpath/internal/res/XPATHErrorResources_zh_CN.java | 0 .../apache/xpath/internal/res/XPATHErrorResources_zh_TW.java | 0 .../com/sun/org/apache/xpath/internal/res/XPATHMessages.java | 0 .../com/sun/org/apache/xpath/internal/res/package.html | 0 .../{share/classes => }/com/sun/xml/internal/stream/Entity.java | 0 .../com/sun/xml/internal/stream/EventFilterSupport.java | 0 .../com/sun/xml/internal/stream/StaxEntityResolverWrapper.java | 0 .../com/sun/xml/internal/stream/StaxErrorReporter.java | 0 .../com/sun/xml/internal/stream/StaxXMLInputSource.java | 0 .../com/sun/xml/internal/stream/XMLBufferListener.java | 0 .../com/sun/xml/internal/stream/XMLEntityReader.java | 0 .../com/sun/xml/internal/stream/XMLEntityStorage.java | 0 .../com/sun/xml/internal/stream/XMLEventReaderImpl.java | 0 .../com/sun/xml/internal/stream/XMLInputFactoryImpl.java | 0 .../com/sun/xml/internal/stream/XMLOutputFactoryImpl.java | 0 .../com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java | 0 .../sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java | 0 .../xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java | 0 .../xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java | 0 .../xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java | 0 .../xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java | 0 .../com/sun/xml/internal/stream/events/AttributeImpl.java | 0 .../com/sun/xml/internal/stream/events/CharacterEvent.java | 0 .../com/sun/xml/internal/stream/events/CommentEvent.java | 0 .../com/sun/xml/internal/stream/events/DTDEvent.java | 0 .../com/sun/xml/internal/stream/events/DummyEvent.java | 0 .../com/sun/xml/internal/stream/events/EndDocumentEvent.java | 0 .../com/sun/xml/internal/stream/events/EndElementEvent.java | 0 .../sun/xml/internal/stream/events/EntityDeclarationImpl.java | 0 .../sun/xml/internal/stream/events/EntityReferenceEvent.java | 0 .../com/sun/xml/internal/stream/events/LocationImpl.java | 0 .../com/sun/xml/internal/stream/events/NamedEvent.java | 0 .../com/sun/xml/internal/stream/events/NamespaceImpl.java | 0 .../sun/xml/internal/stream/events/NotationDeclarationImpl.java | 0 .../xml/internal/stream/events/ProcessingInstructionEvent.java | 0 .../com/sun/xml/internal/stream/events/StartDocumentEvent.java | 0 .../com/sun/xml/internal/stream/events/StartElementEvent.java | 0 .../sun/xml/internal/stream/events/XMLEventAllocatorImpl.java | 0 .../com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java | 0 .../sun/xml/internal/stream/javax.xml.stream.XMLEventFactory | 0 .../sun/xml/internal/stream/javax.xml.stream.XMLInputFactory | 0 .../sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory | 0 .../com/sun/xml/internal/stream/util/BufferAllocator.java | 0 .../com/sun/xml/internal/stream/util/ReadOnlyIterator.java | 0 .../xml/internal/stream/util/ThreadLocalBufferAllocator.java | 0 .../sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java | 0 .../com/sun/xml/internal/stream/writers/WriterUtility.java | 0 .../com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java | 0 .../com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java | 0 .../com/sun/xml/internal/stream/writers/XMLOutputSource.java | 0 .../sun/xml/internal/stream/writers/XMLStreamWriterImpl.java | 0 .../com/sun/xml/internal/stream/writers/XMLWriter.java | 0 jaxp/src/{share/classes => }/javax/xml/XMLConstants.java | 0 .../javax/xml/datatype/DatatypeConfigurationException.java | 0 .../classes => }/javax/xml/datatype/DatatypeConstants.java | 0 .../{share/classes => }/javax/xml/datatype/DatatypeFactory.java | 0 jaxp/src/{share/classes => }/javax/xml/datatype/Duration.java | 0 .../{share/classes => }/javax/xml/datatype/FactoryFinder.java | 0 .../{share/classes => }/javax/xml/datatype/SecuritySupport.java | 0 .../classes => }/javax/xml/datatype/XMLGregorianCalendar.java | 0 jaxp/src/{share/classes => }/javax/xml/datatype/package.html | 0 .../classes => }/javax/xml/namespace/NamespaceContext.java | 0 jaxp/src/{share/classes => }/javax/xml/namespace/QName.java | 0 jaxp/src/{share/classes => }/javax/xml/namespace/package.html | 0 .../{share/classes => }/javax/xml/parsers/DocumentBuilder.java | 0 .../classes => }/javax/xml/parsers/DocumentBuilderFactory.java | 0 .../javax/xml/parsers/FactoryConfigurationError.java | 0 .../{share/classes => }/javax/xml/parsers/FactoryFinder.java | 0 .../javax/xml/parsers/ParserConfigurationException.java | 0 jaxp/src/{share/classes => }/javax/xml/parsers/SAXParser.java | 0 .../{share/classes => }/javax/xml/parsers/SAXParserFactory.java | 0 .../{share/classes => }/javax/xml/parsers/SecuritySupport.java | 0 jaxp/src/{share/classes => }/javax/xml/parsers/package.html | 0 jaxp/src/{share/classes => }/javax/xml/stream/EventFilter.java | 0 .../javax/xml/stream/FactoryConfigurationError.java | 0 .../src/{share/classes => }/javax/xml/stream/FactoryFinder.java | 0 jaxp/src/{share/classes => }/javax/xml/stream/Location.java | 0 .../{share/classes => }/javax/xml/stream/SecuritySupport.java | 0 jaxp/src/{share/classes => }/javax/xml/stream/StreamFilter.java | 0 .../{share/classes => }/javax/xml/stream/XMLEventFactory.java | 0 .../{share/classes => }/javax/xml/stream/XMLEventReader.java | 0 .../{share/classes => }/javax/xml/stream/XMLEventWriter.java | 0 .../{share/classes => }/javax/xml/stream/XMLInputFactory.java | 0 .../{share/classes => }/javax/xml/stream/XMLOutputFactory.java | 0 jaxp/src/{share/classes => }/javax/xml/stream/XMLReporter.java | 0 jaxp/src/{share/classes => }/javax/xml/stream/XMLResolver.java | 0 .../classes => }/javax/xml/stream/XMLStreamConstants.java | 0 .../classes => }/javax/xml/stream/XMLStreamException.java | 0 .../{share/classes => }/javax/xml/stream/XMLStreamReader.java | 0 .../{share/classes => }/javax/xml/stream/XMLStreamWriter.java | 0 .../{share/classes => }/javax/xml/stream/events/Attribute.java | 0 .../{share/classes => }/javax/xml/stream/events/Characters.java | 0 .../{share/classes => }/javax/xml/stream/events/Comment.java | 0 jaxp/src/{share/classes => }/javax/xml/stream/events/DTD.java | 0 .../classes => }/javax/xml/stream/events/EndDocument.java | 0 .../{share/classes => }/javax/xml/stream/events/EndElement.java | 0 .../classes => }/javax/xml/stream/events/EntityDeclaration.java | 0 .../classes => }/javax/xml/stream/events/EntityReference.java | 0 .../{share/classes => }/javax/xml/stream/events/Namespace.java | 0 .../javax/xml/stream/events/NotationDeclaration.java | 0 .../javax/xml/stream/events/ProcessingInstruction.java | 0 .../classes => }/javax/xml/stream/events/StartDocument.java | 0 .../classes => }/javax/xml/stream/events/StartElement.java | 0 .../{share/classes => }/javax/xml/stream/events/XMLEvent.java | 0 .../classes => }/javax/xml/stream/util/EventReaderDelegate.java | 0 .../javax/xml/stream/util/StreamReaderDelegate.java | 0 .../classes => }/javax/xml/stream/util/XMLEventAllocator.java | 0 .../classes => }/javax/xml/stream/util/XMLEventConsumer.java | 0 .../{share/classes => }/javax/xml/transform/ErrorListener.java | 0 .../{share/classes => }/javax/xml/transform/FactoryFinder.java | 0 .../src/{share/classes => }/javax/xml/transform/OutputKeys.java | 0 jaxp/src/{share/classes => }/javax/xml/transform/Result.java | 0 .../classes => }/javax/xml/transform/SecuritySupport.java | 0 jaxp/src/{share/classes => }/javax/xml/transform/Source.java | 0 .../{share/classes => }/javax/xml/transform/SourceLocator.java | 0 jaxp/src/{share/classes => }/javax/xml/transform/Templates.java | 0 .../{share/classes => }/javax/xml/transform/Transformer.java | 0 .../javax/xml/transform/TransformerConfigurationException.java | 0 .../classes => }/javax/xml/transform/TransformerException.java | 0 .../classes => }/javax/xml/transform/TransformerFactory.java | 0 .../xml/transform/TransformerFactoryConfigurationError.java | 0 .../{share/classes => }/javax/xml/transform/URIResolver.java | 0 .../{share/classes => }/javax/xml/transform/dom/DOMLocator.java | 0 .../{share/classes => }/javax/xml/transform/dom/DOMResult.java | 0 .../{share/classes => }/javax/xml/transform/dom/DOMSource.java | 0 .../{share/classes => }/javax/xml/transform/dom/package.html | 0 jaxp/src/{share/classes => }/javax/xml/transform/overview.html | 0 jaxp/src/{share/classes => }/javax/xml/transform/package.html | 0 .../{share/classes => }/javax/xml/transform/sax/SAXResult.java | 0 .../{share/classes => }/javax/xml/transform/sax/SAXSource.java | 0 .../javax/xml/transform/sax/SAXTransformerFactory.java | 0 .../classes => }/javax/xml/transform/sax/TemplatesHandler.java | 0 .../javax/xml/transform/sax/TransformerHandler.java | 0 .../{share/classes => }/javax/xml/transform/sax/package.html | 0 .../classes => }/javax/xml/transform/stax/StAXResult.java | 0 .../classes => }/javax/xml/transform/stax/StAXSource.java | 0 .../{share/classes => }/javax/xml/transform/stax/package.html | 0 .../classes => }/javax/xml/transform/stream/StreamResult.java | 0 .../classes => }/javax/xml/transform/stream/StreamSource.java | 0 .../{share/classes => }/javax/xml/transform/stream/package.html | 0 jaxp/src/{share/classes => }/javax/xml/validation/Schema.java | 0 .../{share/classes => }/javax/xml/validation/SchemaFactory.java | 0 .../classes => }/javax/xml/validation/SchemaFactoryFinder.java | 0 .../classes => }/javax/xml/validation/SchemaFactoryLoader.java | 0 .../classes => }/javax/xml/validation/SecuritySupport.java | 0 .../classes => }/javax/xml/validation/TypeInfoProvider.java | 0 .../src/{share/classes => }/javax/xml/validation/Validator.java | 0 .../classes => }/javax/xml/validation/ValidatorHandler.java | 0 jaxp/src/{share/classes => }/javax/xml/validation/package.html | 0 .../{share/classes => }/javax/xml/xpath/SecuritySupport.java | 0 jaxp/src/{share/classes => }/javax/xml/xpath/XPath.java | 0 .../src/{share/classes => }/javax/xml/xpath/XPathConstants.java | 0 .../src/{share/classes => }/javax/xml/xpath/XPathException.java | 0 .../{share/classes => }/javax/xml/xpath/XPathExpression.java | 0 .../classes => }/javax/xml/xpath/XPathExpressionException.java | 0 jaxp/src/{share/classes => }/javax/xml/xpath/XPathFactory.java | 0 .../javax/xml/xpath/XPathFactoryConfigurationException.java | 0 .../{share/classes => }/javax/xml/xpath/XPathFactoryFinder.java | 0 jaxp/src/{share/classes => }/javax/xml/xpath/XPathFunction.java | 0 .../classes => }/javax/xml/xpath/XPathFunctionException.java | 0 .../classes => }/javax/xml/xpath/XPathFunctionResolver.java | 0 .../classes => }/javax/xml/xpath/XPathVariableResolver.java | 0 jaxp/src/{share/classes => }/javax/xml/xpath/package.html | 0 jaxp/src/{share/classes => }/org/w3c/dom/Attr.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/CDATASection.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/CharacterData.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Comment.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMConfiguration.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMError.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMErrorHandler.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMException.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMImplementation.java | 0 .../{share/classes => }/org/w3c/dom/DOMImplementationList.java | 0 .../classes => }/org/w3c/dom/DOMImplementationSource.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMLocator.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DOMStringList.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Document.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DocumentFragment.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/DocumentType.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Element.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Entity.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/EntityReference.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/NameList.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/NamedNodeMap.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Node.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/NodeList.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Notation.java | 0 .../{share/classes => }/org/w3c/dom/ProcessingInstruction.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/Text.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/TypeInfo.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/UserDataHandler.java | 0 .../org/w3c/dom/bootstrap/DOMImplementationRegistry.java | 0 .../src/{share/classes => }/org/w3c/dom/css/CSS2Properties.java | 0 .../src/{share/classes => }/org/w3c/dom/css/CSSCharsetRule.java | 0 .../{share/classes => }/org/w3c/dom/css/CSSFontFaceRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSImportRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSMediaRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSPageRule.java | 0 .../{share/classes => }/org/w3c/dom/css/CSSPrimitiveValue.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSRuleList.java | 0 .../classes => }/org/w3c/dom/css/CSSStyleDeclaration.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSStyleRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSStyleSheet.java | 0 .../src/{share/classes => }/org/w3c/dom/css/CSSUnknownRule.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSValue.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/CSSValueList.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/Counter.java | 0 .../classes => }/org/w3c/dom/css/DOMImplementationCSS.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/DocumentCSS.java | 0 .../classes => }/org/w3c/dom/css/ElementCSSInlineStyle.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/RGBColor.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/Rect.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/css/ViewCSS.java | 0 .../{share/classes => }/org/w3c/dom/events/DocumentEvent.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/events/Event.java | 0 .../{share/classes => }/org/w3c/dom/events/EventException.java | 0 .../{share/classes => }/org/w3c/dom/events/EventListener.java | 0 .../src/{share/classes => }/org/w3c/dom/events/EventTarget.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/events/MouseEvent.java | 0 .../{share/classes => }/org/w3c/dom/events/MutationEvent.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/events/UIEvent.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLAnchorElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLAppletElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLAreaElement.java | 0 .../src/{share/classes => }/org/w3c/dom/html/HTMLBRElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLBaseElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLBaseFontElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLBodyElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLButtonElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLCollection.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLDListElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLDOMImplementation.java | 0 .../classes => }/org/w3c/dom/html/HTMLDirectoryElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLDivElement.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDocument.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLFieldSetElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLFontElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLFormElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLFrameElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLFrameSetElement.java | 0 .../src/{share/classes => }/org/w3c/dom/html/HTMLHRElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLHeadElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLHeadingElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLHtmlElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLIFrameElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLImageElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLInputElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLIsIndexElement.java | 0 .../src/{share/classes => }/org/w3c/dom/html/HTMLLIElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLLabelElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLLegendElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLLinkElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLMapElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLMenuElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLMetaElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLModElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLOListElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLObjectElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLOptGroupElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLOptionElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLParagraphElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLParamElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLPreElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLQuoteElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLScriptElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLSelectElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLStyleElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTableCaptionElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTableCellElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTableColElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLTableElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTableRowElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTableSectionElement.java | 0 .../classes => }/org/w3c/dom/html/HTMLTextAreaElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLTitleElement.java | 0 .../{share/classes => }/org/w3c/dom/html/HTMLUListElement.java | 0 .../{share/classes => }/org/w3c/dom/ls/DOMImplementationLS.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSException.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSInput.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSLoadEvent.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSOutput.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSParser.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSParserFilter.java | 0 .../src/{share/classes => }/org/w3c/dom/ls/LSProgressEvent.java | 0 .../{share/classes => }/org/w3c/dom/ls/LSResourceResolver.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ls/LSSerializer.java | 0 .../{share/classes => }/org/w3c/dom/ls/LSSerializerFilter.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/package.html | 0 .../{share/classes => }/org/w3c/dom/ranges/DocumentRange.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ranges/Range.java | 0 .../{share/classes => }/org/w3c/dom/ranges/RangeException.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/ranges/package.html | 0 .../classes => }/org/w3c/dom/stylesheets/DocumentStyle.java | 0 .../{share/classes => }/org/w3c/dom/stylesheets/LinkStyle.java | 0 .../{share/classes => }/org/w3c/dom/stylesheets/MediaList.java | 0 .../{share/classes => }/org/w3c/dom/stylesheets/StyleSheet.java | 0 .../classes => }/org/w3c/dom/stylesheets/StyleSheetList.java | 0 .../classes => }/org/w3c/dom/traversal/DocumentTraversal.java | 0 .../{share/classes => }/org/w3c/dom/traversal/NodeFilter.java | 0 .../{share/classes => }/org/w3c/dom/traversal/NodeIterator.java | 0 .../{share/classes => }/org/w3c/dom/traversal/TreeWalker.java | 0 .../src/{share/classes => }/org/w3c/dom/views/AbstractView.java | 0 .../src/{share/classes => }/org/w3c/dom/views/DocumentView.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/xpath/COPYRIGHT.html | 0 .../{share/classes => }/org/w3c/dom/xpath/XPathEvaluator.java | 0 .../{share/classes => }/org/w3c/dom/xpath/XPathException.java | 0 .../{share/classes => }/org/w3c/dom/xpath/XPathExpression.java | 0 .../{share/classes => }/org/w3c/dom/xpath/XPathNSResolver.java | 0 .../{share/classes => }/org/w3c/dom/xpath/XPathNamespace.java | 0 jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathResult.java | 0 jaxp/src/{share/classes => }/org/xml/sax/AttributeList.java | 0 jaxp/src/{share/classes => }/org/xml/sax/Attributes.java | 0 jaxp/src/{share/classes => }/org/xml/sax/COPYING | 0 jaxp/src/{share/classes => }/org/xml/sax/COPYING.txt | 0 jaxp/src/{share/classes => }/org/xml/sax/ContentHandler.java | 0 jaxp/src/{share/classes => }/org/xml/sax/DTDHandler.java | 0 jaxp/src/{share/classes => }/org/xml/sax/DocumentHandler.java | 0 jaxp/src/{share/classes => }/org/xml/sax/EntityResolver.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ErrorHandler.java | 0 jaxp/src/{share/classes => }/org/xml/sax/HandlerBase.java | 0 jaxp/src/{share/classes => }/org/xml/sax/InputSource.java | 0 jaxp/src/{share/classes => }/org/xml/sax/Locator.java | 0 jaxp/src/{share/classes => }/org/xml/sax/Parser.java | 0 jaxp/src/{share/classes => }/org/xml/sax/SAXException.java | 0 .../classes => }/org/xml/sax/SAXNotRecognizedException.java | 0 .../classes => }/org/xml/sax/SAXNotSupportedException.java | 0 jaxp/src/{share/classes => }/org/xml/sax/SAXParseException.java | 0 jaxp/src/{share/classes => }/org/xml/sax/XMLFilter.java | 0 jaxp/src/{share/classes => }/org/xml/sax/XMLReader.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ext/Attributes2.java | 0 .../{share/classes => }/org/xml/sax/ext/Attributes2Impl.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ext/DeclHandler.java | 0 .../{share/classes => }/org/xml/sax/ext/DefaultHandler2.java | 0 .../{share/classes => }/org/xml/sax/ext/EntityResolver2.java | 0 .../src/{share/classes => }/org/xml/sax/ext/LexicalHandler.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ext/Locator2.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ext/Locator2Impl.java | 0 jaxp/src/{share/classes => }/org/xml/sax/ext/package.html | 0 .../classes => }/org/xml/sax/helpers/AttributeListImpl.java | 0 .../{share/classes => }/org/xml/sax/helpers/AttributesImpl.java | 0 .../{share/classes => }/org/xml/sax/helpers/DefaultHandler.java | 0 .../{share/classes => }/org/xml/sax/helpers/LocatorImpl.java | 0 .../classes => }/org/xml/sax/helpers/NamespaceSupport.java | 0 .../{share/classes => }/org/xml/sax/helpers/NewInstance.java | 0 .../{share/classes => }/org/xml/sax/helpers/ParserAdapter.java | 0 .../{share/classes => }/org/xml/sax/helpers/ParserFactory.java | 0 .../{share/classes => }/org/xml/sax/helpers/XMLFilterImpl.java | 0 .../classes => }/org/xml/sax/helpers/XMLReaderAdapter.java | 0 .../classes => }/org/xml/sax/helpers/XMLReaderFactory.java | 0 jaxp/src/{share/classes => }/org/xml/sax/helpers/package.html | 0 jaxp/src/{share/classes => }/org/xml/sax/package.html | 0 2084 files changed, 2 insertions(+), 2 deletions(-) rename jaxp/src/{share/classes => }/com/sun/java_cup/internal/runtime/Scanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/java_cup/internal/runtime/Symbol.java (100%) rename jaxp/src/{share/classes => }/com/sun/java_cup/internal/runtime/lr_parser.java (100%) rename jaxp/src/{share/classes => }/com/sun/java_cup/internal/runtime/virtual_parse_stack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/ExceptionConstants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/Repository.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Attribute.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ClassParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Code.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/CodeException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Constant.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantString.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Deprecated.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Field.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/InnerClass.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/JavaClass.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/LineNumber.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Method.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Node.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/PMGClass.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Signature.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/SourceFile.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/StackMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/StackMapType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Synthetic.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Unknown.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Utility.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/Visitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/classfile/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/AALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/AASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ARETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ATHROW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ArrayType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BIPUSH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BasicType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BranchHandle.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CPInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ClassGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ClassGenException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ClassObserver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/D2F.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/D2I.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/D2L.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DADD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DCMPG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DCMPL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DCONST.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DDIV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DLOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DMUL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DNEG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DREM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DRETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DSTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DSUB.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP_X1.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/DUP_X2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/F2D.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/F2I.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/F2L.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FADD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FCMPG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FCMPL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FCONST.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FDIV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FLOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FMUL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FNEG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FREM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FRETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FSTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FSUB.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FieldGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FieldObserver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/GETFIELD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/GOTO.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/GOTO_W.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2B.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2C.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2D.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2F.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2L.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/I2S.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IADD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IAND.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ICONST.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IDIV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFEQ.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFGE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFGT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFLE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFLT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFNE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IFNULL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IINC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ILOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IMUL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INEG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IOR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IREM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IRETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ISHL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ISHR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ISTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ISUB.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IUSHR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IXOR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IfInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/Instruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/JSR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/JSR_W.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/L2D.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/L2F.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/L2I.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LADD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LAND.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LCMP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LCONST.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LDC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LDC2_W.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LDC_W.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LDIV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LLOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LMUL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LNEG.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LOR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LREM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LRETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LSHL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LSHR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LSTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LSUB.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LUSHR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LXOR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LoadClass.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/MethodGen.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/MethodObserver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/NEW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/NOP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ObjectType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/POP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/POP2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/PUSH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/PopInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/PushInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/RET.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/RETURN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ReferenceType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/SALOAD.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/SASTORE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/SIPUSH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/SWAP.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/SWITCH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/Select.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/StackConsumer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/StackInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/StackProducer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/TargetLostException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/Type.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/Visitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/generic/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/AttributeHTML.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/BCELFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/BCELifier.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ByteSequence.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/Class2HTML.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassQueue.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassSet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ClassVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/CodeHTML.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/ConstantHTML.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/InstructionFinder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/JavaWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/MethodHTML.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/Repository.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/bcel/internal/util/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/CharacterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/RE.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/RECompiler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/REDebugCompiler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/REProgram.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/RESyntaxException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/RETest.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/REUtil.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/StringCharacterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/regexp/internal/recompile.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/Version.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/extensions/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltMath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltSets.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/Extensions.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/NodeInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/lib/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/res/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/templates/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/templates/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/Process.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xslt/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/DOM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/Translet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/TransletException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/AttrImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/AttributeMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ChildNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/CommentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ElementImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/EntityImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/LCount.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/NodeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/NodeListCache.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/NotationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ParentNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/RangeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/TextImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/PropertyManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/Version.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLScanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/DOMParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/DTDParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/SAXParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XMLParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/AttributesProxy.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DOMInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DOMUtil.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/EncodingMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/FeatureState.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/IntStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/LocatorProxy.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/MessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/PropertyState.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SAX2XNI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SAXInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SecurityManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/StAXInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/Status.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SymbolHash.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SymbolTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/URI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XML11Char.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLChar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/util/XMLSymbols.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/Augmentations.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/QName.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLLocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XMLString.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/XNIException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/LSInputList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/ShortList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/StringList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSConstants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSFacet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSImplementation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSModel.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSObject.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSObjectList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSParticle.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSTerm.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/XSWildcard.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xerces/internal/xs/datatypes/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/Axis.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/res/XMLMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/Catalog.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/CatalogException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/CatalogManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/Resolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/ElementState.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/Encodings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/LineSeparator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/Method.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/OutputFormat.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/Printer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/Serializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/TextSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/CharInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ElemContext.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ElemDesc.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Encodings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Encodings.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Method.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Serializer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializerBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToStream.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToTextStream.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/TreeWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Utils.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/Version.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/WriterChain.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/output_html.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/output_text.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/output_unknown.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/output_xml.properties (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/AttList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/Messages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/URI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/Utils.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/AttList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/BoolStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/CharKey.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/Constants.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/DOM2Helper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/DOMBuilder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/DOMHelper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/DOMOrder.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ElemDesc.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/IntStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/IntVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/LocaleUtility.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/NSInfo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/NameSpace.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/NodeConsumer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/NodeVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ObjectPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ObjectStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ObjectVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/PrefixResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/QName.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StopParseException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringBufferPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringComparable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringToIntTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringToStringTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StringVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/TreeWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/Trie.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/URI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/UnImplNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/WrongParserException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XML11Char.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLChar.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLString.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_en.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/Arg.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/CachedXPathAPI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/Expression.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/ExpressionNode.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/ExpressionOwner.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/ExtensionsProvider.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/FoundIndex.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/NodeSet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/NodeSetDTM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/SourceTree.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/SourceTreeManager.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/VariableStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPath.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathAPI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathContext.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathProcessorException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathVisitable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/XPathVisitor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/AxesWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/ChildIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/IteratorPool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/NodeSequence.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/PathComponent.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/RTFIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/SubContextList.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/axes/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/Compiler.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/Keywords.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/Lexer.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/OpCodes.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/OpMap.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/XPathParser.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/compiler/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/domapi/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncConcat.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncContains.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncCount.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncFalse.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncFloor.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncId.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncLang.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncLast.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncNot.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncNumber.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncPosition.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncQname.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncRound.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncString.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncSum.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncTrue.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/Function.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/Function2Args.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/Function3Args.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/functions/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XBoolean.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XNodeSet.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XNull.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XNumber.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XObject.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XString.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XStringForChars.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/objects/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/And.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Bool.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Div.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Equals.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Gt.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Gte.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Lt.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Lte.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Minus.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Mod.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Mult.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Neg.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/NotEquals.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Number.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Operation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Or.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Plus.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Quo.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/String.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/Variable.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/operations/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/NodeTest.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/StepPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/patterns/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/XPATHMessages.java (100%) rename jaxp/src/{share/classes => }/com/sun/org/apache/xpath/internal/res/package.html (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/Entity.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/EventFilterSupport.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/StaxErrorReporter.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/StaxXMLInputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLBufferListener.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLEntityReader.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLEntityStorage.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLEventReaderImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLInputFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/AttributeImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/CharacterEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/CommentEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/DTDEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/DummyEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/EndDocumentEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/EndElementEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/EntityReferenceEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/LocationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/NamedEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/NamespaceImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/StartDocumentEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/StartElementEvent.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/util/BufferAllocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/util/ReadOnlyIterator.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/WriterUtility.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/XMLOutputSource.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java (100%) rename jaxp/src/{share/classes => }/com/sun/xml/internal/stream/writers/XMLWriter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/XMLConstants.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/DatatypeConfigurationException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/DatatypeConstants.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/DatatypeFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/Duration.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/FactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/XMLGregorianCalendar.java (100%) rename jaxp/src/{share/classes => }/javax/xml/datatype/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/namespace/NamespaceContext.java (100%) rename jaxp/src/{share/classes => }/javax/xml/namespace/QName.java (100%) rename jaxp/src/{share/classes => }/javax/xml/namespace/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/DocumentBuilder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/DocumentBuilderFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/FactoryConfigurationError.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/FactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/ParserConfigurationException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/SAXParser.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/SAXParserFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/parsers/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/EventFilter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/FactoryConfigurationError.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/FactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/Location.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/StreamFilter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLEventFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLEventReader.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLEventWriter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLInputFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLOutputFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLReporter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLResolver.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLStreamConstants.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLStreamException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLStreamReader.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/XMLStreamWriter.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/Attribute.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/Characters.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/Comment.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/DTD.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/EndDocument.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/EndElement.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/EntityDeclaration.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/EntityReference.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/Namespace.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/NotationDeclaration.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/ProcessingInstruction.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/StartDocument.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/StartElement.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/events/XMLEvent.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/util/EventReaderDelegate.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/util/StreamReaderDelegate.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/util/XMLEventAllocator.java (100%) rename jaxp/src/{share/classes => }/javax/xml/stream/util/XMLEventConsumer.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/ErrorListener.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/FactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/OutputKeys.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/Result.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/Source.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/SourceLocator.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/Templates.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/Transformer.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/TransformerConfigurationException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/TransformerException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/TransformerFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/TransformerFactoryConfigurationError.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/URIResolver.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/dom/DOMLocator.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/dom/DOMResult.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/dom/DOMSource.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/dom/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/overview.html (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/SAXResult.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/SAXSource.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/SAXTransformerFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/TemplatesHandler.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/TransformerHandler.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/sax/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stax/StAXResult.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stax/StAXSource.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stax/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stream/StreamResult.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stream/StreamSource.java (100%) rename jaxp/src/{share/classes => }/javax/xml/transform/stream/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/Schema.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/SchemaFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/SchemaFactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/SchemaFactoryLoader.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/TypeInfoProvider.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/Validator.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/ValidatorHandler.java (100%) rename jaxp/src/{share/classes => }/javax/xml/validation/package.html (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/SecuritySupport.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPath.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathConstants.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathExpression.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathExpressionException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFactory.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFactoryConfigurationException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFactoryFinder.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFunction.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFunctionException.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathFunctionResolver.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/XPathVariableResolver.java (100%) rename jaxp/src/{share/classes => }/javax/xml/xpath/package.html (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Attr.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/CDATASection.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/CharacterData.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Comment.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMConfiguration.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMError.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMErrorHandler.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMException.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMImplementation.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMImplementationList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMImplementationSource.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMLocator.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DOMStringList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Document.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DocumentFragment.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/DocumentType.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Element.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Entity.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/EntityReference.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/NameList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/NamedNodeMap.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Node.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/NodeList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Notation.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ProcessingInstruction.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/Text.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/TypeInfo.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/UserDataHandler.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/bootstrap/DOMImplementationRegistry.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSS2Properties.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSCharsetRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSFontFaceRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSImportRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSMediaRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSPageRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSPrimitiveValue.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSRuleList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSStyleDeclaration.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSStyleRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSStyleSheet.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSUnknownRule.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSValue.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/CSSValueList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/Counter.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/DOMImplementationCSS.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/DocumentCSS.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/ElementCSSInlineStyle.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/RGBColor.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/Rect.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/css/ViewCSS.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/DocumentEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/Event.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/EventException.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/EventListener.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/EventTarget.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/MouseEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/MutationEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/events/UIEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLAnchorElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLAppletElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLAreaElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLBRElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLBaseElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLBaseFontElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLBodyElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLButtonElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLCollection.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDListElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDOMImplementation.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDirectoryElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDivElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLDocument.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLFieldSetElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLFontElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLFormElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLFrameElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLFrameSetElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLHRElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLHeadElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLHeadingElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLHtmlElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLIFrameElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLImageElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLInputElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLIsIndexElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLLIElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLLabelElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLLegendElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLLinkElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLMapElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLMenuElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLMetaElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLModElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLOListElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLObjectElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLOptGroupElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLOptionElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLParagraphElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLParamElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLPreElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLQuoteElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLScriptElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLSelectElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLStyleElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableCaptionElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableCellElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableColElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableRowElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTableSectionElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTextAreaElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLTitleElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/html/HTMLUListElement.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/DOMImplementationLS.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSException.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSInput.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSLoadEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSOutput.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSParser.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSParserFilter.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSProgressEvent.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSResourceResolver.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSSerializer.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ls/LSSerializerFilter.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/package.html (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ranges/DocumentRange.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ranges/Range.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ranges/RangeException.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/ranges/package.html (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/stylesheets/DocumentStyle.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/stylesheets/LinkStyle.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/stylesheets/MediaList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/stylesheets/StyleSheet.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/stylesheets/StyleSheetList.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/traversal/DocumentTraversal.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/traversal/NodeFilter.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/traversal/NodeIterator.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/traversal/TreeWalker.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/views/AbstractView.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/views/DocumentView.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/COPYRIGHT.html (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathEvaluator.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathException.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathExpression.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathNSResolver.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathNamespace.java (100%) rename jaxp/src/{share/classes => }/org/w3c/dom/xpath/XPathResult.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/AttributeList.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/Attributes.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/COPYING (100%) rename jaxp/src/{share/classes => }/org/xml/sax/COPYING.txt (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ContentHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/DTDHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/DocumentHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/EntityResolver.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ErrorHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/HandlerBase.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/InputSource.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/Locator.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/Parser.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/SAXException.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/SAXNotRecognizedException.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/SAXNotSupportedException.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/SAXParseException.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/XMLFilter.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/XMLReader.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/Attributes2.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/Attributes2Impl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/DeclHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/DefaultHandler2.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/EntityResolver2.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/LexicalHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/Locator2.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/Locator2Impl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/ext/package.html (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/AttributeListImpl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/AttributesImpl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/DefaultHandler.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/LocatorImpl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/NamespaceSupport.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/NewInstance.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/ParserAdapter.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/ParserFactory.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/XMLFilterImpl.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/XMLReaderAdapter.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/XMLReaderFactory.java (100%) rename jaxp/src/{share/classes => }/org/xml/sax/helpers/package.html (100%) rename jaxp/src/{share/classes => }/org/xml/sax/package.html (100%) diff --git a/jaxp/build.xml b/jaxp/build.xml index 437ad0f74df..8e03380839b 100644 --- a/jaxp/build.xml +++ b/jaxp/build.xml @@ -44,7 +44,7 @@ - + diff --git a/jaxp/make/scripts/update_src.sh b/jaxp/make/scripts/update_src.sh index b1ff207b94c..edd43153f08 100644 --- a/jaxp/make/scripts/update_src.sh +++ b/jaxp/make/scripts/update_src.sh @@ -40,7 +40,7 @@ mkdir -p ${srcroot} drops_dir="/java/devtools/share/jdk8-drops" url1="http://download.java.net/jaxp/1.4.5" bundle1="jaxp145_01.zip" -srcdir1="${srcroot}/share/classes" +srcdir1="${srcroot}" # Function to get a bundle and explode it and normalize the source files. getBundle() # drops_dir url bundlename bundledestdir srcrootdir diff --git a/jaxp/src/share/classes/com/sun/java_cup/internal/runtime/Scanner.java b/jaxp/src/com/sun/java_cup/internal/runtime/Scanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/java_cup/internal/runtime/Scanner.java rename to jaxp/src/com/sun/java_cup/internal/runtime/Scanner.java diff --git a/jaxp/src/share/classes/com/sun/java_cup/internal/runtime/Symbol.java b/jaxp/src/com/sun/java_cup/internal/runtime/Symbol.java similarity index 100% rename from jaxp/src/share/classes/com/sun/java_cup/internal/runtime/Symbol.java rename to jaxp/src/com/sun/java_cup/internal/runtime/Symbol.java diff --git a/jaxp/src/share/classes/com/sun/java_cup/internal/runtime/lr_parser.java b/jaxp/src/com/sun/java_cup/internal/runtime/lr_parser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/java_cup/internal/runtime/lr_parser.java rename to jaxp/src/com/sun/java_cup/internal/runtime/lr_parser.java diff --git a/jaxp/src/share/classes/com/sun/java_cup/internal/runtime/virtual_parse_stack.java b/jaxp/src/com/sun/java_cup/internal/runtime/virtual_parse_stack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/java_cup/internal/runtime/virtual_parse_stack.java rename to jaxp/src/com/sun/java_cup/internal/runtime/virtual_parse_stack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/Constants.java b/jaxp/src/com/sun/org/apache/bcel/internal/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/Constants.java rename to jaxp/src/com/sun/org/apache/bcel/internal/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/ExceptionConstants.java b/jaxp/src/com/sun/org/apache/bcel/internal/ExceptionConstants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/ExceptionConstants.java rename to jaxp/src/com/sun/org/apache/bcel/internal/ExceptionConstants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/Repository.java b/jaxp/src/com/sun/org/apache/bcel/internal/Repository.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/Repository.java rename to jaxp/src/com/sun/org/apache/bcel/internal/Repository.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Attribute.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Attribute.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ClassParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ClassParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Code.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Code.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/CodeException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/CodeException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Constant.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Constant.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantString.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantString.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Deprecated.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Deprecated.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Field.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Field.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/InnerClass.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/InnerClass.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/LineNumber.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/LineNumber.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Method.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Method.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Node.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Node.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/PMGClass.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/PMGClass.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Signature.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Signature.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/SourceFile.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/SourceFile.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMapType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/StackMapType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Synthetic.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Synthetic.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Unknown.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Unknown.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Utility.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Utility.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/Visitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/Visitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/package.html b/jaxp/src/com/sun/org/apache/bcel/internal/classfile/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/classfile/package.html rename to jaxp/src/com/sun/org/apache/bcel/internal/classfile/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/AALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/AALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/AASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/AASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ARETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ARETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ATHROW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ATHROW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ArrayType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ArrayType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BIPUSH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BIPUSH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BasicType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BasicType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BranchHandle.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BranchHandle.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassGenException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassGenException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassObserver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ClassObserver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/D2F.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/D2F.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/D2I.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/D2I.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/D2L.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/D2L.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DADD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DADD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DCMPG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DCMPG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DCMPL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DCMPL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DCONST.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DCONST.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DDIV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DDIV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DLOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DLOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DMUL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DMUL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DNEG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DNEG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DREM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DREM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DRETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DRETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DSTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DSTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DSUB.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DSUB.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP_X1.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP_X1.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP_X2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/DUP_X2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/F2D.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/F2D.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/F2I.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/F2I.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/F2L.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/F2L.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FADD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FADD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FCMPG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FCMPG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FCMPL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FCMPL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FCONST.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FCONST.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FDIV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FDIV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FLOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FLOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FMUL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FMUL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FNEG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FNEG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FREM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FREM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FRETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FRETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FSTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FSTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FSUB.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FSUB.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldObserver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldObserver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/GETFIELD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/GETFIELD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/GOTO.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/GOTO.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/GOTO_W.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/GOTO_W.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2B.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2B.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2C.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2C.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2D.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2D.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2F.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2F.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2L.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2L.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/I2S.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/I2S.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IADD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IADD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IAND.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IAND.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ICONST.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ICONST.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IDIV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IDIV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFEQ.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFEQ.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFGE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFGE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFGT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFGT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFLE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFLE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFLT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFLT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNULL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IFNULL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IINC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IINC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ILOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ILOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IMUL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IMUL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INEG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INEG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IOR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IOR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IREM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IREM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IRETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IRETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ISHL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ISHL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ISHR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ISHR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ISTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ISTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ISUB.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ISUB.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IUSHR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IUSHR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IXOR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IXOR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IfInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IfInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/Instruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/Instruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/JSR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/JSR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/JSR_W.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/JSR_W.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/L2D.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/L2D.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/L2F.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/L2F.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/L2I.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/L2I.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LADD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LADD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LAND.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LAND.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LCMP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LCMP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LCONST.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LCONST.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC2_W.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC2_W.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC_W.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LDC_W.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LDIV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LDIV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LLOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LLOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LMUL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LMUL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LNEG.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LNEG.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LOR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LOR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LREM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LREM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LRETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LRETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LSHL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LSHL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LSHR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LSHR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LSTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LSTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LSUB.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LSUB.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LUSHR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LUSHR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LXOR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LXOR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LoadClass.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LoadClass.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodObserver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodObserver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/NEW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/NEW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/NOP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/NOP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ObjectType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ObjectType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/POP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/POP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/POP2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/POP2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/PUSH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/PUSH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/PopInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/PopInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/PushInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/PushInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/RET.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/RET.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/RETURN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/RETURN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ReferenceType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ReferenceType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/SALOAD.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/SALOAD.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/SASTORE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/SASTORE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/SIPUSH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/SIPUSH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/SWAP.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/SWAP.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/SWITCH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/SWITCH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/Select.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/Select.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/StackConsumer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/StackConsumer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/StackInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/StackInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/StackProducer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/StackProducer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/TargetLostException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/TargetLostException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/Type.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/Type.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java b/jaxp/src/com/sun/org/apache/bcel/internal/generic/Visitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/Visitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/package.html b/jaxp/src/com/sun/org/apache/bcel/internal/generic/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/generic/package.html rename to jaxp/src/com/sun/org/apache/bcel/internal/generic/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/package.html b/jaxp/src/com/sun/org/apache/bcel/internal/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/package.html rename to jaxp/src/com/sun/org/apache/bcel/internal/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/AttributeHTML.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/AttributeHTML.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/BCELFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/BCELFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/BCELifier.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/BCELifier.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ByteSequence.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ByteSequence.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoader.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoader.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassPath.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassPath.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassQueue.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassQueue.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassSet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassSet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassVector.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ClassVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ClassVector.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ClassVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/CodeHTML.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/CodeHTML.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/ConstantHTML.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/ConstantHTML.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/InstructionFinder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/InstructionFinder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/JavaWrapper.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/JavaWrapper.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/MethodHTML.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/MethodHTML.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/Repository.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/Repository.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java b/jaxp/src/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java rename to jaxp/src/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/package.html b/jaxp/src/com/sun/org/apache/bcel/internal/util/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/bcel/internal/util/package.html rename to jaxp/src/com/sun/org/apache/bcel/internal/util/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java b/jaxp/src/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java rename to jaxp/src/com/sun/org/apache/regexp/internal/CharacterArrayCharacterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/CharacterIterator.java b/jaxp/src/com/sun/org/apache/regexp/internal/CharacterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/CharacterIterator.java rename to jaxp/src/com/sun/org/apache/regexp/internal/CharacterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RE.java b/jaxp/src/com/sun/org/apache/regexp/internal/RE.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RE.java rename to jaxp/src/com/sun/org/apache/regexp/internal/RE.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RECompiler.java b/jaxp/src/com/sun/org/apache/regexp/internal/RECompiler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RECompiler.java rename to jaxp/src/com/sun/org/apache/regexp/internal/RECompiler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REDebugCompiler.java b/jaxp/src/com/sun/org/apache/regexp/internal/REDebugCompiler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REDebugCompiler.java rename to jaxp/src/com/sun/org/apache/regexp/internal/REDebugCompiler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REProgram.java b/jaxp/src/com/sun/org/apache/regexp/internal/REProgram.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REProgram.java rename to jaxp/src/com/sun/org/apache/regexp/internal/REProgram.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RESyntaxException.java b/jaxp/src/com/sun/org/apache/regexp/internal/RESyntaxException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RESyntaxException.java rename to jaxp/src/com/sun/org/apache/regexp/internal/RESyntaxException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RETest.java b/jaxp/src/com/sun/org/apache/regexp/internal/RETest.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/RETest.java rename to jaxp/src/com/sun/org/apache/regexp/internal/RETest.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REUtil.java b/jaxp/src/com/sun/org/apache/regexp/internal/REUtil.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/REUtil.java rename to jaxp/src/com/sun/org/apache/regexp/internal/REUtil.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java b/jaxp/src/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java rename to jaxp/src/com/sun/org/apache/regexp/internal/ReaderCharacterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java b/jaxp/src/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java rename to jaxp/src/com/sun/org/apache/regexp/internal/StreamCharacterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/StringCharacterIterator.java b/jaxp/src/com/sun/org/apache/regexp/internal/StringCharacterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/StringCharacterIterator.java rename to jaxp/src/com/sun/org/apache/regexp/internal/StringCharacterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/regexp/internal/recompile.java b/jaxp/src/com/sun/org/apache/regexp/internal/recompile.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/regexp/internal/recompile.java rename to jaxp/src/com/sun/org/apache/regexp/internal/recompile.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory b/jaxp/src/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory rename to jaxp/src/com/sun/org/apache/xalan/META-INF/services/javax.xml.transform.TransformerFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory b/jaxp/src/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory rename to jaxp/src/com/sun/org/apache/xalan/META-INF/services/javax.xml.xpath.XPathFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager b/jaxp/src/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager rename to jaxp/src/com/sun/org/apache/xalan/META-INF/services/org.apache.xml.dtm.DTMManager diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/Version.java b/jaxp/src/com/sun/org/apache/xalan/internal/Version.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/Version.java rename to jaxp/src/com/sun/org/apache/xalan/internal/Version.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java b/jaxp/src/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java rename to jaxp/src/com/sun/org/apache/xalan/internal/extensions/ExpressionContext.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/extensions/package.html b/jaxp/src/com/sun/org/apache/xalan/internal/extensions/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/extensions/package.html rename to jaxp/src/com/sun/org/apache/xalan/internal/extensions/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltCommon.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltMath.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltMath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltSets.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltSets.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/Extensions.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/Extensions.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/NodeInfo.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/NodeInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/NodeInfo.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/NodeInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/package.html b/jaxp/src/com/sun/org/apache/xalan/internal/lib/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/lib/package.html rename to jaxp/src/com/sun/org/apache/xalan/internal/lib/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLMessages.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLMessages.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_en.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties b/jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties rename to jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTInfo.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/package.html b/jaxp/src/com/sun/org/apache/xalan/internal/res/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/res/package.html rename to jaxp/src/com/sun/org/apache/xalan/internal/res/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/templates/Constants.java b/jaxp/src/com/sun/org/apache/xalan/internal/templates/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/templates/Constants.java rename to jaxp/src/com/sun/org/apache/xalan/internal/templates/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/templates/package.html b/jaxp/src/com/sun/org/apache/xalan/internal/templates/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/templates/package.html rename to jaxp/src/com/sun/org/apache/xalan/internal/templates/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/Process.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/Process.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/package.html b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xslt/package.html rename to jaxp/src/com/sun/org/apache/xalan/internal/xslt/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/CollatorFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOM.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOM.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOMCache.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/DOMEnhancedForDTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/NodeIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/ProcessorVersion.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/StripFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/Translet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/Translet.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/TransletException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/TransletException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/TransletException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/TransletException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOpt.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/GetOptsException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/IllegalArgumentException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt/MissingOptArgException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AlternativePattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AncestorPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyImports.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ApplyTemplates.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ArgumentList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Attribute.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValue.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeValueTemplate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BinOpExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/BooleanExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CallTemplate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CastExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CeilingCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Choose.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Closure.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Comment.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CompilerException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ConcatCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ContainsCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CopyOf.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/CurrentCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/DecimalFormatting.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/DocumentCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ElementAvailableCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/EqualityExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Expression.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Fallback.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FloorCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FlowList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ForEach.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FormatNumberCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/GenerateIdCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IdKeyPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IdPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/If.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IllegalCharException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Instruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/IntExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/KeyPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LangCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LastCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralAttribute.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralElement.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LiteralExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LocalNameCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LocationPathPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/LogicalExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Makefile.inc diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NameBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NameCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceAlias.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NamespaceUriCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NodeTest.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NotCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/NumberCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Otherwise.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Output.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Param.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Pattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/PositionCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstructionPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/QName.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RealExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelationalExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativeLocationPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RelativePathPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/RoundCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SimpleAttributeValue.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StartsWithCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Template.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Text.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TopLevelElement.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnaryOpExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnionPathExpr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnparsedEntityUriCall.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnresolvedRef.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UnsupportedElement.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/UseAttributeSets.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ValueOf.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRefBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/When.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/WithParam.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathLexer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/AttributeSetMethodGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/BooleanType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/CompareGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/FilterGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/IntType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MatchGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MultiHashtable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NamedMethodGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeCounterGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSetType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordFactGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeSortRecordGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NodeType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/NumberType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ReferenceType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RtMethodGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SlotAllocator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/StringType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TestGenerator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Type.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/TypeCheckError.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/VoidType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.cup diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/xpath.lex diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AbsoluteIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AdaptiveResultTreeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/AnyNodeCounter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/BitArray.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CachedNodeListIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ClonedNodeListIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CollatorFactoryBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/CurrentNodeListIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMAdapter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMBuilder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DOMWSFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DocumentCache.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/EmptyFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ExtendedSAX.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/Filter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/FilterIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/FilteredStepIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ForwardPositionIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/KeyIndex.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/LoadDocument.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MatchingIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultiValuedNodeHeapIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/MultipleNodeCounter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeCounter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeIteratorBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NthIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SAXImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SimpleResultTreeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SingleNodeCounter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SingletonIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SortSettings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SortingIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/StepIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/StripWhitespaceFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/UnionIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/javax.xml.transform.TransformerFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Attributes.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/MessageHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Node.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Operators.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Parameter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/StringValueHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/OutputBuffer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/StringOutputBuffer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2SAX.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/DOM2TO.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/OutputSettings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXStreamWriter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/StAXEvent2SAX.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/StAXStream2SAX.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerHandlerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/XSLTCSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java rename to jaxp/src/com/sun/org/apache/xalan/internal/xsltc/util/IntegerArray.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/AttrImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/AttrImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/AttrNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttributeMap.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/AttributeMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/AttributeMap.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/AttributeMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/CDATASectionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/CharacterDataImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ChildNode.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ChildNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ChildNode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ChildNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CommentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CommentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CommentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/CommentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMErrorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMImplementationSourceImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMInputImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMLocatorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMNormalizer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMOutputImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMStringListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMXSImplementationSourceImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeepNodeListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredAttrImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredAttrNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredCDATASectionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredCommentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDOMImplementationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredDocumentTypeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementDefinitionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredElementNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredEntityImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredEntityReferenceImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNode.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredNotationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredProcessingInstructionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DeferredTextImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/DocumentTypeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementDefinitionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ElementNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/EntityImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/EntityImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/EntityReferenceImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/LCount.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/LCount.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/LCount.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeIteratorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeListCache.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeListCache.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NodeListCache.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/NodeListCache.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NotationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/NotationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/NotationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/NotationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIAttrNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIDOMImplementationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIDocumentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/PSVIElementNSImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ParentNode.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ParentNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ParentNode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ParentNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/ProcessingInstructionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/RangeExceptionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/RangeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/RangeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/RangeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/TextImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/TextImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/TextImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/TextImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/TreeWalkerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/events/EventImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/events/MutationEventImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl b/jaxp/src/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/org.apache.xerces.dom.DOMImplementationSourceImpl diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList b/jaxp/src/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList rename to jaxp/src/com/sun/org/apache/xerces/internal/dom/org.w3c.dom.DOMImplementationSourceList diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/PropertyManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/PropertyManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/RevalidationHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/Version.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/Version.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/Version.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/Version.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11DTDScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NamespaceBinder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLErrorReporter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNamespaceBinder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamFilterImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLVersionDetector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/BalancedDTDGrammar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDProcessor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11DTDValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XML11NSDTDValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLNSDTDValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLNotationDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMAny.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMBinOp.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMLeaf.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/CMUniOp.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dtd/models/SimpleContentModel.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DVFactoryException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeFacetException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/InvalidDatatypeValueException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ValidatedInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ValidationContext.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/XSFacets.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/XSSimpleType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/DTDDVFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11DTDDVFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11IDREFDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/dtd/XML11NMTOKENDatatypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/ByteListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/util/HexBin.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AbstractDateTimeDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyAtomicDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnySimpleDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/AnyURIDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseDVFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BaseSchemaDVFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/BooleanDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DateDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DateTimeDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DayDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DayTimeDurationDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DecimalDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DoubleDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/DurationDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/EntityDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/ExtendedSchemaDVFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/FloatDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/FullDVFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/HexBinaryDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IDDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IDREFDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/IntegerDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/ListDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/MonthDayDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/PrecisionDecimalDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/QNameDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDVFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/SchemaDateTimeException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/StringDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/TimeDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/TypeValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/UnionDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/XSSimpleTypeDelegate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/xs/YearMonthDurationDV.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/io/ASCIIReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/io/MalformedByteSequenceException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/io/UCSReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/io/UTF8Reader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DOMMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/DatatypeMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/JAXPValidationMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/SAXMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_de.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_es.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_it.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_ko.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_pt_BR.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_CN.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_zh_TW.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/EntityState.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/ValidationManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/validation/ValidationState.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPathException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/BMPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/CaseInsensitiveMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Match.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Op.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParseException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/REUtil.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RangeToken.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegularExpression.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/AttributePSVImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/ElementPSVImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaGrammar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaNamespaceSupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SchemaSymbols.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/SubstitutionGroupHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAnnotationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeGroupDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSAttributeUseImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSConstraints.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSDDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSDeclarationPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSElementDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSGrammarBucket.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSGroupDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSImplementationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSLoaderImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSModelGroupImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSModelImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSNotationDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSParticleDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSWildcardDecl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/FieldActivator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/IdentityConstraint.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/KeyRef.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Selector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/UniqueOrKey.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/ValueStore.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/XPathMatcher.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMBuilder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSAllCM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMBinOp.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMLeaf.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMRepeatingLeaf.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMUniOp.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSCMValidator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/XSEmptyCM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/AttrImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultDocument.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultElement.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultText.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/DefaultXMLDocumentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/ElementImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/NamedNodeMapImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/NodeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMImplementation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaDOMParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/opti/TextImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/StAXSchemaParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAnnotationInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractIDConstraintTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractParticleTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAbstractTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeGroupTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDAttributeTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDComplexTypeTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDElementTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDGroupTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDKeyrefTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDNotationTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDSimpleTypeTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDUniqueOrKeyTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDWildcardTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDocumentInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/LSInputListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/ObjectListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/ShortListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/SimpleLocator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/StringListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XInt.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XIntPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSGrammarPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMap4Types.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSNamedMapImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/util/XSObjectListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/JAXPConstants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SchemaValidatorConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/TeeXMLDocumentFilterImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/UnparsedEntityHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DatatypeFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationDayTimeImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationYearMonthImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/javax.xml.datatype.DatatypeFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.DocumentBuilderFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/javax.xml.parsers.SAXParserFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMDocumentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultAugmentor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMResultBuilder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DraconianErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/EmptyXMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ErrorHandlerAdaptor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ReadOnlyGrammarPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/SimpleXMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/SoftReferenceGrammarPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/Util.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHelper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XSGrammarPoolContainer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory rename to jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/javax.xml.validation.SchemaFactory diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractXMLDocumentParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/CachingParserPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/DTDParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/IntegratedParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SAXParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SAXParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/StandardParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XIncludeAwareParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XIncludeParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configurable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarCachingConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLParser.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/XPointerParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.DTDConfiguration diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XML11Configuration diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver rename to jaxp/src/com/sun/org/apache/xerces/internal/parsers/org.xml.sax.driver diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/AttributesProxy.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/AttributesProxy.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/AttributesProxy.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/AttributesProxy.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DOMErrorHandlerWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DOMInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMUtil.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DOMUtil.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DOMUtil.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DOMUtil.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DefaultErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/DraconianErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EncodingMap.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EncodingMap.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/EncodingMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/EntityResolverWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/ErrorHandlerProxy.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/FeatureState.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/FeatureState.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/FeatureState.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/FeatureState.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/HTTPInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/IntStack.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/IntStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/IntStack.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/IntStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorProxy.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/LocatorProxy.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorProxy.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/LocatorProxy.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/LocatorWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/MessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/MessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/MessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/MessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/NamespaceContextWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/PropertyState.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/PropertyState.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/PropertyState.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/PropertyState.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAX2XNI.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SAX2XNI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAX2XNI.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SAX2XNI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SAXInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SAXInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SAXLocatorWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SecurityManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SecurityManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/ShadowedSymbolTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/StAXInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/StAXInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/StAXInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/StAXInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/StAXLocationWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/Status.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/Status.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/Status.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/Status.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolHash.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolHash.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolTable.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SymbolTable.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/SynchronizedSymbolTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/TeeXMLDocumentFilterImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/TypeInfoImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/URI.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/URI.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XML11Char.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XML11Char.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XML11Char.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XML11Char.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLAttributesImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLAttributesIteratorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLChar.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLChar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLChar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLChar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLDocumentFilterImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLEntityDescriptionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLErrorCode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLGrammarPoolImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLInputSourceAdaptor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLStringBuffer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLSymbols.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/XMLSymbols.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/util/XMLSymbols.java rename to jaxp/src/com/sun/org/apache/xerces/internal/util/XMLSymbols.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XInclude11TextReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeNamespaceSupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerElementHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerFramework.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XPointerSchema.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/Augmentations.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/Augmentations.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/QName.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/QName.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/QName.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/QName.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLAttributes.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDTDHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDocumentFragmentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLLocator.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLLocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLLocator.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLLocator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLString.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLString.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XMLString.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XMLString.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XNIException.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/XNIException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/XNIException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/XNIException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/Grammar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XMLSchemaDescription.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/grammars/XSGrammar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLComponent.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLConfigurationException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLParseException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java b/jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/ElementSchemePointer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/ShortHandPointer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerPart.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java b/jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerProcessor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/AttributePSVI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/ElementPSVI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/ItemPSVI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/LSInputList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/LSInputList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/PSVIProvider.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/ShortList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/ShortList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/StringList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/StringList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAnnotation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeDeclaration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeGroupDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSAttributeUse.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSComplexTypeDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSConstants.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSConstants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSConstants.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSConstants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSElementDeclaration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSException.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSException.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSFacet.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSFacet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSFacet.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSFacet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSIDCDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSImplementation.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSImplementation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSImplementation.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSImplementation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSLoader.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSLoader.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModel.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModel.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModel.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModel.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModelGroup.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSModelGroupDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSMultiValueFacet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamespaceItem.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSNotationDeclaration.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObject.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSObject.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObject.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSObject.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSObjectList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSObjectList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSParticle.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSParticle.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSParticle.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSParticle.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSSimpleTypeDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTerm.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSTerm.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTerm.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSTerm.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSTypeDefinition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSWildcard.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/XSWildcard.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/XSWildcard.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/XSWildcard.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDateTime.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDecimal.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSDouble.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSFloat.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/XSQName.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/package.html b/jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/package.html rename to jaxp/src/com/sun/org/apache/xerces/internal/xs/datatypes/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/Axis.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/Axis.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/Axis.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/Axis.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTM.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTM.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMAxisIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMDOMException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMException.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMException.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMFilter.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMFilter.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMIterator.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMIterator.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMManager.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMManager.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMWSFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ChunkedIntArray.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CoroutineManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CoroutineParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIteratorBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMChildIterNodeList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseIterators.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBaseTraversers.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNamedNodeMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMSafeStringPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMTreeWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/EmptyIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ExtendedType.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Filter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/NodeLocator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java rename to jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_en.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_HK.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java b/jaxp/src/com/sun/org/apache/xml/internal/res/XMLMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java rename to jaxp/src/com/sun/org/apache/xml/internal/res/XMLMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/Catalog.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/Catalog.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogException.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogException.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogManager.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogManager.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/Resolver.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/Resolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java rename to jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/DOMSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/ElementState.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/ElementState.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/ElementState.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/ElementState.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/EncodingInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/Encodings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/Encodings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res b/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/HTMLdtd.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/IndentPrinter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/LineSeparator.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/LineSeparator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/LineSeparator.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/LineSeparator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Method.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/Method.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Method.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/Method.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/OutputFormat.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/OutputFormat.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/OutputFormat.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/OutputFormat.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Printer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/Printer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Printer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/Printer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Serializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/Serializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/Serializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/Serializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/TextSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/TextSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/TextSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/TextSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/XHTMLSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/XML11Serializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/AttributesImplSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/DOMSerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemContext.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ElemContext.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemContext.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ElemContext.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemDesc.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ElemDesc.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ElemDesc.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ElemDesc.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/EncodingInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ExtendedContentHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ExtendedLexicalHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/HTMLEntities.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Method.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Method.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Method.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Method.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertyUtils.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Serializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Serializer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Serializer.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Serializer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerBase.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerBase.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerConstants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerTrace.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerTraceWriter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToTextSAXHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToTextStream.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToTextStream.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/TransformStateSetter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/TreeWalker.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/TreeWalker.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Utils.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Utils.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Utils.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Utils.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Version.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Version.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/Version.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/Version.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterChain.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterChain.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterChain.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterChain.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToASCI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/XMLEntities.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_html.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/output_html.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_html.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/output_html.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_text.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/output_text.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_text.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/output_text.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_unknown.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/output_unknown.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_unknown.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/output_unknown.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_xml.properties b/jaxp/src/com/sun/org/apache/xml/internal/serializer/output_xml.properties similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/output_xml.properties rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/output_xml.properties diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/package.html b/jaxp/src/com/sun/org/apache/xml/internal/serializer/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/package.html rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/AttList.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/AttList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/AttList.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/AttList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/BoolStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/MsgKey.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ca.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_cs.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_en.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/StringToIntTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Utils.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Utils.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Utils.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Utils.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java rename to jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/WrappedRuntimeException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/AttList.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/AttList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/AttList.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/AttList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/BoolStack.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/BoolStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/BoolStack.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/BoolStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/CharKey.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/CharKey.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/CharKey.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/CharKey.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Constants.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/Constants.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Constants.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/Constants.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOM2Helper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/DOM2Helper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOM2Helper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/DOM2Helper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMBuilder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/DOMBuilder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMHelper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMHelper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/DOMHelper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMOrder.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/DOMOrder.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DOMOrder.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/DOMOrder.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/DefaultErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ElemDesc.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ElemDesc.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ElemDesc.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/FastStringBuffer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/IntStack.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/IntStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/IntStack.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/IntStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/IntVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/IntVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/IntVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/IntVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ListingErrorHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/LocaleUtility.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/LocaleUtility.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/LocaleUtility.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/LocaleUtility.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/MutableAttrListImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NSInfo.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/NSInfo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NSInfo.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/NSInfo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NameSpace.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/NameSpace.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NameSpace.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/NameSpace.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/NamespaceSupport2.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NodeConsumer.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/NodeConsumer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NodeConsumer.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/NodeConsumer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NodeVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/NodeVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/NodeVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/NodeVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectStack.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectStack.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ObjectVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/PrefixResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/PrefixResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/PrefixResolverDefault.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/QName.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/QName.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/QName.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/QName.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/RawCharacterHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SAXSourceLocator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SerializableLocatorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StopParseException.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StopParseException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StopParseException.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StopParseException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringBufferPool.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringBufferPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringBufferPool.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringBufferPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringComparable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringComparable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToIntTable.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringToIntTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToIntTable.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringToIntTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTable.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringToStringTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTable.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringToStringTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringToStringTableVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StringVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StringVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StringVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SuballocatedByteVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SuballocatedIntVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/SystemIDResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/TreeWalker.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/TreeWalker.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Trie.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/Trie.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/Trie.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/Trie.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/URI.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/URI.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/UnImplNode.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/UnImplNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/UnImplNode.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/UnImplNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/WrappedRuntimeException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/WrongParserException.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/WrongParserException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/WrongParserException.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/WrongParserException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XML11Char.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XML11Char.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XML11Char.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XML11Char.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLChar.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLChar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLChar.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLChar.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLString.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLString.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringFactoryDefault.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/package.html b/jaxp/src/com/sun/org/apache/xml/internal/utils/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/package.html rename to jaxp/src/com/sun/org/apache/xml/internal/utils/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/CharArrayWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/IntArrayWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/LongArrayWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/StringArrayWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundleBase.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_de.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_de.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_en.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_en.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_en.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_en.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_es.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_es.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_it.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_it.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_A.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HA.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_HI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ja_JP_I.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java rename to jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResources_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/Arg.java b/jaxp/src/com/sun/org/apache/xpath/internal/Arg.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/Arg.java rename to jaxp/src/com/sun/org/apache/xpath/internal/Arg.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/CachedXPathAPI.java b/jaxp/src/com/sun/org/apache/xpath/internal/CachedXPathAPI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/CachedXPathAPI.java rename to jaxp/src/com/sun/org/apache/xpath/internal/CachedXPathAPI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/Expression.java b/jaxp/src/com/sun/org/apache/xpath/internal/Expression.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/Expression.java rename to jaxp/src/com/sun/org/apache/xpath/internal/Expression.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExpressionNode.java b/jaxp/src/com/sun/org/apache/xpath/internal/ExpressionNode.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExpressionNode.java rename to jaxp/src/com/sun/org/apache/xpath/internal/ExpressionNode.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExpressionOwner.java b/jaxp/src/com/sun/org/apache/xpath/internal/ExpressionOwner.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExpressionOwner.java rename to jaxp/src/com/sun/org/apache/xpath/internal/ExpressionOwner.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java b/jaxp/src/com/sun/org/apache/xpath/internal/ExtensionsProvider.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java rename to jaxp/src/com/sun/org/apache/xpath/internal/ExtensionsProvider.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/FoundIndex.java b/jaxp/src/com/sun/org/apache/xpath/internal/FoundIndex.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/FoundIndex.java rename to jaxp/src/com/sun/org/apache/xpath/internal/FoundIndex.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java b/jaxp/src/com/sun/org/apache/xpath/internal/NodeSet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java rename to jaxp/src/com/sun/org/apache/xpath/internal/NodeSet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/NodeSetDTM.java b/jaxp/src/com/sun/org/apache/xpath/internal/NodeSetDTM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/NodeSetDTM.java rename to jaxp/src/com/sun/org/apache/xpath/internal/NodeSetDTM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/SourceTree.java b/jaxp/src/com/sun/org/apache/xpath/internal/SourceTree.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/SourceTree.java rename to jaxp/src/com/sun/org/apache/xpath/internal/SourceTree.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java b/jaxp/src/com/sun/org/apache/xpath/internal/SourceTreeManager.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java rename to jaxp/src/com/sun/org/apache/xpath/internal/SourceTreeManager.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java b/jaxp/src/com/sun/org/apache/xpath/internal/VariableStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java rename to jaxp/src/com/sun/org/apache/xpath/internal/VariableStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java b/jaxp/src/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java rename to jaxp/src/com/sun/org/apache/xpath/internal/WhitespaceStrippingElementMatcher.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPath.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPath.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPath.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPath.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathAPI.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathAPI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathAPI.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathAPI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathException.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathException.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathFactory.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathProcessorException.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathProcessorException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathProcessorException.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathProcessorException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitable.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathVisitable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitable.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathVisitable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitor.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathVisitor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/XPathVisitor.java rename to jaxp/src/com/sun/org/apache/xpath/internal/XPathVisitor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/AttributeIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/ChildIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/ChildIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/ChildTestIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/ContextNodeList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/HasPositionalPredChecker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/NodeSequence.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/NodeSequence.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/PathComponent.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/PathComponent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/PathComponent.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/PathComponent.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/RTFIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/RTFIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/RTFIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/RTFIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/ReverseAxesWalker.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/SelfIteratorNoPredicate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/SubContextList.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/SubContextList.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/SubContextList.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/SubContextList.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/axes/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/axes/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/axes/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Compiler.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Compiler.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Compiler.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/Compiler.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Keywords.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Keywords.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/Keywords.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/Lexer.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/Lexer.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpCodes.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpCodes.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpCodes.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpCodes.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMapVector.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/PsuedoNames.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/XPathDumper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/XPathParser.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/XPathParser.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/compiler/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/compiler/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/domapi/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/domapi/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/domapi/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncBoolean.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCeiling.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncConcat.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncConcat.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncConcat.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncConcat.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncContains.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncContains.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncContains.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncContains.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCount.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCount.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCount.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCount.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncDoclocation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtElementAvailable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncExtFunctionAvailable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncFalse.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncFalse.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFloor.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncFloor.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFloor.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncFloor.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncGenerateId.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncId.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncId.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncId.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncId.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLang.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLang.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLang.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLang.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLast.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLast.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncLocalPart.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNamespace.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNormalizeSpace.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNot.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNot.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNot.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNot.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNumber.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNumber.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncNumber.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncNumber.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncPosition.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncPosition.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncQname.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncQname.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncQname.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncQname.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncRound.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncRound.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncRound.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncRound.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncStartsWith.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncString.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncString.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncString.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncString.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncStringLength.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstring.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstringAfter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSubstringBefore.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSum.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSum.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSum.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSum.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncTranslate.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncTrue.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncTrue.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncUnparsedEntityURI.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/Function.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/Function.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/Function2Args.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/Function2Args.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/Function3Args.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/Function3Args.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionDef1Arg.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/WrongNumberArgsException.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/functions/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/functions/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/functions/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPPrefixResolver.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPVariableStack.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/DTMXRTreeFrag.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XBoolean.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XBoolean.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XBoolean.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XBoolean.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XBooleanStatic.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XMLStringFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XNodeSet.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XNodeSet.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XNodeSetForDOM.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNull.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XNull.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNull.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XNull.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNumber.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XNumber.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XNumber.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XNumber.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XObject.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XObject.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XObjectFactory.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XRTreeFrag.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XString.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XString.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForChars.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForChars.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForChars.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForChars.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/objects/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/objects/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/objects/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/And.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/And.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/And.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/And.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Bool.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Bool.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Bool.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Bool.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Div.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Div.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Div.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Div.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Equals.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Equals.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Equals.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Equals.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Gt.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Gt.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Gt.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Gt.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Gte.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Gte.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Gte.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Gte.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Lt.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Lt.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Lt.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Lt.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Lte.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Lte.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Lte.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Lte.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Minus.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Minus.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Minus.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Minus.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Mod.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Mod.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Mod.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Mod.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Mult.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Mult.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Mult.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Mult.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Neg.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Neg.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Neg.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Neg.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/NotEquals.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/NotEquals.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/NotEquals.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/NotEquals.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Number.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Number.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Number.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Number.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Operation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Operation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Or.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Or.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Or.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Or.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Plus.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Plus.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Plus.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Plus.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Quo.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Quo.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Quo.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Quo.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/String.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/String.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/String.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/String.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/Variable.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/Variable.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java b/jaxp/src/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/VariableSafeAbsRef.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/operations/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/operations/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/operations/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/NodeTest.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/NodeTest.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/NodeTestFilter.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/patterns/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/patterns/package.html diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_en.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHMessages.java b/jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHMessages.java rename to jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java diff --git a/jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/package.html b/jaxp/src/com/sun/org/apache/xpath/internal/res/package.html similarity index 100% rename from jaxp/src/share/classes/com/sun/org/apache/xpath/internal/res/package.html rename to jaxp/src/com/sun/org/apache/xpath/internal/res/package.html diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/Entity.java b/jaxp/src/com/sun/xml/internal/stream/Entity.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/Entity.java rename to jaxp/src/com/sun/xml/internal/stream/Entity.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/EventFilterSupport.java b/jaxp/src/com/sun/xml/internal/stream/EventFilterSupport.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/EventFilterSupport.java rename to jaxp/src/com/sun/xml/internal/stream/EventFilterSupport.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java b/jaxp/src/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java rename to jaxp/src/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/StaxErrorReporter.java b/jaxp/src/com/sun/xml/internal/stream/StaxErrorReporter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/StaxErrorReporter.java rename to jaxp/src/com/sun/xml/internal/stream/StaxErrorReporter.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java b/jaxp/src/com/sun/xml/internal/stream/StaxXMLInputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java rename to jaxp/src/com/sun/xml/internal/stream/StaxXMLInputSource.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLBufferListener.java b/jaxp/src/com/sun/xml/internal/stream/XMLBufferListener.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLBufferListener.java rename to jaxp/src/com/sun/xml/internal/stream/XMLBufferListener.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEntityReader.java b/jaxp/src/com/sun/xml/internal/stream/XMLEntityReader.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEntityReader.java rename to jaxp/src/com/sun/xml/internal/stream/XMLEntityReader.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEntityStorage.java b/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEntityStorage.java rename to jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEventReaderImpl.java b/jaxp/src/com/sun/xml/internal/stream/XMLEventReaderImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLEventReaderImpl.java rename to jaxp/src/com/sun/xml/internal/stream/XMLEventReaderImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLInputFactoryImpl.java b/jaxp/src/com/sun/xml/internal/stream/XMLInputFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLInputFactoryImpl.java rename to jaxp/src/com/sun/xml/internal/stream/XMLInputFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java b/jaxp/src/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java rename to jaxp/src/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java b/jaxp/src/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/DTDGrammarUtil.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java b/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/DTDGrammar.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java b/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLAttributeDecl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java b/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLElementDecl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java b/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLNotationDecl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java b/jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java rename to jaxp/src/com/sun/xml/internal/stream/dtd/nonvalidating/XMLSimpleType.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/AttributeImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/AttributeImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/AttributeImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/AttributeImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/CharacterEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/CharacterEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/CharacterEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/CharacterEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/CommentEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/CommentEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/CommentEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/CommentEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/DTDEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/DTDEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/DTDEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/DTDEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/DummyEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/DummyEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/DummyEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/DummyEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/EndDocumentEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/EndDocumentEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/EndDocumentEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/EndDocumentEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/EndElementEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/EndElementEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/EndElementEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/EndElementEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/EntityReferenceEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/EntityReferenceEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/EntityReferenceEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/EntityReferenceEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/LocationImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/LocationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/LocationImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/LocationImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/NamedEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/NamedEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/NamedEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/NamedEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/NamespaceImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/NamespaceImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/NamespaceImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/NamespaceImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/ProcessingInstructionEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/StartDocumentEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/StartDocumentEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/StartDocumentEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/StartDocumentEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/StartElementEvent.java b/jaxp/src/com/sun/xml/internal/stream/events/StartElementEvent.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/StartElementEvent.java rename to jaxp/src/com/sun/xml/internal/stream/events/StartElementEvent.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/XMLEventAllocatorImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java b/jaxp/src/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java rename to jaxp/src/com/sun/xml/internal/stream/events/XMLEventFactoryImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory b/jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory rename to jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLEventFactory diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory b/jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory rename to jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLInputFactory diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory b/jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory rename to jaxp/src/com/sun/xml/internal/stream/javax.xml.stream.XMLOutputFactory diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/util/BufferAllocator.java b/jaxp/src/com/sun/xml/internal/stream/util/BufferAllocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/util/BufferAllocator.java rename to jaxp/src/com/sun/xml/internal/stream/util/BufferAllocator.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/util/ReadOnlyIterator.java b/jaxp/src/com/sun/xml/internal/stream/util/ReadOnlyIterator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/util/ReadOnlyIterator.java rename to jaxp/src/com/sun/xml/internal/stream/util/ReadOnlyIterator.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java b/jaxp/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java rename to jaxp/src/com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java b/jaxp/src/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java rename to jaxp/src/com/sun/xml/internal/stream/writers/UTF8OutputStreamWriter.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/WriterUtility.java b/jaxp/src/com/sun/xml/internal/stream/writers/WriterUtility.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/WriterUtility.java rename to jaxp/src/com/sun/xml/internal/stream/writers/WriterUtility.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java rename to jaxp/src/com/sun/xml/internal/stream/writers/XMLDOMWriterImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java rename to jaxp/src/com/sun/xml/internal/stream/writers/XMLEventWriterImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLOutputSource.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLOutputSource.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLOutputSource.java rename to jaxp/src/com/sun/xml/internal/stream/writers/XMLOutputSource.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java rename to jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java diff --git a/jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLWriter.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLWriter.java similarity index 100% rename from jaxp/src/share/classes/com/sun/xml/internal/stream/writers/XMLWriter.java rename to jaxp/src/com/sun/xml/internal/stream/writers/XMLWriter.java diff --git a/jaxp/src/share/classes/javax/xml/XMLConstants.java b/jaxp/src/javax/xml/XMLConstants.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/XMLConstants.java rename to jaxp/src/javax/xml/XMLConstants.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/DatatypeConfigurationException.java b/jaxp/src/javax/xml/datatype/DatatypeConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/DatatypeConfigurationException.java rename to jaxp/src/javax/xml/datatype/DatatypeConfigurationException.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/DatatypeConstants.java b/jaxp/src/javax/xml/datatype/DatatypeConstants.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/DatatypeConstants.java rename to jaxp/src/javax/xml/datatype/DatatypeConstants.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/DatatypeFactory.java b/jaxp/src/javax/xml/datatype/DatatypeFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/DatatypeFactory.java rename to jaxp/src/javax/xml/datatype/DatatypeFactory.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/Duration.java b/jaxp/src/javax/xml/datatype/Duration.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/Duration.java rename to jaxp/src/javax/xml/datatype/Duration.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/FactoryFinder.java b/jaxp/src/javax/xml/datatype/FactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/FactoryFinder.java rename to jaxp/src/javax/xml/datatype/FactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/SecuritySupport.java b/jaxp/src/javax/xml/datatype/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/SecuritySupport.java rename to jaxp/src/javax/xml/datatype/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/XMLGregorianCalendar.java b/jaxp/src/javax/xml/datatype/XMLGregorianCalendar.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/XMLGregorianCalendar.java rename to jaxp/src/javax/xml/datatype/XMLGregorianCalendar.java diff --git a/jaxp/src/share/classes/javax/xml/datatype/package.html b/jaxp/src/javax/xml/datatype/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/datatype/package.html rename to jaxp/src/javax/xml/datatype/package.html diff --git a/jaxp/src/share/classes/javax/xml/namespace/NamespaceContext.java b/jaxp/src/javax/xml/namespace/NamespaceContext.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/namespace/NamespaceContext.java rename to jaxp/src/javax/xml/namespace/NamespaceContext.java diff --git a/jaxp/src/share/classes/javax/xml/namespace/QName.java b/jaxp/src/javax/xml/namespace/QName.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/namespace/QName.java rename to jaxp/src/javax/xml/namespace/QName.java diff --git a/jaxp/src/share/classes/javax/xml/namespace/package.html b/jaxp/src/javax/xml/namespace/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/namespace/package.html rename to jaxp/src/javax/xml/namespace/package.html diff --git a/jaxp/src/share/classes/javax/xml/parsers/DocumentBuilder.java b/jaxp/src/javax/xml/parsers/DocumentBuilder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/DocumentBuilder.java rename to jaxp/src/javax/xml/parsers/DocumentBuilder.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/DocumentBuilderFactory.java b/jaxp/src/javax/xml/parsers/DocumentBuilderFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/DocumentBuilderFactory.java rename to jaxp/src/javax/xml/parsers/DocumentBuilderFactory.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/FactoryConfigurationError.java b/jaxp/src/javax/xml/parsers/FactoryConfigurationError.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/FactoryConfigurationError.java rename to jaxp/src/javax/xml/parsers/FactoryConfigurationError.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/FactoryFinder.java b/jaxp/src/javax/xml/parsers/FactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/FactoryFinder.java rename to jaxp/src/javax/xml/parsers/FactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/ParserConfigurationException.java b/jaxp/src/javax/xml/parsers/ParserConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/ParserConfigurationException.java rename to jaxp/src/javax/xml/parsers/ParserConfigurationException.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/SAXParser.java b/jaxp/src/javax/xml/parsers/SAXParser.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/SAXParser.java rename to jaxp/src/javax/xml/parsers/SAXParser.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/SAXParserFactory.java b/jaxp/src/javax/xml/parsers/SAXParserFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/SAXParserFactory.java rename to jaxp/src/javax/xml/parsers/SAXParserFactory.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/SecuritySupport.java b/jaxp/src/javax/xml/parsers/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/SecuritySupport.java rename to jaxp/src/javax/xml/parsers/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/parsers/package.html b/jaxp/src/javax/xml/parsers/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/parsers/package.html rename to jaxp/src/javax/xml/parsers/package.html diff --git a/jaxp/src/share/classes/javax/xml/stream/EventFilter.java b/jaxp/src/javax/xml/stream/EventFilter.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/EventFilter.java rename to jaxp/src/javax/xml/stream/EventFilter.java diff --git a/jaxp/src/share/classes/javax/xml/stream/FactoryConfigurationError.java b/jaxp/src/javax/xml/stream/FactoryConfigurationError.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/FactoryConfigurationError.java rename to jaxp/src/javax/xml/stream/FactoryConfigurationError.java diff --git a/jaxp/src/share/classes/javax/xml/stream/FactoryFinder.java b/jaxp/src/javax/xml/stream/FactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/FactoryFinder.java rename to jaxp/src/javax/xml/stream/FactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/stream/Location.java b/jaxp/src/javax/xml/stream/Location.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/Location.java rename to jaxp/src/javax/xml/stream/Location.java diff --git a/jaxp/src/share/classes/javax/xml/stream/SecuritySupport.java b/jaxp/src/javax/xml/stream/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/SecuritySupport.java rename to jaxp/src/javax/xml/stream/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/stream/StreamFilter.java b/jaxp/src/javax/xml/stream/StreamFilter.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/StreamFilter.java rename to jaxp/src/javax/xml/stream/StreamFilter.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLEventFactory.java b/jaxp/src/javax/xml/stream/XMLEventFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLEventFactory.java rename to jaxp/src/javax/xml/stream/XMLEventFactory.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLEventReader.java b/jaxp/src/javax/xml/stream/XMLEventReader.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLEventReader.java rename to jaxp/src/javax/xml/stream/XMLEventReader.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLEventWriter.java b/jaxp/src/javax/xml/stream/XMLEventWriter.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLEventWriter.java rename to jaxp/src/javax/xml/stream/XMLEventWriter.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLInputFactory.java b/jaxp/src/javax/xml/stream/XMLInputFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLInputFactory.java rename to jaxp/src/javax/xml/stream/XMLInputFactory.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLOutputFactory.java b/jaxp/src/javax/xml/stream/XMLOutputFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLOutputFactory.java rename to jaxp/src/javax/xml/stream/XMLOutputFactory.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLReporter.java b/jaxp/src/javax/xml/stream/XMLReporter.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLReporter.java rename to jaxp/src/javax/xml/stream/XMLReporter.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLResolver.java b/jaxp/src/javax/xml/stream/XMLResolver.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLResolver.java rename to jaxp/src/javax/xml/stream/XMLResolver.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLStreamConstants.java b/jaxp/src/javax/xml/stream/XMLStreamConstants.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLStreamConstants.java rename to jaxp/src/javax/xml/stream/XMLStreamConstants.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLStreamException.java b/jaxp/src/javax/xml/stream/XMLStreamException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLStreamException.java rename to jaxp/src/javax/xml/stream/XMLStreamException.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLStreamReader.java b/jaxp/src/javax/xml/stream/XMLStreamReader.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLStreamReader.java rename to jaxp/src/javax/xml/stream/XMLStreamReader.java diff --git a/jaxp/src/share/classes/javax/xml/stream/XMLStreamWriter.java b/jaxp/src/javax/xml/stream/XMLStreamWriter.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/XMLStreamWriter.java rename to jaxp/src/javax/xml/stream/XMLStreamWriter.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/Attribute.java b/jaxp/src/javax/xml/stream/events/Attribute.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/Attribute.java rename to jaxp/src/javax/xml/stream/events/Attribute.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/Characters.java b/jaxp/src/javax/xml/stream/events/Characters.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/Characters.java rename to jaxp/src/javax/xml/stream/events/Characters.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/Comment.java b/jaxp/src/javax/xml/stream/events/Comment.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/Comment.java rename to jaxp/src/javax/xml/stream/events/Comment.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/DTD.java b/jaxp/src/javax/xml/stream/events/DTD.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/DTD.java rename to jaxp/src/javax/xml/stream/events/DTD.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/EndDocument.java b/jaxp/src/javax/xml/stream/events/EndDocument.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/EndDocument.java rename to jaxp/src/javax/xml/stream/events/EndDocument.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/EndElement.java b/jaxp/src/javax/xml/stream/events/EndElement.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/EndElement.java rename to jaxp/src/javax/xml/stream/events/EndElement.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/EntityDeclaration.java b/jaxp/src/javax/xml/stream/events/EntityDeclaration.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/EntityDeclaration.java rename to jaxp/src/javax/xml/stream/events/EntityDeclaration.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/EntityReference.java b/jaxp/src/javax/xml/stream/events/EntityReference.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/EntityReference.java rename to jaxp/src/javax/xml/stream/events/EntityReference.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/Namespace.java b/jaxp/src/javax/xml/stream/events/Namespace.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/Namespace.java rename to jaxp/src/javax/xml/stream/events/Namespace.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/NotationDeclaration.java b/jaxp/src/javax/xml/stream/events/NotationDeclaration.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/NotationDeclaration.java rename to jaxp/src/javax/xml/stream/events/NotationDeclaration.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/ProcessingInstruction.java b/jaxp/src/javax/xml/stream/events/ProcessingInstruction.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/ProcessingInstruction.java rename to jaxp/src/javax/xml/stream/events/ProcessingInstruction.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/StartDocument.java b/jaxp/src/javax/xml/stream/events/StartDocument.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/StartDocument.java rename to jaxp/src/javax/xml/stream/events/StartDocument.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/StartElement.java b/jaxp/src/javax/xml/stream/events/StartElement.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/StartElement.java rename to jaxp/src/javax/xml/stream/events/StartElement.java diff --git a/jaxp/src/share/classes/javax/xml/stream/events/XMLEvent.java b/jaxp/src/javax/xml/stream/events/XMLEvent.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/events/XMLEvent.java rename to jaxp/src/javax/xml/stream/events/XMLEvent.java diff --git a/jaxp/src/share/classes/javax/xml/stream/util/EventReaderDelegate.java b/jaxp/src/javax/xml/stream/util/EventReaderDelegate.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/util/EventReaderDelegate.java rename to jaxp/src/javax/xml/stream/util/EventReaderDelegate.java diff --git a/jaxp/src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java b/jaxp/src/javax/xml/stream/util/StreamReaderDelegate.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java rename to jaxp/src/javax/xml/stream/util/StreamReaderDelegate.java diff --git a/jaxp/src/share/classes/javax/xml/stream/util/XMLEventAllocator.java b/jaxp/src/javax/xml/stream/util/XMLEventAllocator.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/util/XMLEventAllocator.java rename to jaxp/src/javax/xml/stream/util/XMLEventAllocator.java diff --git a/jaxp/src/share/classes/javax/xml/stream/util/XMLEventConsumer.java b/jaxp/src/javax/xml/stream/util/XMLEventConsumer.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/stream/util/XMLEventConsumer.java rename to jaxp/src/javax/xml/stream/util/XMLEventConsumer.java diff --git a/jaxp/src/share/classes/javax/xml/transform/ErrorListener.java b/jaxp/src/javax/xml/transform/ErrorListener.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/ErrorListener.java rename to jaxp/src/javax/xml/transform/ErrorListener.java diff --git a/jaxp/src/share/classes/javax/xml/transform/FactoryFinder.java b/jaxp/src/javax/xml/transform/FactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/FactoryFinder.java rename to jaxp/src/javax/xml/transform/FactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/transform/OutputKeys.java b/jaxp/src/javax/xml/transform/OutputKeys.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/OutputKeys.java rename to jaxp/src/javax/xml/transform/OutputKeys.java diff --git a/jaxp/src/share/classes/javax/xml/transform/Result.java b/jaxp/src/javax/xml/transform/Result.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/Result.java rename to jaxp/src/javax/xml/transform/Result.java diff --git a/jaxp/src/share/classes/javax/xml/transform/SecuritySupport.java b/jaxp/src/javax/xml/transform/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/SecuritySupport.java rename to jaxp/src/javax/xml/transform/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/transform/Source.java b/jaxp/src/javax/xml/transform/Source.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/Source.java rename to jaxp/src/javax/xml/transform/Source.java diff --git a/jaxp/src/share/classes/javax/xml/transform/SourceLocator.java b/jaxp/src/javax/xml/transform/SourceLocator.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/SourceLocator.java rename to jaxp/src/javax/xml/transform/SourceLocator.java diff --git a/jaxp/src/share/classes/javax/xml/transform/Templates.java b/jaxp/src/javax/xml/transform/Templates.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/Templates.java rename to jaxp/src/javax/xml/transform/Templates.java diff --git a/jaxp/src/share/classes/javax/xml/transform/Transformer.java b/jaxp/src/javax/xml/transform/Transformer.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/Transformer.java rename to jaxp/src/javax/xml/transform/Transformer.java diff --git a/jaxp/src/share/classes/javax/xml/transform/TransformerConfigurationException.java b/jaxp/src/javax/xml/transform/TransformerConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/TransformerConfigurationException.java rename to jaxp/src/javax/xml/transform/TransformerConfigurationException.java diff --git a/jaxp/src/share/classes/javax/xml/transform/TransformerException.java b/jaxp/src/javax/xml/transform/TransformerException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/TransformerException.java rename to jaxp/src/javax/xml/transform/TransformerException.java diff --git a/jaxp/src/share/classes/javax/xml/transform/TransformerFactory.java b/jaxp/src/javax/xml/transform/TransformerFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/TransformerFactory.java rename to jaxp/src/javax/xml/transform/TransformerFactory.java diff --git a/jaxp/src/share/classes/javax/xml/transform/TransformerFactoryConfigurationError.java b/jaxp/src/javax/xml/transform/TransformerFactoryConfigurationError.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/TransformerFactoryConfigurationError.java rename to jaxp/src/javax/xml/transform/TransformerFactoryConfigurationError.java diff --git a/jaxp/src/share/classes/javax/xml/transform/URIResolver.java b/jaxp/src/javax/xml/transform/URIResolver.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/URIResolver.java rename to jaxp/src/javax/xml/transform/URIResolver.java diff --git a/jaxp/src/share/classes/javax/xml/transform/dom/DOMLocator.java b/jaxp/src/javax/xml/transform/dom/DOMLocator.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/dom/DOMLocator.java rename to jaxp/src/javax/xml/transform/dom/DOMLocator.java diff --git a/jaxp/src/share/classes/javax/xml/transform/dom/DOMResult.java b/jaxp/src/javax/xml/transform/dom/DOMResult.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/dom/DOMResult.java rename to jaxp/src/javax/xml/transform/dom/DOMResult.java diff --git a/jaxp/src/share/classes/javax/xml/transform/dom/DOMSource.java b/jaxp/src/javax/xml/transform/dom/DOMSource.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/dom/DOMSource.java rename to jaxp/src/javax/xml/transform/dom/DOMSource.java diff --git a/jaxp/src/share/classes/javax/xml/transform/dom/package.html b/jaxp/src/javax/xml/transform/dom/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/dom/package.html rename to jaxp/src/javax/xml/transform/dom/package.html diff --git a/jaxp/src/share/classes/javax/xml/transform/overview.html b/jaxp/src/javax/xml/transform/overview.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/overview.html rename to jaxp/src/javax/xml/transform/overview.html diff --git a/jaxp/src/share/classes/javax/xml/transform/package.html b/jaxp/src/javax/xml/transform/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/package.html rename to jaxp/src/javax/xml/transform/package.html diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/SAXResult.java b/jaxp/src/javax/xml/transform/sax/SAXResult.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/SAXResult.java rename to jaxp/src/javax/xml/transform/sax/SAXResult.java diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/SAXSource.java b/jaxp/src/javax/xml/transform/sax/SAXSource.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/SAXSource.java rename to jaxp/src/javax/xml/transform/sax/SAXSource.java diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/SAXTransformerFactory.java b/jaxp/src/javax/xml/transform/sax/SAXTransformerFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/SAXTransformerFactory.java rename to jaxp/src/javax/xml/transform/sax/SAXTransformerFactory.java diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/TemplatesHandler.java b/jaxp/src/javax/xml/transform/sax/TemplatesHandler.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/TemplatesHandler.java rename to jaxp/src/javax/xml/transform/sax/TemplatesHandler.java diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/TransformerHandler.java b/jaxp/src/javax/xml/transform/sax/TransformerHandler.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/TransformerHandler.java rename to jaxp/src/javax/xml/transform/sax/TransformerHandler.java diff --git a/jaxp/src/share/classes/javax/xml/transform/sax/package.html b/jaxp/src/javax/xml/transform/sax/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/sax/package.html rename to jaxp/src/javax/xml/transform/sax/package.html diff --git a/jaxp/src/share/classes/javax/xml/transform/stax/StAXResult.java b/jaxp/src/javax/xml/transform/stax/StAXResult.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stax/StAXResult.java rename to jaxp/src/javax/xml/transform/stax/StAXResult.java diff --git a/jaxp/src/share/classes/javax/xml/transform/stax/StAXSource.java b/jaxp/src/javax/xml/transform/stax/StAXSource.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stax/StAXSource.java rename to jaxp/src/javax/xml/transform/stax/StAXSource.java diff --git a/jaxp/src/share/classes/javax/xml/transform/stax/package.html b/jaxp/src/javax/xml/transform/stax/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stax/package.html rename to jaxp/src/javax/xml/transform/stax/package.html diff --git a/jaxp/src/share/classes/javax/xml/transform/stream/StreamResult.java b/jaxp/src/javax/xml/transform/stream/StreamResult.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stream/StreamResult.java rename to jaxp/src/javax/xml/transform/stream/StreamResult.java diff --git a/jaxp/src/share/classes/javax/xml/transform/stream/StreamSource.java b/jaxp/src/javax/xml/transform/stream/StreamSource.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stream/StreamSource.java rename to jaxp/src/javax/xml/transform/stream/StreamSource.java diff --git a/jaxp/src/share/classes/javax/xml/transform/stream/package.html b/jaxp/src/javax/xml/transform/stream/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/transform/stream/package.html rename to jaxp/src/javax/xml/transform/stream/package.html diff --git a/jaxp/src/share/classes/javax/xml/validation/Schema.java b/jaxp/src/javax/xml/validation/Schema.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/Schema.java rename to jaxp/src/javax/xml/validation/Schema.java diff --git a/jaxp/src/share/classes/javax/xml/validation/SchemaFactory.java b/jaxp/src/javax/xml/validation/SchemaFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/SchemaFactory.java rename to jaxp/src/javax/xml/validation/SchemaFactory.java diff --git a/jaxp/src/share/classes/javax/xml/validation/SchemaFactoryFinder.java b/jaxp/src/javax/xml/validation/SchemaFactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/SchemaFactoryFinder.java rename to jaxp/src/javax/xml/validation/SchemaFactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/validation/SchemaFactoryLoader.java b/jaxp/src/javax/xml/validation/SchemaFactoryLoader.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/SchemaFactoryLoader.java rename to jaxp/src/javax/xml/validation/SchemaFactoryLoader.java diff --git a/jaxp/src/share/classes/javax/xml/validation/SecuritySupport.java b/jaxp/src/javax/xml/validation/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/SecuritySupport.java rename to jaxp/src/javax/xml/validation/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/validation/TypeInfoProvider.java b/jaxp/src/javax/xml/validation/TypeInfoProvider.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/TypeInfoProvider.java rename to jaxp/src/javax/xml/validation/TypeInfoProvider.java diff --git a/jaxp/src/share/classes/javax/xml/validation/Validator.java b/jaxp/src/javax/xml/validation/Validator.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/Validator.java rename to jaxp/src/javax/xml/validation/Validator.java diff --git a/jaxp/src/share/classes/javax/xml/validation/ValidatorHandler.java b/jaxp/src/javax/xml/validation/ValidatorHandler.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/ValidatorHandler.java rename to jaxp/src/javax/xml/validation/ValidatorHandler.java diff --git a/jaxp/src/share/classes/javax/xml/validation/package.html b/jaxp/src/javax/xml/validation/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/validation/package.html rename to jaxp/src/javax/xml/validation/package.html diff --git a/jaxp/src/share/classes/javax/xml/xpath/SecuritySupport.java b/jaxp/src/javax/xml/xpath/SecuritySupport.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/SecuritySupport.java rename to jaxp/src/javax/xml/xpath/SecuritySupport.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPath.java b/jaxp/src/javax/xml/xpath/XPath.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPath.java rename to jaxp/src/javax/xml/xpath/XPath.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathConstants.java b/jaxp/src/javax/xml/xpath/XPathConstants.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathConstants.java rename to jaxp/src/javax/xml/xpath/XPathConstants.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathException.java b/jaxp/src/javax/xml/xpath/XPathException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathException.java rename to jaxp/src/javax/xml/xpath/XPathException.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathExpression.java b/jaxp/src/javax/xml/xpath/XPathExpression.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathExpression.java rename to jaxp/src/javax/xml/xpath/XPathExpression.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathExpressionException.java b/jaxp/src/javax/xml/xpath/XPathExpressionException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathExpressionException.java rename to jaxp/src/javax/xml/xpath/XPathExpressionException.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFactory.java b/jaxp/src/javax/xml/xpath/XPathFactory.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFactory.java rename to jaxp/src/javax/xml/xpath/XPathFactory.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java b/jaxp/src/javax/xml/xpath/XPathFactoryConfigurationException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java rename to jaxp/src/javax/xml/xpath/XPathFactoryConfigurationException.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFactoryFinder.java b/jaxp/src/javax/xml/xpath/XPathFactoryFinder.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFactoryFinder.java rename to jaxp/src/javax/xml/xpath/XPathFactoryFinder.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFunction.java b/jaxp/src/javax/xml/xpath/XPathFunction.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFunction.java rename to jaxp/src/javax/xml/xpath/XPathFunction.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFunctionException.java b/jaxp/src/javax/xml/xpath/XPathFunctionException.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFunctionException.java rename to jaxp/src/javax/xml/xpath/XPathFunctionException.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathFunctionResolver.java b/jaxp/src/javax/xml/xpath/XPathFunctionResolver.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathFunctionResolver.java rename to jaxp/src/javax/xml/xpath/XPathFunctionResolver.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/XPathVariableResolver.java b/jaxp/src/javax/xml/xpath/XPathVariableResolver.java similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/XPathVariableResolver.java rename to jaxp/src/javax/xml/xpath/XPathVariableResolver.java diff --git a/jaxp/src/share/classes/javax/xml/xpath/package.html b/jaxp/src/javax/xml/xpath/package.html similarity index 100% rename from jaxp/src/share/classes/javax/xml/xpath/package.html rename to jaxp/src/javax/xml/xpath/package.html diff --git a/jaxp/src/share/classes/org/w3c/dom/Attr.java b/jaxp/src/org/w3c/dom/Attr.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Attr.java rename to jaxp/src/org/w3c/dom/Attr.java diff --git a/jaxp/src/share/classes/org/w3c/dom/CDATASection.java b/jaxp/src/org/w3c/dom/CDATASection.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/CDATASection.java rename to jaxp/src/org/w3c/dom/CDATASection.java diff --git a/jaxp/src/share/classes/org/w3c/dom/CharacterData.java b/jaxp/src/org/w3c/dom/CharacterData.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/CharacterData.java rename to jaxp/src/org/w3c/dom/CharacterData.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Comment.java b/jaxp/src/org/w3c/dom/Comment.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Comment.java rename to jaxp/src/org/w3c/dom/Comment.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMConfiguration.java b/jaxp/src/org/w3c/dom/DOMConfiguration.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMConfiguration.java rename to jaxp/src/org/w3c/dom/DOMConfiguration.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMError.java b/jaxp/src/org/w3c/dom/DOMError.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMError.java rename to jaxp/src/org/w3c/dom/DOMError.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMErrorHandler.java b/jaxp/src/org/w3c/dom/DOMErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMErrorHandler.java rename to jaxp/src/org/w3c/dom/DOMErrorHandler.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMException.java b/jaxp/src/org/w3c/dom/DOMException.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMException.java rename to jaxp/src/org/w3c/dom/DOMException.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMImplementation.java b/jaxp/src/org/w3c/dom/DOMImplementation.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMImplementation.java rename to jaxp/src/org/w3c/dom/DOMImplementation.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMImplementationList.java b/jaxp/src/org/w3c/dom/DOMImplementationList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMImplementationList.java rename to jaxp/src/org/w3c/dom/DOMImplementationList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMImplementationSource.java b/jaxp/src/org/w3c/dom/DOMImplementationSource.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMImplementationSource.java rename to jaxp/src/org/w3c/dom/DOMImplementationSource.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMLocator.java b/jaxp/src/org/w3c/dom/DOMLocator.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMLocator.java rename to jaxp/src/org/w3c/dom/DOMLocator.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DOMStringList.java b/jaxp/src/org/w3c/dom/DOMStringList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DOMStringList.java rename to jaxp/src/org/w3c/dom/DOMStringList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Document.java b/jaxp/src/org/w3c/dom/Document.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Document.java rename to jaxp/src/org/w3c/dom/Document.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DocumentFragment.java b/jaxp/src/org/w3c/dom/DocumentFragment.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DocumentFragment.java rename to jaxp/src/org/w3c/dom/DocumentFragment.java diff --git a/jaxp/src/share/classes/org/w3c/dom/DocumentType.java b/jaxp/src/org/w3c/dom/DocumentType.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/DocumentType.java rename to jaxp/src/org/w3c/dom/DocumentType.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Element.java b/jaxp/src/org/w3c/dom/Element.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Element.java rename to jaxp/src/org/w3c/dom/Element.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Entity.java b/jaxp/src/org/w3c/dom/Entity.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Entity.java rename to jaxp/src/org/w3c/dom/Entity.java diff --git a/jaxp/src/share/classes/org/w3c/dom/EntityReference.java b/jaxp/src/org/w3c/dom/EntityReference.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/EntityReference.java rename to jaxp/src/org/w3c/dom/EntityReference.java diff --git a/jaxp/src/share/classes/org/w3c/dom/NameList.java b/jaxp/src/org/w3c/dom/NameList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/NameList.java rename to jaxp/src/org/w3c/dom/NameList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/NamedNodeMap.java b/jaxp/src/org/w3c/dom/NamedNodeMap.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/NamedNodeMap.java rename to jaxp/src/org/w3c/dom/NamedNodeMap.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Node.java b/jaxp/src/org/w3c/dom/Node.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Node.java rename to jaxp/src/org/w3c/dom/Node.java diff --git a/jaxp/src/share/classes/org/w3c/dom/NodeList.java b/jaxp/src/org/w3c/dom/NodeList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/NodeList.java rename to jaxp/src/org/w3c/dom/NodeList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Notation.java b/jaxp/src/org/w3c/dom/Notation.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Notation.java rename to jaxp/src/org/w3c/dom/Notation.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ProcessingInstruction.java b/jaxp/src/org/w3c/dom/ProcessingInstruction.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ProcessingInstruction.java rename to jaxp/src/org/w3c/dom/ProcessingInstruction.java diff --git a/jaxp/src/share/classes/org/w3c/dom/Text.java b/jaxp/src/org/w3c/dom/Text.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/Text.java rename to jaxp/src/org/w3c/dom/Text.java diff --git a/jaxp/src/share/classes/org/w3c/dom/TypeInfo.java b/jaxp/src/org/w3c/dom/TypeInfo.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/TypeInfo.java rename to jaxp/src/org/w3c/dom/TypeInfo.java diff --git a/jaxp/src/share/classes/org/w3c/dom/UserDataHandler.java b/jaxp/src/org/w3c/dom/UserDataHandler.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/UserDataHandler.java rename to jaxp/src/org/w3c/dom/UserDataHandler.java diff --git a/jaxp/src/share/classes/org/w3c/dom/bootstrap/DOMImplementationRegistry.java b/jaxp/src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/bootstrap/DOMImplementationRegistry.java rename to jaxp/src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSS2Properties.java b/jaxp/src/org/w3c/dom/css/CSS2Properties.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSS2Properties.java rename to jaxp/src/org/w3c/dom/css/CSS2Properties.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSCharsetRule.java b/jaxp/src/org/w3c/dom/css/CSSCharsetRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSCharsetRule.java rename to jaxp/src/org/w3c/dom/css/CSSCharsetRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSFontFaceRule.java b/jaxp/src/org/w3c/dom/css/CSSFontFaceRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSFontFaceRule.java rename to jaxp/src/org/w3c/dom/css/CSSFontFaceRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSImportRule.java b/jaxp/src/org/w3c/dom/css/CSSImportRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSImportRule.java rename to jaxp/src/org/w3c/dom/css/CSSImportRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSMediaRule.java b/jaxp/src/org/w3c/dom/css/CSSMediaRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSMediaRule.java rename to jaxp/src/org/w3c/dom/css/CSSMediaRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSPageRule.java b/jaxp/src/org/w3c/dom/css/CSSPageRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSPageRule.java rename to jaxp/src/org/w3c/dom/css/CSSPageRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java b/jaxp/src/org/w3c/dom/css/CSSPrimitiveValue.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java rename to jaxp/src/org/w3c/dom/css/CSSPrimitiveValue.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSRule.java b/jaxp/src/org/w3c/dom/css/CSSRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSRule.java rename to jaxp/src/org/w3c/dom/css/CSSRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSRuleList.java b/jaxp/src/org/w3c/dom/css/CSSRuleList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSRuleList.java rename to jaxp/src/org/w3c/dom/css/CSSRuleList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java b/jaxp/src/org/w3c/dom/css/CSSStyleDeclaration.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java rename to jaxp/src/org/w3c/dom/css/CSSStyleDeclaration.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSStyleRule.java b/jaxp/src/org/w3c/dom/css/CSSStyleRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSStyleRule.java rename to jaxp/src/org/w3c/dom/css/CSSStyleRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSStyleSheet.java b/jaxp/src/org/w3c/dom/css/CSSStyleSheet.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSStyleSheet.java rename to jaxp/src/org/w3c/dom/css/CSSStyleSheet.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSUnknownRule.java b/jaxp/src/org/w3c/dom/css/CSSUnknownRule.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSUnknownRule.java rename to jaxp/src/org/w3c/dom/css/CSSUnknownRule.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSValue.java b/jaxp/src/org/w3c/dom/css/CSSValue.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSValue.java rename to jaxp/src/org/w3c/dom/css/CSSValue.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/CSSValueList.java b/jaxp/src/org/w3c/dom/css/CSSValueList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/CSSValueList.java rename to jaxp/src/org/w3c/dom/css/CSSValueList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/Counter.java b/jaxp/src/org/w3c/dom/css/Counter.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/Counter.java rename to jaxp/src/org/w3c/dom/css/Counter.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/DOMImplementationCSS.java b/jaxp/src/org/w3c/dom/css/DOMImplementationCSS.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/DOMImplementationCSS.java rename to jaxp/src/org/w3c/dom/css/DOMImplementationCSS.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/DocumentCSS.java b/jaxp/src/org/w3c/dom/css/DocumentCSS.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/DocumentCSS.java rename to jaxp/src/org/w3c/dom/css/DocumentCSS.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java b/jaxp/src/org/w3c/dom/css/ElementCSSInlineStyle.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java rename to jaxp/src/org/w3c/dom/css/ElementCSSInlineStyle.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/RGBColor.java b/jaxp/src/org/w3c/dom/css/RGBColor.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/RGBColor.java rename to jaxp/src/org/w3c/dom/css/RGBColor.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/Rect.java b/jaxp/src/org/w3c/dom/css/Rect.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/Rect.java rename to jaxp/src/org/w3c/dom/css/Rect.java diff --git a/jaxp/src/share/classes/org/w3c/dom/css/ViewCSS.java b/jaxp/src/org/w3c/dom/css/ViewCSS.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/css/ViewCSS.java rename to jaxp/src/org/w3c/dom/css/ViewCSS.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/DocumentEvent.java b/jaxp/src/org/w3c/dom/events/DocumentEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/DocumentEvent.java rename to jaxp/src/org/w3c/dom/events/DocumentEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/Event.java b/jaxp/src/org/w3c/dom/events/Event.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/Event.java rename to jaxp/src/org/w3c/dom/events/Event.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/EventException.java b/jaxp/src/org/w3c/dom/events/EventException.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/EventException.java rename to jaxp/src/org/w3c/dom/events/EventException.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/EventListener.java b/jaxp/src/org/w3c/dom/events/EventListener.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/EventListener.java rename to jaxp/src/org/w3c/dom/events/EventListener.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/EventTarget.java b/jaxp/src/org/w3c/dom/events/EventTarget.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/EventTarget.java rename to jaxp/src/org/w3c/dom/events/EventTarget.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/MouseEvent.java b/jaxp/src/org/w3c/dom/events/MouseEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/MouseEvent.java rename to jaxp/src/org/w3c/dom/events/MouseEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/MutationEvent.java b/jaxp/src/org/w3c/dom/events/MutationEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/MutationEvent.java rename to jaxp/src/org/w3c/dom/events/MutationEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/events/UIEvent.java b/jaxp/src/org/w3c/dom/events/UIEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/events/UIEvent.java rename to jaxp/src/org/w3c/dom/events/UIEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLAnchorElement.java b/jaxp/src/org/w3c/dom/html/HTMLAnchorElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLAnchorElement.java rename to jaxp/src/org/w3c/dom/html/HTMLAnchorElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLAppletElement.java b/jaxp/src/org/w3c/dom/html/HTMLAppletElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLAppletElement.java rename to jaxp/src/org/w3c/dom/html/HTMLAppletElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLAreaElement.java b/jaxp/src/org/w3c/dom/html/HTMLAreaElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLAreaElement.java rename to jaxp/src/org/w3c/dom/html/HTMLAreaElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLBRElement.java b/jaxp/src/org/w3c/dom/html/HTMLBRElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLBRElement.java rename to jaxp/src/org/w3c/dom/html/HTMLBRElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLBaseElement.java b/jaxp/src/org/w3c/dom/html/HTMLBaseElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLBaseElement.java rename to jaxp/src/org/w3c/dom/html/HTMLBaseElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java b/jaxp/src/org/w3c/dom/html/HTMLBaseFontElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java rename to jaxp/src/org/w3c/dom/html/HTMLBaseFontElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLBodyElement.java b/jaxp/src/org/w3c/dom/html/HTMLBodyElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLBodyElement.java rename to jaxp/src/org/w3c/dom/html/HTMLBodyElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLButtonElement.java b/jaxp/src/org/w3c/dom/html/HTMLButtonElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLButtonElement.java rename to jaxp/src/org/w3c/dom/html/HTMLButtonElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLCollection.java b/jaxp/src/org/w3c/dom/html/HTMLCollection.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLCollection.java rename to jaxp/src/org/w3c/dom/html/HTMLCollection.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLDListElement.java b/jaxp/src/org/w3c/dom/html/HTMLDListElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLDListElement.java rename to jaxp/src/org/w3c/dom/html/HTMLDListElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java b/jaxp/src/org/w3c/dom/html/HTMLDOMImplementation.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java rename to jaxp/src/org/w3c/dom/html/HTMLDOMImplementation.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java b/jaxp/src/org/w3c/dom/html/HTMLDirectoryElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java rename to jaxp/src/org/w3c/dom/html/HTMLDirectoryElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLDivElement.java b/jaxp/src/org/w3c/dom/html/HTMLDivElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLDivElement.java rename to jaxp/src/org/w3c/dom/html/HTMLDivElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLDocument.java b/jaxp/src/org/w3c/dom/html/HTMLDocument.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLDocument.java rename to jaxp/src/org/w3c/dom/html/HTMLDocument.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLElement.java b/jaxp/src/org/w3c/dom/html/HTMLElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLElement.java rename to jaxp/src/org/w3c/dom/html/HTMLElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java b/jaxp/src/org/w3c/dom/html/HTMLFieldSetElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java rename to jaxp/src/org/w3c/dom/html/HTMLFieldSetElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLFontElement.java b/jaxp/src/org/w3c/dom/html/HTMLFontElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLFontElement.java rename to jaxp/src/org/w3c/dom/html/HTMLFontElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLFormElement.java b/jaxp/src/org/w3c/dom/html/HTMLFormElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLFormElement.java rename to jaxp/src/org/w3c/dom/html/HTMLFormElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLFrameElement.java b/jaxp/src/org/w3c/dom/html/HTMLFrameElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLFrameElement.java rename to jaxp/src/org/w3c/dom/html/HTMLFrameElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java b/jaxp/src/org/w3c/dom/html/HTMLFrameSetElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java rename to jaxp/src/org/w3c/dom/html/HTMLFrameSetElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLHRElement.java b/jaxp/src/org/w3c/dom/html/HTMLHRElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLHRElement.java rename to jaxp/src/org/w3c/dom/html/HTMLHRElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLHeadElement.java b/jaxp/src/org/w3c/dom/html/HTMLHeadElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLHeadElement.java rename to jaxp/src/org/w3c/dom/html/HTMLHeadElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLHeadingElement.java b/jaxp/src/org/w3c/dom/html/HTMLHeadingElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLHeadingElement.java rename to jaxp/src/org/w3c/dom/html/HTMLHeadingElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLHtmlElement.java b/jaxp/src/org/w3c/dom/html/HTMLHtmlElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLHtmlElement.java rename to jaxp/src/org/w3c/dom/html/HTMLHtmlElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLIFrameElement.java b/jaxp/src/org/w3c/dom/html/HTMLIFrameElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLIFrameElement.java rename to jaxp/src/org/w3c/dom/html/HTMLIFrameElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLImageElement.java b/jaxp/src/org/w3c/dom/html/HTMLImageElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLImageElement.java rename to jaxp/src/org/w3c/dom/html/HTMLImageElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLInputElement.java b/jaxp/src/org/w3c/dom/html/HTMLInputElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLInputElement.java rename to jaxp/src/org/w3c/dom/html/HTMLInputElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java b/jaxp/src/org/w3c/dom/html/HTMLIsIndexElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java rename to jaxp/src/org/w3c/dom/html/HTMLIsIndexElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLLIElement.java b/jaxp/src/org/w3c/dom/html/HTMLLIElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLLIElement.java rename to jaxp/src/org/w3c/dom/html/HTMLLIElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLLabelElement.java b/jaxp/src/org/w3c/dom/html/HTMLLabelElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLLabelElement.java rename to jaxp/src/org/w3c/dom/html/HTMLLabelElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLLegendElement.java b/jaxp/src/org/w3c/dom/html/HTMLLegendElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLLegendElement.java rename to jaxp/src/org/w3c/dom/html/HTMLLegendElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLLinkElement.java b/jaxp/src/org/w3c/dom/html/HTMLLinkElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLLinkElement.java rename to jaxp/src/org/w3c/dom/html/HTMLLinkElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLMapElement.java b/jaxp/src/org/w3c/dom/html/HTMLMapElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLMapElement.java rename to jaxp/src/org/w3c/dom/html/HTMLMapElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLMenuElement.java b/jaxp/src/org/w3c/dom/html/HTMLMenuElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLMenuElement.java rename to jaxp/src/org/w3c/dom/html/HTMLMenuElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLMetaElement.java b/jaxp/src/org/w3c/dom/html/HTMLMetaElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLMetaElement.java rename to jaxp/src/org/w3c/dom/html/HTMLMetaElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLModElement.java b/jaxp/src/org/w3c/dom/html/HTMLModElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLModElement.java rename to jaxp/src/org/w3c/dom/html/HTMLModElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLOListElement.java b/jaxp/src/org/w3c/dom/html/HTMLOListElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLOListElement.java rename to jaxp/src/org/w3c/dom/html/HTMLOListElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLObjectElement.java b/jaxp/src/org/w3c/dom/html/HTMLObjectElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLObjectElement.java rename to jaxp/src/org/w3c/dom/html/HTMLObjectElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java b/jaxp/src/org/w3c/dom/html/HTMLOptGroupElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java rename to jaxp/src/org/w3c/dom/html/HTMLOptGroupElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLOptionElement.java b/jaxp/src/org/w3c/dom/html/HTMLOptionElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLOptionElement.java rename to jaxp/src/org/w3c/dom/html/HTMLOptionElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLParagraphElement.java b/jaxp/src/org/w3c/dom/html/HTMLParagraphElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLParagraphElement.java rename to jaxp/src/org/w3c/dom/html/HTMLParagraphElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLParamElement.java b/jaxp/src/org/w3c/dom/html/HTMLParamElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLParamElement.java rename to jaxp/src/org/w3c/dom/html/HTMLParamElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLPreElement.java b/jaxp/src/org/w3c/dom/html/HTMLPreElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLPreElement.java rename to jaxp/src/org/w3c/dom/html/HTMLPreElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLQuoteElement.java b/jaxp/src/org/w3c/dom/html/HTMLQuoteElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLQuoteElement.java rename to jaxp/src/org/w3c/dom/html/HTMLQuoteElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLScriptElement.java b/jaxp/src/org/w3c/dom/html/HTMLScriptElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLScriptElement.java rename to jaxp/src/org/w3c/dom/html/HTMLScriptElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLSelectElement.java b/jaxp/src/org/w3c/dom/html/HTMLSelectElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLSelectElement.java rename to jaxp/src/org/w3c/dom/html/HTMLSelectElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLStyleElement.java b/jaxp/src/org/w3c/dom/html/HTMLStyleElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLStyleElement.java rename to jaxp/src/org/w3c/dom/html/HTMLStyleElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableCaptionElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableCaptionElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableCellElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableCellElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableCellElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableCellElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableColElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableColElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableColElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableColElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableRowElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableRowElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableRowElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableRowElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java b/jaxp/src/org/w3c/dom/html/HTMLTableSectionElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTableSectionElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java b/jaxp/src/org/w3c/dom/html/HTMLTextAreaElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTextAreaElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLTitleElement.java b/jaxp/src/org/w3c/dom/html/HTMLTitleElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLTitleElement.java rename to jaxp/src/org/w3c/dom/html/HTMLTitleElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/html/HTMLUListElement.java b/jaxp/src/org/w3c/dom/html/HTMLUListElement.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/html/HTMLUListElement.java rename to jaxp/src/org/w3c/dom/html/HTMLUListElement.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/DOMImplementationLS.java b/jaxp/src/org/w3c/dom/ls/DOMImplementationLS.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/DOMImplementationLS.java rename to jaxp/src/org/w3c/dom/ls/DOMImplementationLS.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSException.java b/jaxp/src/org/w3c/dom/ls/LSException.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSException.java rename to jaxp/src/org/w3c/dom/ls/LSException.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSInput.java b/jaxp/src/org/w3c/dom/ls/LSInput.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSInput.java rename to jaxp/src/org/w3c/dom/ls/LSInput.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSLoadEvent.java b/jaxp/src/org/w3c/dom/ls/LSLoadEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSLoadEvent.java rename to jaxp/src/org/w3c/dom/ls/LSLoadEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSOutput.java b/jaxp/src/org/w3c/dom/ls/LSOutput.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSOutput.java rename to jaxp/src/org/w3c/dom/ls/LSOutput.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSParser.java b/jaxp/src/org/w3c/dom/ls/LSParser.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSParser.java rename to jaxp/src/org/w3c/dom/ls/LSParser.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSParserFilter.java b/jaxp/src/org/w3c/dom/ls/LSParserFilter.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSParserFilter.java rename to jaxp/src/org/w3c/dom/ls/LSParserFilter.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSProgressEvent.java b/jaxp/src/org/w3c/dom/ls/LSProgressEvent.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSProgressEvent.java rename to jaxp/src/org/w3c/dom/ls/LSProgressEvent.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSResourceResolver.java b/jaxp/src/org/w3c/dom/ls/LSResourceResolver.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSResourceResolver.java rename to jaxp/src/org/w3c/dom/ls/LSResourceResolver.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSSerializer.java b/jaxp/src/org/w3c/dom/ls/LSSerializer.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSSerializer.java rename to jaxp/src/org/w3c/dom/ls/LSSerializer.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ls/LSSerializerFilter.java b/jaxp/src/org/w3c/dom/ls/LSSerializerFilter.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ls/LSSerializerFilter.java rename to jaxp/src/org/w3c/dom/ls/LSSerializerFilter.java diff --git a/jaxp/src/share/classes/org/w3c/dom/package.html b/jaxp/src/org/w3c/dom/package.html similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/package.html rename to jaxp/src/org/w3c/dom/package.html diff --git a/jaxp/src/share/classes/org/w3c/dom/ranges/DocumentRange.java b/jaxp/src/org/w3c/dom/ranges/DocumentRange.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ranges/DocumentRange.java rename to jaxp/src/org/w3c/dom/ranges/DocumentRange.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ranges/Range.java b/jaxp/src/org/w3c/dom/ranges/Range.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ranges/Range.java rename to jaxp/src/org/w3c/dom/ranges/Range.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ranges/RangeException.java b/jaxp/src/org/w3c/dom/ranges/RangeException.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ranges/RangeException.java rename to jaxp/src/org/w3c/dom/ranges/RangeException.java diff --git a/jaxp/src/share/classes/org/w3c/dom/ranges/package.html b/jaxp/src/org/w3c/dom/ranges/package.html similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/ranges/package.html rename to jaxp/src/org/w3c/dom/ranges/package.html diff --git a/jaxp/src/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java b/jaxp/src/org/w3c/dom/stylesheets/DocumentStyle.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java rename to jaxp/src/org/w3c/dom/stylesheets/DocumentStyle.java diff --git a/jaxp/src/share/classes/org/w3c/dom/stylesheets/LinkStyle.java b/jaxp/src/org/w3c/dom/stylesheets/LinkStyle.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/stylesheets/LinkStyle.java rename to jaxp/src/org/w3c/dom/stylesheets/LinkStyle.java diff --git a/jaxp/src/share/classes/org/w3c/dom/stylesheets/MediaList.java b/jaxp/src/org/w3c/dom/stylesheets/MediaList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/stylesheets/MediaList.java rename to jaxp/src/org/w3c/dom/stylesheets/MediaList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/stylesheets/StyleSheet.java b/jaxp/src/org/w3c/dom/stylesheets/StyleSheet.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/stylesheets/StyleSheet.java rename to jaxp/src/org/w3c/dom/stylesheets/StyleSheet.java diff --git a/jaxp/src/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java b/jaxp/src/org/w3c/dom/stylesheets/StyleSheetList.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java rename to jaxp/src/org/w3c/dom/stylesheets/StyleSheetList.java diff --git a/jaxp/src/share/classes/org/w3c/dom/traversal/DocumentTraversal.java b/jaxp/src/org/w3c/dom/traversal/DocumentTraversal.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/traversal/DocumentTraversal.java rename to jaxp/src/org/w3c/dom/traversal/DocumentTraversal.java diff --git a/jaxp/src/share/classes/org/w3c/dom/traversal/NodeFilter.java b/jaxp/src/org/w3c/dom/traversal/NodeFilter.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/traversal/NodeFilter.java rename to jaxp/src/org/w3c/dom/traversal/NodeFilter.java diff --git a/jaxp/src/share/classes/org/w3c/dom/traversal/NodeIterator.java b/jaxp/src/org/w3c/dom/traversal/NodeIterator.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/traversal/NodeIterator.java rename to jaxp/src/org/w3c/dom/traversal/NodeIterator.java diff --git a/jaxp/src/share/classes/org/w3c/dom/traversal/TreeWalker.java b/jaxp/src/org/w3c/dom/traversal/TreeWalker.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/traversal/TreeWalker.java rename to jaxp/src/org/w3c/dom/traversal/TreeWalker.java diff --git a/jaxp/src/share/classes/org/w3c/dom/views/AbstractView.java b/jaxp/src/org/w3c/dom/views/AbstractView.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/views/AbstractView.java rename to jaxp/src/org/w3c/dom/views/AbstractView.java diff --git a/jaxp/src/share/classes/org/w3c/dom/views/DocumentView.java b/jaxp/src/org/w3c/dom/views/DocumentView.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/views/DocumentView.java rename to jaxp/src/org/w3c/dom/views/DocumentView.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/COPYRIGHT.html b/jaxp/src/org/w3c/dom/xpath/COPYRIGHT.html similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/COPYRIGHT.html rename to jaxp/src/org/w3c/dom/xpath/COPYRIGHT.html diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathEvaluator.java b/jaxp/src/org/w3c/dom/xpath/XPathEvaluator.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathEvaluator.java rename to jaxp/src/org/w3c/dom/xpath/XPathEvaluator.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathException.java b/jaxp/src/org/w3c/dom/xpath/XPathException.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathException.java rename to jaxp/src/org/w3c/dom/xpath/XPathException.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathExpression.java b/jaxp/src/org/w3c/dom/xpath/XPathExpression.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathExpression.java rename to jaxp/src/org/w3c/dom/xpath/XPathExpression.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathNSResolver.java b/jaxp/src/org/w3c/dom/xpath/XPathNSResolver.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathNSResolver.java rename to jaxp/src/org/w3c/dom/xpath/XPathNSResolver.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathNamespace.java b/jaxp/src/org/w3c/dom/xpath/XPathNamespace.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathNamespace.java rename to jaxp/src/org/w3c/dom/xpath/XPathNamespace.java diff --git a/jaxp/src/share/classes/org/w3c/dom/xpath/XPathResult.java b/jaxp/src/org/w3c/dom/xpath/XPathResult.java similarity index 100% rename from jaxp/src/share/classes/org/w3c/dom/xpath/XPathResult.java rename to jaxp/src/org/w3c/dom/xpath/XPathResult.java diff --git a/jaxp/src/share/classes/org/xml/sax/AttributeList.java b/jaxp/src/org/xml/sax/AttributeList.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/AttributeList.java rename to jaxp/src/org/xml/sax/AttributeList.java diff --git a/jaxp/src/share/classes/org/xml/sax/Attributes.java b/jaxp/src/org/xml/sax/Attributes.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/Attributes.java rename to jaxp/src/org/xml/sax/Attributes.java diff --git a/jaxp/src/share/classes/org/xml/sax/COPYING b/jaxp/src/org/xml/sax/COPYING similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/COPYING rename to jaxp/src/org/xml/sax/COPYING diff --git a/jaxp/src/share/classes/org/xml/sax/COPYING.txt b/jaxp/src/org/xml/sax/COPYING.txt similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/COPYING.txt rename to jaxp/src/org/xml/sax/COPYING.txt diff --git a/jaxp/src/share/classes/org/xml/sax/ContentHandler.java b/jaxp/src/org/xml/sax/ContentHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ContentHandler.java rename to jaxp/src/org/xml/sax/ContentHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/DTDHandler.java b/jaxp/src/org/xml/sax/DTDHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/DTDHandler.java rename to jaxp/src/org/xml/sax/DTDHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/DocumentHandler.java b/jaxp/src/org/xml/sax/DocumentHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/DocumentHandler.java rename to jaxp/src/org/xml/sax/DocumentHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/EntityResolver.java b/jaxp/src/org/xml/sax/EntityResolver.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/EntityResolver.java rename to jaxp/src/org/xml/sax/EntityResolver.java diff --git a/jaxp/src/share/classes/org/xml/sax/ErrorHandler.java b/jaxp/src/org/xml/sax/ErrorHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ErrorHandler.java rename to jaxp/src/org/xml/sax/ErrorHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/HandlerBase.java b/jaxp/src/org/xml/sax/HandlerBase.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/HandlerBase.java rename to jaxp/src/org/xml/sax/HandlerBase.java diff --git a/jaxp/src/share/classes/org/xml/sax/InputSource.java b/jaxp/src/org/xml/sax/InputSource.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/InputSource.java rename to jaxp/src/org/xml/sax/InputSource.java diff --git a/jaxp/src/share/classes/org/xml/sax/Locator.java b/jaxp/src/org/xml/sax/Locator.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/Locator.java rename to jaxp/src/org/xml/sax/Locator.java diff --git a/jaxp/src/share/classes/org/xml/sax/Parser.java b/jaxp/src/org/xml/sax/Parser.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/Parser.java rename to jaxp/src/org/xml/sax/Parser.java diff --git a/jaxp/src/share/classes/org/xml/sax/SAXException.java b/jaxp/src/org/xml/sax/SAXException.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/SAXException.java rename to jaxp/src/org/xml/sax/SAXException.java diff --git a/jaxp/src/share/classes/org/xml/sax/SAXNotRecognizedException.java b/jaxp/src/org/xml/sax/SAXNotRecognizedException.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/SAXNotRecognizedException.java rename to jaxp/src/org/xml/sax/SAXNotRecognizedException.java diff --git a/jaxp/src/share/classes/org/xml/sax/SAXNotSupportedException.java b/jaxp/src/org/xml/sax/SAXNotSupportedException.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/SAXNotSupportedException.java rename to jaxp/src/org/xml/sax/SAXNotSupportedException.java diff --git a/jaxp/src/share/classes/org/xml/sax/SAXParseException.java b/jaxp/src/org/xml/sax/SAXParseException.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/SAXParseException.java rename to jaxp/src/org/xml/sax/SAXParseException.java diff --git a/jaxp/src/share/classes/org/xml/sax/XMLFilter.java b/jaxp/src/org/xml/sax/XMLFilter.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/XMLFilter.java rename to jaxp/src/org/xml/sax/XMLFilter.java diff --git a/jaxp/src/share/classes/org/xml/sax/XMLReader.java b/jaxp/src/org/xml/sax/XMLReader.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/XMLReader.java rename to jaxp/src/org/xml/sax/XMLReader.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/Attributes2.java b/jaxp/src/org/xml/sax/ext/Attributes2.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/Attributes2.java rename to jaxp/src/org/xml/sax/ext/Attributes2.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/Attributes2Impl.java b/jaxp/src/org/xml/sax/ext/Attributes2Impl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/Attributes2Impl.java rename to jaxp/src/org/xml/sax/ext/Attributes2Impl.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/DeclHandler.java b/jaxp/src/org/xml/sax/ext/DeclHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/DeclHandler.java rename to jaxp/src/org/xml/sax/ext/DeclHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/DefaultHandler2.java b/jaxp/src/org/xml/sax/ext/DefaultHandler2.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/DefaultHandler2.java rename to jaxp/src/org/xml/sax/ext/DefaultHandler2.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/EntityResolver2.java b/jaxp/src/org/xml/sax/ext/EntityResolver2.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/EntityResolver2.java rename to jaxp/src/org/xml/sax/ext/EntityResolver2.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/LexicalHandler.java b/jaxp/src/org/xml/sax/ext/LexicalHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/LexicalHandler.java rename to jaxp/src/org/xml/sax/ext/LexicalHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/Locator2.java b/jaxp/src/org/xml/sax/ext/Locator2.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/Locator2.java rename to jaxp/src/org/xml/sax/ext/Locator2.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/Locator2Impl.java b/jaxp/src/org/xml/sax/ext/Locator2Impl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/Locator2Impl.java rename to jaxp/src/org/xml/sax/ext/Locator2Impl.java diff --git a/jaxp/src/share/classes/org/xml/sax/ext/package.html b/jaxp/src/org/xml/sax/ext/package.html similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/ext/package.html rename to jaxp/src/org/xml/sax/ext/package.html diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/AttributeListImpl.java b/jaxp/src/org/xml/sax/helpers/AttributeListImpl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/AttributeListImpl.java rename to jaxp/src/org/xml/sax/helpers/AttributeListImpl.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/AttributesImpl.java b/jaxp/src/org/xml/sax/helpers/AttributesImpl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/AttributesImpl.java rename to jaxp/src/org/xml/sax/helpers/AttributesImpl.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/DefaultHandler.java b/jaxp/src/org/xml/sax/helpers/DefaultHandler.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/DefaultHandler.java rename to jaxp/src/org/xml/sax/helpers/DefaultHandler.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/LocatorImpl.java b/jaxp/src/org/xml/sax/helpers/LocatorImpl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/LocatorImpl.java rename to jaxp/src/org/xml/sax/helpers/LocatorImpl.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/NamespaceSupport.java b/jaxp/src/org/xml/sax/helpers/NamespaceSupport.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/NamespaceSupport.java rename to jaxp/src/org/xml/sax/helpers/NamespaceSupport.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/NewInstance.java b/jaxp/src/org/xml/sax/helpers/NewInstance.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/NewInstance.java rename to jaxp/src/org/xml/sax/helpers/NewInstance.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/ParserAdapter.java b/jaxp/src/org/xml/sax/helpers/ParserAdapter.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/ParserAdapter.java rename to jaxp/src/org/xml/sax/helpers/ParserAdapter.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/ParserFactory.java b/jaxp/src/org/xml/sax/helpers/ParserFactory.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/ParserFactory.java rename to jaxp/src/org/xml/sax/helpers/ParserFactory.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/XMLFilterImpl.java b/jaxp/src/org/xml/sax/helpers/XMLFilterImpl.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/XMLFilterImpl.java rename to jaxp/src/org/xml/sax/helpers/XMLFilterImpl.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/XMLReaderAdapter.java b/jaxp/src/org/xml/sax/helpers/XMLReaderAdapter.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/XMLReaderAdapter.java rename to jaxp/src/org/xml/sax/helpers/XMLReaderAdapter.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/XMLReaderFactory.java b/jaxp/src/org/xml/sax/helpers/XMLReaderFactory.java similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/XMLReaderFactory.java rename to jaxp/src/org/xml/sax/helpers/XMLReaderFactory.java diff --git a/jaxp/src/share/classes/org/xml/sax/helpers/package.html b/jaxp/src/org/xml/sax/helpers/package.html similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/helpers/package.html rename to jaxp/src/org/xml/sax/helpers/package.html diff --git a/jaxp/src/share/classes/org/xml/sax/package.html b/jaxp/src/org/xml/sax/package.html similarity index 100% rename from jaxp/src/share/classes/org/xml/sax/package.html rename to jaxp/src/org/xml/sax/package.html From 0ad7c6fe6de1ad7608cd12cc372f85753817a326 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:34:47 -0700 Subject: [PATCH 38/82] Added tag jdk8-b34 for changeset 863d9350e84b --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 91363f4c6ee..7314e1ff24a 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -155,3 +155,4 @@ cc771d92284f71765eca14d6d08703c4af254c04 jdk8-b21 0b66f43b89a6c0ac1c15d7ec51992c541cdc9089 jdk8-b31 88176171e940f02916a312c265a34c32552a8376 jdk8-b32 42f275168fa5d9e7c70b246614dca8cf81f52c2e jdk8-b33 +894a478d2c4819a1a0f230bd7bdd09f3b2de9a8c jdk8-b34 From 5099649ff0606aca45e42eddc75971a02c37d056 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:34:50 -0700 Subject: [PATCH 39/82] Added tag jdk8-b34 for changeset 6ec49b7a7e19 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index e4f756fb9e2..0d4513fe159 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -155,3 +155,4 @@ e45d6b406d5f91ff5256a5c82456ab1e7eb8becd jdk8-b25 1954151dfae8f73db24e396380f7c02bdd47c486 jdk8-b31 5d820cb6b1afd75b619e7fd69e4f2b0eb1d5d6a1 jdk8-b32 1e2ac1ea3f6c32a62bf88f3fa330120c30db59cb jdk8-b33 +e24c5cc8b0f7cc48374eef0f995838fb4823e0eb jdk8-b34 From 5ed629de9f0026f6d061cc7f4aace2330c73e929 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:34:57 -0700 Subject: [PATCH 40/82] Added tag jdk8-b34 for changeset c71d5b52c0e8 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 670f8c70f32..63988b7a690 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -238,3 +238,4 @@ f4767e53d6e0d5da7e3f1775904076cce54247c1 hs24-b04 cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06 785bcf415ead2eaa5f6677aaf528481008140bac jdk8-b33 7c6aba65acd2c334f1c3512b574f9038cddac24b hs24-b07 +f284b08835584517c1ca3dd67341f569e763841f jdk8-b34 From a1a5bd99c1a8521ed840c0d8280179dcd85dd77d Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:35:15 -0700 Subject: [PATCH 41/82] Added tag jdk8-b34 for changeset 664a26130786 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 3c1a9720db2..150c8db72e1 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -155,3 +155,4 @@ f3244c1f04864d35c41fa8d13669faf4f65b81e2 jdk8-b28 94aabe098916440ae7911866311c9617d8481a36 jdk8-b31 60960fbc75df8be4c1a2504aa69fc1428cc94f93 jdk8-b32 9bcab2b8b8ea578e594916a3d3df6dbec7984bcb jdk8-b33 +8b91a897a04486cf901af0de7f684a3eb31f121f jdk8-b34 From a19cce278c78eb0880cd625e4b0c36ecd376727c Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:35:19 -0700 Subject: [PATCH 42/82] Added tag jdk8-b34 for changeset f2ca1609c83c --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index d0bd7a3b461..df67eb70f47 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -155,3 +155,4 @@ b376d901e006cd9e0c59733c84e190aace23eec6 jdk8-b25 4c41c6d0e15de3b56919a5ba0a0f248a2d07f2b2 jdk8-b31 017a7dbfaa92f5a8b144e6c890d1cebdaecaf681 jdk8-b32 ea80b2388dce711fbde8e4fd6e07c2c64ad16743 jdk8-b33 +f1d020a49c8c33667fb10c8caa255206a78a3675 jdk8-b34 From b127787553fd34699f39437f9c2be5871cbe842d Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:35:30 -0700 Subject: [PATCH 43/82] Added tag jdk8-b34 for changeset 17ed142e28eb --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index f6f4a8d7971..3711a50fa63 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -155,3 +155,4 @@ cdbb33303ea344d5e9013e2dd642e7a6e7768db6 jdk8-b30 27f0c08c427c65fcab6917edf646f59058e59524 jdk8-b31 ddfe5562f61f54ed2121ac0c73b688b94f3e66b5 jdk8-b32 78cea258caaba3980ba186c426da82c8fe41bfd7 jdk8-b33 +29b680393f33bf953688c17d93aca7a870ca4024 jdk8-b34 From 275576b2185cab8333c0f2fc1d05d5263493fa5e Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 12 Apr 2012 09:35:37 -0700 Subject: [PATCH 44/82] Added tag jdk8-b34 for changeset c529d3f99946 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 0f30997a9a3..5a574206090 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -155,3 +155,4 @@ e974e82abe51ef66dc32bb6ab5d0733753d3c7d7 jdk8-b29 b28cfbe7e8b196da954bed9a22bfd790e55333aa jdk8-b31 be069d72dde2bfe6f996c46325a320961ca854c2 jdk8-b32 46831c72b7f6c69fef2cc2935001863643a65f94 jdk8-b33 +6b105afbb77ca9600a99eade31f686d070c70581 jdk8-b34 From 17d3cafd5be1918f8532973e90e58c60b3c6d47d Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Thu, 12 Apr 2012 10:43:04 -0700 Subject: [PATCH 45/82] 7156873: (zipfs) FileSystems.newFileSystem(uri, env) fails for uri with escaped octets To use URI.getRawSchemeSpecificPart() to get the scheme part of the uri Reviewed-by: alanb, chegar --- .../sun/nio/zipfs/ZipFileSystemProvider.java | 2 +- jdk/test/demo/zipfs/ZFSTests.java | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 jdk/test/demo/zipfs/ZFSTests.java diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java index 49bb826e003..5c844bca027 100644 --- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java +++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java @@ -78,7 +78,7 @@ public class ZipFileSystemProvider extends FileSystemProvider { } try { // only support legacy JAR URL syntax jar:{uri}!/{entry} for now - String spec = uri.getSchemeSpecificPart(); + String spec = uri.getRawSchemeSpecificPart(); int sep = spec.indexOf("!/"); if (sep != -1) spec = spec.substring(0, sep); diff --git a/jdk/test/demo/zipfs/ZFSTests.java b/jdk/test/demo/zipfs/ZFSTests.java new file mode 100644 index 00000000000..c5d6e8c9e9f --- /dev/null +++ b/jdk/test/demo/zipfs/ZFSTests.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2012, 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 7156873 + @summary ZipFileSystem regression tests + */ + + +import java.net.URI; +import java.nio.file.*; +import java.util.Map; +import java.util.HashMap; + +public class ZFSTests { + + public static void main(String[] args) throws Throwable { + test7156873(); + } + + static void test7156873() throws Throwable { + String DIRWITHSPACE = "testdir with spaces"; + Path dir = Paths.get(DIRWITHSPACE); + Path path = Paths.get(DIRWITHSPACE, "file.zip"); + try { + Files.createDirectory(dir); + URI uri = URI.create("jar:" + path.toUri()); + Map env = new HashMap(); + env.put("create", "true"); + try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {} + } finally { + Files.deleteIfExists(path); + Files.deleteIfExists(dir); + } + } +} From d4817a1e4fed62485ba167c08d2e0b9c6986c6ef Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Thu, 12 Apr 2012 10:55:51 -0700 Subject: [PATCH 46/82] 7152690: Initialization error with charset SJIS_0213 when security manager is enabled To use doPrivileged block to wrap the data reading code Reviewed-by: alanb --- .../classes/sun/nio/cs/ext/SJIS_0213.java | 12 +++++-- jdk/test/sun/nio/cs/TestSJIS0213_SM.java | 36 +++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 jdk/test/sun/nio/cs/TestSJIS0213_SM.java diff --git a/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java b/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java index 6c47bd64016..10fd8b726a6 100644 --- a/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java +++ b/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2012, 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 @@ -31,6 +31,8 @@ import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; import java.nio.charset.CharsetDecoder; import java.nio.charset.CoderResult; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.Arrays; import sun.nio.cs.CharsetMapping; @@ -73,8 +75,12 @@ public class SJIS_0213 extends Charset { return new Encoder(this); } - static CharsetMapping mapping = - CharsetMapping.get(SJIS_0213.class.getResourceAsStream("sjis0213.dat")); + static CharsetMapping mapping = AccessController.doPrivileged( + new PrivilegedAction() { + public CharsetMapping run() { + return CharsetMapping.get(SJIS_0213.class.getResourceAsStream("sjis0213.dat")); + } + }); protected static class Decoder extends CharsetDecoder { protected static final char UNMAPPABLE = CharsetMapping.UNMAPPABLE_DECODING; diff --git a/jdk/test/sun/nio/cs/TestSJIS0213_SM.java b/jdk/test/sun/nio/cs/TestSJIS0213_SM.java new file mode 100644 index 00000000000..753cfb784f0 --- /dev/null +++ b/jdk/test/sun/nio/cs/TestSJIS0213_SM.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2012, 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 7152690 + @summary Initialize SJIS_0213 charset with SecurityManager enabled + */ +public class TestSJIS0213_SM { + public static void main(String[] args) throws Throwable { + SecurityManager sm = System.getSecurityManager(); + if (sm == null) { + System.setSecurityManager(new SecurityManager()); + } + java.nio.charset.Charset.forName("SJIS_0213"); + } +} From 1f4653910f4e6932dd3c057f78722fc0a357e3b3 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Thu, 12 Apr 2012 15:01:41 -0700 Subject: [PATCH 47/82] 7067045: replaceAll("\u20ac", "$"); causses java.lang.StringIndexOutOfBoundsExceptio Updated to throw IAE instead. Reviewed-by: lancea --- jdk/src/share/classes/java/util/regex/Matcher.java | 11 +++++++---- jdk/test/java/util/regex/RegExTest.java | 12 ++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/java/util/regex/Matcher.java b/jdk/src/share/classes/java/util/regex/Matcher.java index d654790b24c..5e437e6e8be 100644 --- a/jdk/src/share/classes/java/util/regex/Matcher.java +++ b/jdk/src/share/classes/java/util/regex/Matcher.java @@ -759,16 +759,19 @@ public final class Matcher implements MatchResult { char nextChar = replacement.charAt(cursor); if (nextChar == '\\') { cursor++; + if (cursor == replacement.length()) + throw new IllegalArgumentException( + "character to be escaped is missing"); nextChar = replacement.charAt(cursor); result.append(nextChar); cursor++; } else if (nextChar == '$') { // Skip past $ cursor++; - // A StringIndexOutOfBoundsException is thrown if - // this "$" is the last character in replacement - // string in current implementation, a IAE might be - // more appropriate. + // Throw IAE if this "$" is the last character in replacement + if (cursor == replacement.length()) + throw new IllegalArgumentException( + "Illegal group reference: group index is missing"); nextChar = replacement.charAt(cursor); int refNum = -1; if (nextChar == '{') { diff --git a/jdk/test/java/util/regex/RegExTest.java b/jdk/test/java/util/regex/RegExTest.java index 159e9afddd9..f583769ecb2 100644 --- a/jdk/test/java/util/regex/RegExTest.java +++ b/jdk/test/java/util/regex/RegExTest.java @@ -33,6 +33,7 @@ * 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940 * 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133 * 6350801 6676425 6878475 6919132 6931676 6948903 6990617 7014645 7039066 + * 7067045 */ import java.util.regex.*; @@ -852,6 +853,17 @@ public class RegExTest { if (!result.equals(toSupplementaries("zzz\\t$\\$zzz"))) failCount++; + // IAE should be thrown if backslash or '$' is the last character + // in replacement string + try { + "\uac00".replaceAll("\uac00", "$"); + "\uac00".replaceAll("\uac00", "\\"); + failCount++; + } catch (IllegalArgumentException iie) { + } catch (Exception e) { + failCount++; + } + report("Literal replacement"); } From 9de05ceb7a3614cd1a1d3eecf41bc3570fcaee55 Mon Sep 17 00:00:00 2001 From: "Daniel D. Daugherty" Date: Thu, 12 Apr 2012 16:23:24 -0700 Subject: [PATCH 48/82] 7160895: tools/launcher/VersionCheck.java attempts to launch .debuginfo Do not install .debuginfo files in bin dir. Reviewed-by: ksrini, sspitsyn --- jdk/make/common/Program.gmk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jdk/make/common/Program.gmk b/jdk/make/common/Program.gmk index 5cc83429b27..4e211d84600 100644 --- a/jdk/make/common/Program.gmk +++ b/jdk/make/common/Program.gmk @@ -268,6 +268,11 @@ else $(ZIPEXE) -q $(@F).diz $(@F).debuginfo ; \ $(RM) $(@F).debuginfo ; \ ) + # save ZIP'ed debug info with rest of the program's build artifacts + $(MV) $@.diz $(OBJDIR) + else + # save debug info with rest of the program's build artifacts + $(MV) $@.debuginfo $(OBJDIR) endif endif # PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS endif # ENABLE_FULL_DEBUG_SYMBOLS From ac620e811d7ef19affc4425d1e6b31ffe9a349e3 Mon Sep 17 00:00:00 2001 From: Sean Mullan Date: Fri, 13 Apr 2012 09:46:25 -0400 Subject: [PATCH 49/82] 7152564: Improve CodeSource.matchLocation(CodeSource) performance 7155693: CodeSource.matchLocation getPort test can be improved Reviewed-by: chegar --- .../classes/java/security/CodeSource.java | 178 +++++++++--------- .../java/security/CodeSource/Implies.java | 31 ++- 2 files changed, 116 insertions(+), 93 deletions(-) diff --git a/jdk/src/share/classes/java/security/CodeSource.java b/jdk/src/share/classes/java/security/CodeSource.java index b821a4ec9c1..94cdcef59e4 100644 --- a/jdk/src/share/classes/java/security/CodeSource.java +++ b/jdk/src/share/classes/java/security/CodeSource.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, 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 @@ -114,7 +114,7 @@ public class CodeSource implements java.io.Serializable { * * @return a hash code value for this object. */ - + @Override public int hashCode() { if (location != null) return location.hashCode(); @@ -133,6 +133,7 @@ public class CodeSource implements java.io.Serializable { * * @return true if the objects are considered equal, false otherwise. */ + @Override public boolean equals(Object obj) { if (obj == this) return true; @@ -231,10 +232,10 @@ public class CodeSource implements java.io.Serializable { /** * Returns true if this CodeSource object "implies" the specified CodeSource. - *

- * More specifically, this method makes the following checks, in order. + *

+ * More specifically, this method makes the following checks. * If any fail, it returns false. If they all succeed, it returns true.

- *

    + *
      *
    • codesource must not be null. *
    • If this object's certificates are not null, then all * of this object's certificates must be present in codesource's @@ -242,14 +243,14 @@ public class CodeSource implements java.io.Serializable { *
    • If this object's location (getLocation()) is not null, then the * following checks are made against this object's location and * codesource's:

      - *

        + *
          *
        • codesource's location must not be null. * *
        • If this object's location * equals codesource's location, then return true. * *
        • This object's protocol (getLocation().getProtocol()) must be - * equal to codesource's protocol. + * equal to codesource's protocol, ignoring case. * *
        • If this object's host (getLocation().getHost()) is not null, * then the SocketPermission @@ -258,7 +259,8 @@ public class CodeSource implements java.io.Serializable { * *
        • If this object's port (getLocation().getPort()) is not * equal to -1 (that is, if a port is specified), it must equal - * codesource's port. + * codesource's port or default port + * (codesource.getLocation().getDefaultPort()). * *
        • If this object's file (getLocation().getFile()) doesn't equal * codesource's file, then the following checks are made: @@ -275,8 +277,8 @@ public class CodeSource implements java.io.Serializable { *
        • If this object's reference (getLocation().getRef()) is * not null, it must equal codesource's reference. * - *
      - *
+ * + * *

* For example, the codesource objects with the following locations * and null certificates all imply @@ -369,92 +371,96 @@ public class CodeSource implements java.io.Serializable { * * @param that CodeSource to compare against */ - private boolean matchLocation(CodeSource that) - { - if (location == null) { - return true; - } + private boolean matchLocation(CodeSource that) { + if (location == null) + return true; - if ((that == null) || (that.location == null)) + if ((that == null) || (that.location == null)) + return false; + + if (location.equals(that.location)) + return true; + + if (!location.getProtocol().equalsIgnoreCase(that.location.getProtocol())) + return false; + + int thisPort = location.getPort(); + if (thisPort != -1) { + int thatPort = that.location.getPort(); + int port = thatPort != -1 ? thatPort + : that.location.getDefaultPort(); + if (thisPort != port) return false; - - if (location.equals(that.location)) - return true; - - if (!location.getProtocol().equals(that.location.getProtocol())) - return false; - - String thisHost = location.getHost(); - String thatHost = that.location.getHost(); - - if (thisHost != null) { - if (("".equals(thisHost) || "localhost".equals(thisHost)) && - ("".equals(thatHost) || "localhost".equals(thatHost))) { - // ok - } else if (!thisHost.equals(thatHost)) { - if (thatHost == null) { - return false; - } - if (this.sp == null) { - this.sp = new SocketPermission(thisHost, "resolve"); - } - if (that.sp == null) { - that.sp = new SocketPermission(thatHost, "resolve"); - } - if (!this.sp.implies(that.sp)) { - return false; - } - } - } - - if (location.getPort() != -1) { - if (location.getPort() != that.location.getPort()) - return false; - } - - if (location.getFile().endsWith("/-")) { - // Matches the directory and (recursively) all files - // and subdirectories contained in that directory. - // For example, "/a/b/-" implies anything that starts with - // "/a/b/" - String thisPath = location.getFile().substring(0, - location.getFile().length()-1); - if (!that.location.getFile().startsWith(thisPath)) - return false; - } else if (location.getFile().endsWith("/*")) { - // Matches the directory and all the files contained in that - // directory. - // For example, "/a/b/*" implies anything that starts with - // "/a/b/" but has no further slashes - int last = that.location.getFile().lastIndexOf('/'); - if (last == -1) - return false; - String thisPath = location.getFile().substring(0, - location.getFile().length()-1); - String thatPath = that.location.getFile().substring(0, last+1); - if (!thatPath.equals(thisPath)) - return false; - } else { - // Exact matches only. - // For example, "/a/b" and "/a/b/" both imply "/a/b/" - if ((!that.location.getFile().equals(location.getFile())) - && (!that.location.getFile().equals(location.getFile()+"/"))) { - return false; - } - } - - if (location.getRef() == null) - return true; - else - return location.getRef().equals(that.location.getRef()); } + if (location.getFile().endsWith("/-")) { + // Matches the directory and (recursively) all files + // and subdirectories contained in that directory. + // For example, "/a/b/-" implies anything that starts with + // "/a/b/" + String thisPath = location.getFile().substring(0, + location.getFile().length()-1); + if (!that.location.getFile().startsWith(thisPath)) + return false; + } else if (location.getFile().endsWith("/*")) { + // Matches the directory and all the files contained in that + // directory. + // For example, "/a/b/*" implies anything that starts with + // "/a/b/" but has no further slashes + int last = that.location.getFile().lastIndexOf('/'); + if (last == -1) + return false; + String thisPath = location.getFile().substring(0, + location.getFile().length()-1); + String thatPath = that.location.getFile().substring(0, last+1); + if (!thatPath.equals(thisPath)) + return false; + } else { + // Exact matches only. + // For example, "/a/b" and "/a/b/" both imply "/a/b/" + if ((!that.location.getFile().equals(location.getFile())) + && (!that.location.getFile().equals(location.getFile()+"/"))) { + return false; + } + } + + if (location.getRef() != null + && !location.getRef().equals(that.location.getRef())) { + return false; + } + + String thisHost = location.getHost(); + String thatHost = that.location.getHost(); + if (thisHost != null) { + if (("".equals(thisHost) || "localhost".equals(thisHost)) && + ("".equals(thatHost) || "localhost".equals(thatHost))) { + // ok + } else if (!thisHost.equals(thatHost)) { + if (thatHost == null) { + return false; + } + if (this.sp == null) { + this.sp = new SocketPermission(thisHost, "resolve"); + } + if (that.sp == null) { + that.sp = new SocketPermission(thatHost, "resolve"); + } + if (!this.sp.implies(that.sp)) { + return false; + } + } + } + // everything matches + return true; + } + /** * Returns a string describing this CodeSource, telling its * URL and certificates. * * @return information about this CodeSource. */ + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("("); diff --git a/jdk/test/java/security/CodeSource/Implies.java b/jdk/test/java/security/CodeSource/Implies.java index bc37dcbed8d..9e4c26bf725 100644 --- a/jdk/test/java/security/CodeSource/Implies.java +++ b/jdk/test/java/security/CodeSource/Implies.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, 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 @@ -23,25 +23,42 @@ /* * @test - * @bug 4866847 - * @summary NullPointerException from CodeSource.matchLocation + * @bug 4866847 7152564 7155693 + * @summary various CodeSource.implies tests */ import java.security.CodeSource; -import java.net.*; +import java.net.URL; public class Implies { public static void main(String[] args) throws Exception { URL thisURL = new URL("http", "localhost", "file"); URL thatURL = new URL("http", null, "file"); + // should not throw NullPointerException + testImplies(thisURL, thatURL, false); + + thisURL = new URL("http", "localhost", "dir/-"); + thatURL = new URL("HTTP", "localhost", "dir/file"); + // protocol check should ignore case + testImplies(thisURL, thatURL, true); + + thisURL = new URL("http", "localhost", 80, "dir/-"); + thatURL = new URL("HTTP", "localhost", "dir/file"); + // port check should match default port of thatURL + testImplies(thisURL, thatURL, true); + + System.out.println("test passed"); + } + + private static void testImplies(URL thisURL, URL thatURL, boolean result) + throws SecurityException + { CodeSource thisCs = new CodeSource(thisURL, (java.security.cert.Certificate[]) null); CodeSource thatCs = new CodeSource(thatURL, (java.security.cert.Certificate[]) null); - - if (thisCs.implies(thatCs)) { + if (thisCs.implies(thatCs) != result) { throw new SecurityException("test failed"); } - System.out.println("test passed"); } } From 8263a06f2142dbe6ad4b8dc48200a0f6128accd5 Mon Sep 17 00:00:00 2001 From: Leonid Romanov Date: Fri, 13 Apr 2012 20:31:47 +0400 Subject: [PATCH 50/82] 7124272: [macosx] VK_DELETE does produce an extraneous character in a TextArea or TextField Reviewed-by: kizune, art --- .../sun/lwawt/macosx/CPlatformResponder.java | 13 +- .../sun/lwawt/macosx/event/NSEvent.java | 6 + jdk/src/macosx/native/sun/awt/AWTEvent.m | 433 ++---------------- 3 files changed, 46 insertions(+), 406 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java index 4a54c4b42c1..7c234ff15c6 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java @@ -158,11 +158,20 @@ final class CPlatformResponder { NSEvent.nsToJavaEventType(eventType); } + char javaChar = NSEvent.nsToJavaChar(testChar, modifierFlags); + // Some keys may generate a KEY_TYPED, but we can't determine + // what that character is. That's likely a bug, but for now we + // just check for CHAR_UNDEFINED. + if (javaChar == KeyEvent.CHAR_UNDEFINED) { + postsTyped = false; + } + + int jmodifiers = NSEvent.nsToJavaKeyModifiers(modifierFlags); long when = System.currentTimeMillis(); peer.dispatchKeyEvent(jeventType, when, jmodifiers, - jkeyCode, testChar, jkeyLocation); + jkeyCode, javaChar, jkeyLocation); // That's the reaction on the PRESSED (not RELEASED) event as it comes to // appear in MacOSX. @@ -172,7 +181,7 @@ final class CPlatformResponder { boolean isMetaDown = (jmodifiers & KeyEvent.META_DOWN_MASK) != 0; if (jeventType == KeyEvent.KEY_PRESSED && postsTyped && !isMetaDown) { peer.dispatchKeyEvent(KeyEvent.KEY_TYPED, when, jmodifiers, - KeyEvent.VK_UNDEFINED, testChar, + KeyEvent.VK_UNDEFINED, javaChar, KeyEvent.KEY_LOCATION_UNKNOWN); } } diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/event/NSEvent.java b/jdk/src/macosx/classes/sun/lwawt/macosx/event/NSEvent.java index 9648da30432..548dc9b13ba 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/event/NSEvent.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/event/NSEvent.java @@ -245,6 +245,12 @@ public final class NSEvent { */ public static native void nsKeyModifiersToJavaKeyInfo(int[] in, int[] out); + /* + * There is a small number of NS characters that need to be converted + * into other characters before we pass them to AWT. + */ + public static native char nsToJavaChar(char nsChar, int modifierFlags); + public static boolean isPopupTrigger(int jmodifiers) { final boolean isRightButtonDown = ((jmodifiers & InputEvent.BUTTON3_DOWN_MASK) != 0); final boolean isLeftButtonDown = ((jmodifiers & InputEvent.BUTTON1_DOWN_MASK) != 0); diff --git a/jdk/src/macosx/native/sun/awt/AWTEvent.m b/jdk/src/macosx/native/sun/awt/AWTEvent.m index 8962392619e..66dfa978a36 100644 --- a/jdk/src/macosx/native/sun/awt/AWTEvent.m +++ b/jdk/src/macosx/native/sun/awt/AWTEvent.m @@ -308,6 +308,9 @@ const nsKeyToJavaModifierTable[] = * Almost all unicode characters just go from NS to Java with no translation. * For the few exceptions, we handle it here with this small table. */ +#define ALL_NS_KEY_MODIFIERS_MASK \ + (NSShiftKeyMask | NSControlKeyMask | NSAlternateKeyMask | NSCommandKeyMask) + static struct _char { NSUInteger modifier; unichar nsChar; @@ -315,17 +318,17 @@ static struct _char { } const charTable[] = { // map enter on keypad to same as return key - {0, NSEnterCharacter, NSNewlineCharacter}, + {0, NSEnterCharacter, NSNewlineCharacter}, // [3134616] return newline instead of carriage return - {0, NSCarriageReturnCharacter, NSNewlineCharacter}, + {0, NSCarriageReturnCharacter, NSNewlineCharacter}, // "delete" means backspace in Java - {0, NSDeleteCharacter, NSBackspaceCharacter}, - {0, NSDeleteFunctionKey, NSDeleteCharacter}, + {ALL_NS_KEY_MODIFIERS_MASK, NSDeleteCharacter, NSBackspaceCharacter}, + {ALL_NS_KEY_MODIFIERS_MASK, NSDeleteFunctionKey, NSDeleteCharacter}, // back-tab is only differentiated from tab by Shift flag - {NSShiftKeyMask, NSBackTabCharacter, NSTabCharacter}, + {NSShiftKeyMask, NSBackTabCharacter, NSTabCharacter}, {0, 0, 0} }; @@ -334,12 +337,8 @@ static unichar NsCharToJavaChar(unichar nsChar, NSUInteger modifiers) { const struct _char *cur; - NSUInteger keyModifierFlags = - NSShiftKeyMask | NSControlKeyMask | - NSAlternateKeyMask | NSCommandKeyMask; - // Mask off just the keyboard modifiers from the event modifier mask. - NSUInteger testableFlags = (modifiers & keyModifierFlags); + NSUInteger testableFlags = (modifiers & ALL_NS_KEY_MODIFIERS_MASK); // walk through table & find the match for (cur = charTable; cur->nsChar != 0 ; cur++) { @@ -507,189 +506,6 @@ NsKeyModifiersToJavaModifiers(NSUInteger nsFlags) return javaModifiers; } -/* - * Returns the correct java character for a key event. Most unicode - * characters don't require any fussing, but a few seem to need adjusting, - * see nsCharToJavaChar. - */ -static unichar -GetJavaCharacter(NSEvent *event, unsigned int index) -{ - unichar returnValue = java_awt_event_KeyEvent_CHAR_UNDEFINED; - NSString *chars = nil; - unichar testChar = 0, testDeadChar = 0; - jint javaModifiers = NsKeyModifiersToJavaModifiers([event modifierFlags]); - - switch ([event type]) { - case NSFlagsChanged: - // no character for modifier keys - returnValue = java_awt_event_KeyEvent_CHAR_UNDEFINED; - break; - - case NSKeyDown: - case NSKeyUp: - chars = [event characters]; - if ([chars length] > 0) { - testChar = [chars characterAtIndex:index]; - } - - if (javaModifiers == 0) { - // TODO: uses SPI... - //if (TSMGetDeadKeyState() != 0) { - // testDeadChar = [self deadKeyCharacter]; - //} - } - - if (testChar != 0) { - returnValue = NsCharToJavaChar(testChar, [event modifierFlags]); - } else if (testDeadChar != 0) { - returnValue = NsCharToJavaChar(testDeadChar, [event modifierFlags]); - } else { - returnValue = java_awt_event_KeyEvent_CHAR_UNDEFINED; - } - break; - - default: - //[NSException raise:@"AWT error" format:@"Attempt to get character code from non-key event!"]; - break; - } - - return returnValue; -} - -/* -static jchar -GetDeadKeyCharacter(NSEvent *event) -{ - // If the current event is not a dead key, return 0. - // TODO: this uses SPI; it's an optimization but not strictly necessary - //if (TSMGetDeadKeyState() == 0) { - // return 0; - //} - - // AppKit does not track dead-key states directly, but TSM does. Even then, - // it's not necessarily all that accurate, because the dead key can change - // given some combination of modifier keys on certain layouts. - // As a result, finding the unicode value for the front end of the dead - // key is a bit of a heuristic. - - // This algorithm was suggested by Aki Inoue. - // When you get a dead key, you need to simiulate what would happen in - // the current dead-key and modifier state if the user hit the spacebar. - // That will tell you the front end of the dead-key combination. - - unichar returnValue = 0; - const UInt16 VIRTUAL_KEY_SPACE = 49; - UInt32 deadKeyState = 0; - UInt32 appkitFlags = [event modifierFlags]; - UniCharCount actualStringLength; - UniChar unicodeInputString[16]; - TISInputSourceRef keyLayout; - const void *chrData; - - keyLayout = TISCopyCurrentKeyboardLayoutInputSource(); - CFDataRef cfUchrData = - TISGetInputSourceProperty(keyLayout, kTISPropertyUnicodeKeyLayoutData); - - if (cfUchrData == NULL) { - return returnValue; - } - - // The actual 'uchr' table is inside the CFDataRef. - chrData = CFDataGetBytePtr(cfUchrData); - - UInt8 keyboardType = LMGetKbdType(); - UInt32 keyEventModifiers = 0; - if (appkitFlags & NSShiftKeyMask) keyEventModifiers |= shiftKey; - if (appkitFlags & NSCommandKeyMask) keyEventModifiers |= cmdKey; - if (appkitFlags & NSAlphaShiftKeyMask) keyEventModifiers |= alphaLock; - if (appkitFlags & NSControlKeyMask) keyEventModifiers |= controlKey; - if (appkitFlags & NSAlternateKeyMask) keyEventModifiers |= optionKey; - - if (noErr == UCKeyTranslate(chrData, - VIRTUAL_KEY_SPACE, - ([event type] == NSKeyDown ? kUCKeyActionDown : kUCKeyActionUp), - keyEventModifiers, - keyboardType, - kUCKeyTranslateNoDeadKeysMask, - &deadKeyState, - 16, - &actualStringLength, - unicodeInputString)) - { - if (actualStringLength > 0) { - returnValue = unicodeInputString[0]; - } - } - - return returnValue; -} -*/ - - -// REMIND: The fix for MACOSX_PORT-539 introduces Java-level implementation -// of the function below (see CPlatformResponder). Consider removing this code. - -void -DeliverJavaKeyEvent(JNIEnv *env, NSEvent *event, jobject peer) -{ - jint javaKeyType = java_awt_event_KeyEvent_KEY_PRESSED; - jint javaKeyCode = java_awt_event_KeyEvent_VK_UNDEFINED; - jint javaKeyLocation = java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN; - NSString *chars = nil; - BOOL postsTyped; - unichar testChar = java_awt_event_KeyEvent_CHAR_UNDEFINED; - unichar testDeadChar = 0; - jint javaModifiers = 0; - - switch ([event type]) { - case NSFlagsChanged: - NsKeyModifiersToJavaKeyInfo([event modifierFlags], - [event keyCode], - &javaKeyCode, - &javaKeyLocation, - &javaKeyType); - break; - - case NSKeyDown: - case NSKeyUp: - chars = [event charactersIgnoringModifiers]; - if ([chars length] > 0) { - testChar = [chars characterAtIndex:0]; - } - - javaModifiers = NsKeyModifiersToJavaModifiers([event modifierFlags]); - if (javaModifiers == 0) { - // TODO: dead key chars -// testDeadChar = GetDeadKeyCharacter(event); - } - - NsCharToJavaVirtualKeyCode(testChar, testDeadChar, - [event modifierFlags], [event keyCode], - &javaKeyCode, &javaKeyLocation, &postsTyped); - if( !postsTyped ) { - testChar = java_awt_event_KeyEvent_CHAR_UNDEFINED; - } - - javaKeyType = ([event type] == NSKeyDown) ? - java_awt_event_KeyEvent_KEY_PRESSED : - java_awt_event_KeyEvent_KEY_RELEASED; - break; - - default: - //[NSException raise:@"AWT error" format:@"Attempt to get virtual key code from non-key event!"]; - break; - } - - if (env != NULL) { - static JNF_CLASS_CACHE(jc_CPlatformView, "sun/lwawt/macosx/CPlatformView"); - static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_CPlatformView, "deliverKeyEvent", "(IICII)V"); - JNFCallVoidMethod(env, peer, jm_deliverKeyEvent, - javaKeyType, javaModifiers, - testChar, javaKeyCode, javaKeyLocation); - } -} - jint GetJavaMouseModifiers(NSInteger button, NSUInteger modifierFlags) { // Mousing needs the key modifiers @@ -726,217 +542,6 @@ jint GetJavaMouseModifiers(NSInteger button, NSUInteger modifierFlags) return modifiers; } -/* - * Converts an NSEvent button number to a MouseEvent constant. - */ -static jint -NSButtonToJavaButton(NSInteger nsButtonNumber) -{ - jint jbutton = java_awt_event_MouseEvent_NOBUTTON; - - if (nsButtonNumber == 0) { // left - jbutton = java_awt_event_MouseEvent_BUTTON1; - } else if (nsButtonNumber == 1) { // right - jbutton = java_awt_event_MouseEvent_BUTTON3; - } else if (nsButtonNumber == 2) { // middle - jbutton = java_awt_event_MouseEvent_BUTTON2; - } - - return jbutton; -} - - -static BOOL isDragging = NO; - -void -DeliverMouseClickedEvent(JNIEnv *env, NSEvent *event, jobject peer) -{ - NSPoint pt = [event locationInWindow]; - NSPoint pOnScreen = [NSEvent mouseLocation]; - jint etype = java_awt_event_MouseEvent_MOUSE_CLICKED; - jint modifiers = GetJavaMouseModifiers([event buttonNumber], [event modifierFlags]); - jint clickCount = [event clickCount]; - jint button = NSButtonToJavaButton([event buttonNumber]); - - if (env != NULL) { - static JNF_CLASS_CACHE(jc_CPlatformView, "sun/lwawt/macosx/CPlatformView"); - static JNF_MEMBER_CACHE(jm_deliverMouseEvent, jc_CPlatformView, - "deliverMouseEvent", "(IIIIFFFF)V"); - JNFCallVoidMethod(env, peer, jm_deliverMouseEvent, - etype, modifiers, - clickCount, button, - pt.x, pt.y, - pOnScreen.x, pOnScreen.y); - } -} - -/* - * After every key down event, this is called to make the matching - * KEY_TYPED (if this key posts those). We use the same NSEvent for it, - * but create a KEY_TYPED java event this time. - * If this key doesn't post typed, we don't post the event. - * - * TODO: some duplicated effort here; could just fold it - * into DeliverJavaKeyEvent... - */ -static void -DeliverKeyTypedEvents(JNIEnv *env, NSEvent *nsEvent, jobject peer) -{ - if (peer == NULL) { - return; - } - - jint javaKeyCode, javaKeyLocation; - BOOL postsTyped = NO; - unichar testChar, testDeadChar = 0; - jint javaModifiers = NsKeyModifiersToJavaModifiers([nsEvent modifierFlags]); - - if (javaModifiers == 0) { - testDeadChar = [nsEvent deadKeyCharacter]; - } - - NSString *theChars = [nsEvent characters]; - unsigned i, stringLength = [theChars length]; - - for (i = 0; i < stringLength; i++) { - testChar = [theChars characterAtIndex:i]; - NsCharToJavaVirtualKeyCode(testChar, testDeadChar, - [nsEvent modifierFlags], [nsEvent keyCode], - &javaKeyCode, &javaKeyLocation, &postsTyped); - - if (postsTyped) { - // Some keys may generate a KEY_TYPED, but we can't determine - // what that character is. That's likely a bug, but for now we - // just check for CHAR_UNDEFINED. - unichar theChar = GetJavaCharacter(nsEvent, i); - if (theChar != java_awt_event_KeyEvent_CHAR_UNDEFINED) { - if (env != NULL) { - static JNF_CLASS_CACHE(jc_CPlatformView, - "sun/lwawt/macosx/CPlatformView"); - static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_CPlatformView, - "deliverKeyEvent", "(IICII)V"); - JNFCallVoidMethod(env, peer, jm_deliverKeyEvent, - java_awt_event_KeyEvent_KEY_TYPED, - javaModifiers, - theChar, - java_awt_event_KeyEvent_VK_UNDEFINED, - java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN); - } - } - } - } -} - -/* - * There are a couple of extra events that Java expects to get that don't - * actually correspond to a direct NSEvent, KEY_TYPED and MOUSE_CLICKED are - * both extra events that are sort of redundant with ordinary - * key downs and mouse ups. In this extra message, we take the original - * input event and if necessary, cons up a special follow-on event which - * we dispatch over to Java. - * - * For Java, keyDown's generate a KeyPressed (for each hardware key as it - * goes down) and then a "logical KeyTyped" event for the key event. (So - * a shift-a generates two presses, one keytyped of "A", and then two - * releases). The standard event utility function converts a key down to - * a key pressed. When appropriate, we need to cons up another event - * (KEY_TYPED) to follow a keyDown. - * - * Java expects you to send a clicked event if you got a down & up, with no - * intervening drag. So in addition to the MOUSE_RELEASED event that a - * mouseUp is translated to, we also have to cons up a MOUSE_CLICKED event - * for that case. Mike Paquette, god of Window Server event handling, - * confirmed this fact about how to determine if a mouse up event had an - * intervening drag: - * An initial mouse-down gets a click count of 1. Subsequent left or right - * mouse-downs within the space/time tolerance limits increment the click - * count. A mouse-up will have the clickCount of the last mouseDown if - * mouse is not outside the tolerance limits, but 0 otherwise. Thus, a - * down-up sequence without any intervening drag will have a click count - * of 0 in the mouse-up event. NOTE: The problem with this is that - * clickCount goes to zero after some point in time. So a long, click & - * hold without moving and then release the mouse doesn't create a - * MOUSE_CLICK event as it should. Java AWT now tracks the drag state itself. - * - * As another add-on, we also check for the status of mouse-motion events - * after a mouse-down, so we know whether to generate mouse-dragged events - * during this down sequence. - */ -void -SendAdditionalJavaEvents(JNIEnv *env, NSEvent *nsEvent, jobject peer) -{ - AWT_ASSERT_APPKIT_THREAD; - - NSEventType type = [nsEvent type]; - switch (type) { - case NSKeyDown: - break; - - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: - // TODO: we may need to pull in changedDragToMove here... - //if (!isDragging && ([NSViewAWT changedDragToMove]==NO)) { - if (!isDragging) { - // got down/up pair with no dragged in between; ignores drag events - // that have been morphed to move events - DeliverMouseClickedEvent(env, nsEvent, peer); - } - break; - -// TODO: to be implemented... -#if 0 - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: - // - // During a drag, the AppKit does not send mouseEnter and mouseExit - // events. It turns out that doing a hitTest causes the window's - // view hierarchy to be locked from drawing and that, of course, - // slows everything way down. Synthesize mouseEnter and mouseExit - // then forward. - // - NSView *hitView = [[source model] hitTest:[nsEvent locationInWindow]]; - - if ((hitView != nil) && - ([hitView conformsToProtocol:@protocol(AWTPeerControl)])) - { - if (sLastMouseDraggedView == nil) { - sLastMouseDraggedView = hitView; - } - else if (hitView != sLastMouseDraggedView) { - // We know sLastMouseDraggedView is a AWTPeerControl. - jobject lastPeer = - [(id )sLastMouseDraggedView peer]; - - // Send mouseExit to sLastMouseDraggedView - jobject exitEvent = - makeMouseEvent(env, nsEvent, lastPeer, - sLastMouseDraggedView, - java_awt_event_MouseEvent_MOUSE_EXITED); - pushEventForward(exitEvent, env); - (*env)->DeleteLocalRef(env, exitEvent); - - // Send mouseEnter to hitView - jobject enterEvent = - makeMouseEvent(env, nsEvent, peer, hitView, - java_awt_event_MouseEvent_MOUSE_ENTERED); - pushEventForward(enterEvent, env); - - (*env)->DeleteLocalRef(env, enterEvent); - - // Set sLastMouseDraggedView = hitView - sLastMouseDraggedView = hitView; - } - } - break; -#endif - - default: - break; - } -} - jlong UTC(NSEvent *event) { struct timeval tv; if (gettimeofday(&tv, NULL) == 0) { @@ -1069,3 +674,23 @@ JNF_COCOA_ENTER(env); JNF_COCOA_EXIT(env); } + +/* + * Class: sun_lwawt_macosx_event_NSEvent + * Method: nsToJavaChar + * Signature: (CI)C + */ +JNIEXPORT jint JNICALL +Java_sun_lwawt_macosx_event_NSEvent_nsToJavaChar +(JNIEnv *env, jclass cls, char nsChar, jint modifierFlags) +{ + jchar javaChar = 0; + +JNF_COCOA_ENTER(env); + + javaChar = NsCharToJavaChar(nsChar, modifierFlags); + +JNF_COCOA_EXIT(env); + + return javaChar; +} From 34af18cd4012e809f8d39060e5a2c263db74f675 Mon Sep 17 00:00:00 2001 From: Vinnie Ryan Date: Fri, 13 Apr 2012 19:00:08 +0100 Subject: [PATCH 51/82] 7152169: TEST_BUG: sun/security/tools/jarsigner/ec.sh occasionally fail due to keytool error on sparc Reviewed-by: mullan --- jdk/src/share/classes/sun/security/ec/ECParameters.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/sun/security/ec/ECParameters.java b/jdk/src/share/classes/sun/security/ec/ECParameters.java index 9d15995938a..614ba3f4675 100644 --- a/jdk/src/share/classes/sun/security/ec/ECParameters.java +++ b/jdk/src/share/classes/sun/security/ec/ECParameters.java @@ -87,8 +87,8 @@ public final class ECParameters extends AlgorithmParametersSpi { if ((data.length == 0) || (data[0] != 4)) { throw new IOException("Only uncompressed point format supported"); } - int n = (curve.getField().getFieldSize() + 7 ) >> 3; - if (data.length != (n * 2) + 1) { + int n = data.length / 2; + if (n > ((curve.getField().getFieldSize() + 7 ) >> 3)) { throw new IOException("Point does not match field size"); } byte[] xb = new byte[n]; From afa494b2a59620ac9c4deaf2fcb4fa26c5e3aff0 Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Sun, 15 Apr 2012 12:58:12 +0300 Subject: [PATCH 52/82] 7149090: Nimbus:BorderFactory.createTitledBorder() the DEFAULT position of a title is not the same as the TOP Reviewed-by: alexp --- .../classes/javax/swing/BorderFactory.java | 15 ++-- jdk/test/javax/swing/border/Test7149090.java | 84 +++++++++++++++++++ 2 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 jdk/test/javax/swing/border/Test7149090.java diff --git a/jdk/src/share/classes/javax/swing/BorderFactory.java b/jdk/src/share/classes/javax/swing/BorderFactory.java index a13dc1bcf84..33b1b0024d9 100644 --- a/jdk/src/share/classes/javax/swing/BorderFactory.java +++ b/jdk/src/share/classes/javax/swing/BorderFactory.java @@ -371,7 +371,7 @@ public class BorderFactory /** * Creates a new titled border with the specified title, * the default border type (determined by the current look and feel), - * the default text position (sitting on the top line), + * the default text position (determined by the current look and feel), * the default justification (leading), and the default * font and text color (determined by the current look and feel). * @@ -385,7 +385,7 @@ public class BorderFactory /** * Creates a new titled border with an empty title, * the specified border object, - * the default text position (sitting on the top line), + * the default text position (determined by the current look and feel), * the default justification (leading), and the default * font and text color (determined by the current look and feel). * @@ -400,7 +400,7 @@ public class BorderFactory /** * Adds a title to an existing border, - * with default positioning (sitting on the top line), + * with default positioning (determined by the current look and feel), * default justification (leading) and the default * font and text color (determined by the current look and feel). * @@ -439,7 +439,8 @@ public class BorderFactory *

  • TitledBorder.ABOVE_BOTTOM *
  • TitledBorder.BOTTOM (sitting on the bottom line) *
  • TitledBorder.BELOW_BOTTOM - *
  • TitledBorder.DEFAULT_POSITION (top) + *
  • TitledBorder.DEFAULT_POSITION (the title position + * is determined by the current look and feel) * * @return the TitledBorder object */ @@ -477,7 +478,8 @@ public class BorderFactory *
  • TitledBorder.ABOVE_BOTTOM *
  • TitledBorder.BOTTOM (sitting on the bottom line) *
  • TitledBorder.BELOW_BOTTOM - *
  • TitledBorder.DEFAULT_POSITION (top) + *
  • TitledBorder.DEFAULT_POSITION (the title position + * is determined by the current look and feel) * * @param titleFont a Font object specifying the title font * @return the TitledBorder object @@ -516,7 +518,8 @@ public class BorderFactory *
  • TitledBorder.ABOVE_BOTTOM *
  • TitledBorder.BOTTOM (sitting on the bottom line) *
  • TitledBorder.BELOW_BOTTOM - *
  • TitledBorder.DEFAULT_POSITION (top) + *
  • TitledBorder.DEFAULT_POSITION (the title position + * is determined by the current look and feel) * * @param titleFont a Font object specifying the title font * @param titleColor a Color object specifying the title color diff --git a/jdk/test/javax/swing/border/Test7149090.java b/jdk/test/javax/swing/border/Test7149090.java new file mode 100644 index 00000000000..f93dc8ecd2e --- /dev/null +++ b/jdk/test/javax/swing/border/Test7149090.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2012, 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 7149090 + @summary Nimbus:BorderFactory.createTitledBorder() the DEFAULT position of a title is not the same as the TOP + @author Pavel Porvatov +*/ + +import javax.swing.*; +import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; + +public class Test7149090 { + private static final Object[][] DEFAULT_TITLE_POSITIONS = { + {"Metal", TitledBorder.TOP}, + {"Motif", TitledBorder.TOP}, + {"Windows", TitledBorder.TOP}, + {"Nimbus", TitledBorder.ABOVE_TOP}, + }; + + public static void main(String[] args) throws Exception { + for (UIManager.LookAndFeelInfo lookAndFeel : UIManager.getInstalledLookAndFeels()) { + for (Object[] defaultTitlePosition : DEFAULT_TITLE_POSITIONS) { + if (defaultTitlePosition[0].equals(lookAndFeel.getName())) { + UIManager.setLookAndFeel(lookAndFeel.getClassName()); + + final int expectedPosition = (Integer) defaultTitlePosition[1]; + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + List borders = new ArrayList<>(); + + borders.add(BorderFactory.createTitledBorder(new EmptyBorder(0, 0, 0, 0), "Title")); + + try { + Method getPositionMethod = TitledBorder.class.getDeclaredMethod("getPosition"); + + getPositionMethod.setAccessible(true); + + for (TitledBorder border : borders) { + int position = (Integer) getPositionMethod.invoke(border); + + if (position != expectedPosition) { + throw new RuntimeException("Invalid title position"); + } + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new RuntimeException(e); + } + } + }); + + System.out.println("Test passed for LookAndFeel " + lookAndFeel.getName()); + } + } + } + } +} From a51733d81da2048ba2666503b49caf642601ac4c Mon Sep 17 00:00:00 2001 From: Charles Lee Date: Mon, 16 Apr 2012 11:12:10 +0800 Subject: [PATCH 53/82] 7161282: Move test/sun/tools/classpath/RMICClassPathTest.java to a more appropriate location Reviewed-by: alanb --- jdk/test/sun/{tools => rmi/rmic}/classpath/RMICClassPathTest.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jdk/test/sun/{tools => rmi/rmic}/classpath/RMICClassPathTest.java (100%) diff --git a/jdk/test/sun/tools/classpath/RMICClassPathTest.java b/jdk/test/sun/rmi/rmic/classpath/RMICClassPathTest.java similarity index 100% rename from jdk/test/sun/tools/classpath/RMICClassPathTest.java rename to jdk/test/sun/rmi/rmic/classpath/RMICClassPathTest.java From 253976ad79d80b28e672fa77d925b749913f163e Mon Sep 17 00:00:00 2001 From: Alex Menkov Date: Mon, 16 Apr 2012 17:04:49 +0300 Subject: [PATCH 54/82] 7058852: javax/sound/sampled/FileWriter/AlawEncoderSync.java failing intermittently Reviewed-by: prr --- .../sampled/FileWriter/AlawEncoderSync.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/jdk/test/javax/sound/sampled/FileWriter/AlawEncoderSync.java b/jdk/test/javax/sound/sampled/FileWriter/AlawEncoderSync.java index 8d378a52283..a58fa269f69 100644 --- a/jdk/test/javax/sound/sampled/FileWriter/AlawEncoderSync.java +++ b/jdk/test/javax/sound/sampled/FileWriter/AlawEncoderSync.java @@ -1,6 +1,32 @@ +/* + * Copyright (c) 2010, 2012, 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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 6938426 + * @bug 7058852 * @summary Tests that Alaw encoder works properly in multithreaded environment * @author Alex Menkov */ @@ -34,7 +60,7 @@ public class AlawEncoderSync { threads[i].start(); } - for (int i=1; i Date: Mon, 16 Apr 2012 18:36:58 +0400 Subject: [PATCH 55/82] 7080700: numAppContexts is accessed in non-threadsafe way in sun.awt.AppContext Replace a volatile integer with an AtomicInteger for numAppContexts Reviewed-by: anthony, art, dholmes --- jdk/src/share/classes/sun/awt/AppContext.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/jdk/src/share/classes/sun/awt/AppContext.java b/jdk/src/share/classes/sun/awt/AppContext.java index 1d882fb10b2..0756b6c82bd 100644 --- a/jdk/src/share/classes/sun/awt/AppContext.java +++ b/jdk/src/share/classes/sun/awt/AppContext.java @@ -46,6 +46,7 @@ import sun.util.logging.PlatformLogger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.atomic.AtomicInteger; /** * The AppContext is a table referenced by ThreadGroup which stores @@ -194,6 +195,15 @@ public final class AppContext { return isDisposed; } + /* + * The total number of AppContexts, system-wide. This number is + * incremented at the beginning of the constructor, and decremented + * at the end of dispose(). getAppContext() checks to see if this + * number is 1. If so, it returns the sole AppContext without + * checking Thread.currentThread(). + */ + private static final AtomicInteger numAppContexts = new AtomicInteger(0); + static { // On the main Thread, we get the ThreadGroup, make a corresponding // AppContext, and instantiate the Java EventQueue. This way, legacy @@ -209,21 +219,11 @@ public final class AppContext { parentThreadGroup = currentThreadGroup.getParent(); } mainAppContext = new AppContext(currentThreadGroup); - numAppContexts = 1; return null; } }); } - /* - * The total number of AppContexts, system-wide. This number is - * incremented at the beginning of the constructor, and decremented - * at the end of dispose(). getAppContext() checks to see if this - * number is 1. If so, it returns the sole AppContext without - * checking Thread.currentThread(). - */ - private static volatile int numAppContexts; - /* * The context ClassLoader that was used to create this AppContext. */ @@ -243,7 +243,7 @@ public final class AppContext { * @since 1.2 */ AppContext(ThreadGroup threadGroup) { - numAppContexts++; + numAppContexts.incrementAndGet(); this.threadGroup = threadGroup; threadGroup2appContext.put(threadGroup, this); @@ -278,7 +278,7 @@ public final class AppContext { * @since 1.2 */ public final static AppContext getAppContext() { - if (numAppContexts == 1) // If there's only one system-wide, + if (numAppContexts.get() == 1) // If there's only one system-wide, return mainAppContext; // return the main system AppContext. AppContext appContext = threadAppContext.get(); @@ -513,7 +513,7 @@ public final class AppContext { this.table.clear(); // Clear out the Hashtable to ease garbage collection } - numAppContexts--; + numAppContexts.decrementAndGet(); mostRecentKeyValue = null; } @@ -804,7 +804,7 @@ public final class AppContext { return getAppContext().isDisposed(); } public boolean isMainAppContext() { - return (numAppContexts == 1); + return (numAppContexts.get() == 1); } }); } From b29ee1093800b02d2533afe965279cb80b12923b Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Mon, 16 Apr 2012 20:12:20 +0100 Subject: [PATCH 56/82] 7143744: (se) Stabilize KQueue SelectorProvider and make default on MacOSX Reviewed-by: michaelm, chegar --- .../sun/nio/ch/DefaultSelectorProvider.java | 6 +- .../sun/nio/ch/KQueueArrayWrapper.java | 8 +- .../sun/nio/ch/KQueueSelectorImpl.java | 76 ++++++++++++++----- .../sun/nio/ch/KQueueSelectorProvider.java | 4 +- .../native/sun/nio/ch/KQueueArrayWrapper.c | 4 +- .../java/nio/channels/Selector/OpRead.java | 5 +- jdk/test/sun/nio/ch/SelProvider.java | 15 +--- 7 files changed, 79 insertions(+), 39 deletions(-) diff --git a/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java b/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java index 16af3aa64d0..e717c6ca1cc 100644 --- a/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java +++ b/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java @@ -4,7 +4,9 @@ * * 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. + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -40,7 +42,7 @@ public class DefaultSelectorProvider { * Returns the default SelectorProvider. */ public static SelectorProvider create() { - return new sun.nio.ch.PollSelectorProvider(); + return new sun.nio.ch.KQueueSelectorProvider(); } } diff --git a/jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java b/jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java index 71d098d2879..7ec35f1bc6d 100644 --- a/jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java +++ b/jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java @@ -4,7 +4,9 @@ * * 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. + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -64,8 +66,8 @@ class KQueueArrayWrapper { static short FD_OFFSET; static short FILTER_OFFSET; - // kevent array size (just under 1K bytes) - static final int NUM_KEVENTS = 50; + // kevent array size + static final int NUM_KEVENTS = 128; // Are we in a 64-bit VM? static boolean is64bit = false; diff --git a/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java b/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java index 60d523bb383..b1504264474 100644 --- a/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java +++ b/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java @@ -4,7 +4,9 @@ * * 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. + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -49,8 +51,8 @@ class KQueueSelectorImpl // Count of registered descriptors (including interrupt) private int totalChannels; - // Map from file descriptors to selection keys - private HashMap fdToKey; + // Map from a file descriptor to an entry containing the selection key + private HashMap fdMap; // True if this Selector has been closed private boolean closed = false; @@ -59,6 +61,20 @@ class KQueueSelectorImpl private Object interruptLock = new Object(); private boolean interruptTriggered = false; + // used by updateSelectedKeys to handle cases where the same file + // descriptor is polled by more than one filter + private long updateCount; + + // Used to map file descriptors to a selection key and "update count" + // (see updateSelectedKeys for usage). + private static class MapEntry { + SelectionKeyImpl ski; + long updateCount; + MapEntry(SelectionKeyImpl ski) { + this.ski = ski; + } + } + /** * Package private constructor called by factory method in * the abstract superclass Selector. @@ -70,7 +86,7 @@ class KQueueSelectorImpl fd1 = (int)fds; kqueueWrapper = new KQueueArrayWrapper(); kqueueWrapper.initInterrupt(fd0, fd1); - fdToKey = new HashMap<>(); + fdMap = new HashMap<>(); totalChannels = 1; } @@ -82,8 +98,6 @@ class KQueueSelectorImpl if (closed) throw new ClosedSelectorException(); processDeregisterQueue(); - if (timeout == 0 && totalChannels == 1) - return 0; try { begin(); entries = kqueueWrapper.poll(timeout); @@ -94,10 +108,9 @@ class KQueueSelectorImpl return updateSelectedKeys(entries); } - /** - * Update the keys whose fd's have been selected by the devpoll - * driver. Add the ready keys to the ready queue. + * Update the keys whose fd's have been selected by kqueue. + * Add the ready keys to the selected key set. * If the interrupt fd has been selected, drain it and clear the interrupt. */ private int updateSelectedKeys(int entries) @@ -106,24 +119,42 @@ class KQueueSelectorImpl int numKeysUpdated = 0; boolean interrupted = false; + // A file descriptor may be registered with kqueue with more than one + // filter and so there may be more than one event for a fd. The update + // count in the MapEntry tracks when the fd was last updated and this + // ensures that the ready ops are updated rather than replaced by a + // second or subsequent event. + updateCount++; + for (int i = 0; i < entries; i++) { int nextFD = kqueueWrapper.getDescriptor(i); if (nextFD == fd0) { interrupted = true; } else { - SelectionKeyImpl ski = fdToKey.get(new Integer(nextFD)); - // ski is null in the case of an interrupt - if (ski != null) { + MapEntry me = fdMap.get(Integer.valueOf(nextFD)); + + // entry is null in the case of an interrupt + if (me != null) { int rOps = kqueueWrapper.getReventOps(i); + SelectionKeyImpl ski = me.ski; if (selectedKeys.contains(ski)) { - if (ski.channel.translateAndSetReadyOps(rOps, ski)) { - numKeysUpdated++; + // first time this file descriptor has been encountered on this + // update? + if (me.updateCount != updateCount) { + if (ski.channel.translateAndSetReadyOps(rOps, ski)) { + numKeysUpdated++; + me.updateCount = updateCount; + } + } else { + // ready ops have already been set on this update + ski.channel.translateAndUpdateReadyOps(rOps, ski); } } else { ski.channel.translateAndSetReadyOps(rOps, ski); - if ((ski.readyOps() & ski.interestOps()) != 0) { + if ((ski.nioReadyOps() & ski.nioInterestOps()) != 0) { selectedKeys.add(ski); numKeysUpdated++; + me.updateCount = updateCount; } } } @@ -137,7 +168,6 @@ class KQueueSelectorImpl interruptTriggered = false; } } - return numKeysUpdated; } @@ -145,6 +175,12 @@ class KQueueSelectorImpl protected void implClose() throws IOException { if (!closed) { closed = true; + + // prevent further wakeup + synchronized (interruptLock) { + interruptTriggered = true; + } + FileDispatcherImpl.closeIntFD(fd0); FileDispatcherImpl.closeIntFD(fd1); if (kqueueWrapper != null) { @@ -172,8 +208,10 @@ class KQueueSelectorImpl protected void implRegister(SelectionKeyImpl ski) { + if (closed) + throw new ClosedSelectorException(); int fd = IOUtil.fdVal(ski.channel.getFD()); - fdToKey.put(new Integer(fd), ski); + fdMap.put(Integer.valueOf(fd), new MapEntry(ski)); totalChannels++; keys.add(ski); } @@ -181,7 +219,7 @@ class KQueueSelectorImpl protected void implDereg(SelectionKeyImpl ski) throws IOException { int fd = ski.channel.getFDVal(); - fdToKey.remove(new Integer(fd)); + fdMap.remove(Integer.valueOf(fd)); kqueueWrapper.release(fd); totalChannels--; keys.remove(ski); @@ -194,6 +232,8 @@ class KQueueSelectorImpl public void putEventOps(SelectionKeyImpl ski, int ops) { + if (closed) + throw new ClosedSelectorException(); int fd = IOUtil.fdVal(ski.channel.getFD()); kqueueWrapper.setInterest(fd, ops); } diff --git a/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java b/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java index 6e7b7cf3904..e07775f45a9 100644 --- a/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java +++ b/jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java @@ -4,7 +4,9 @@ * * 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. + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or diff --git a/jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c b/jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c index a26b317aec0..8d49d9cb666 100644 --- a/jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c +++ b/jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c @@ -4,7 +4,9 @@ * * 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. + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or diff --git a/jdk/test/java/nio/channels/Selector/OpRead.java b/jdk/test/java/nio/channels/Selector/OpRead.java index 78340509ed6..cec477901ff 100644 --- a/jdk/test/java/nio/channels/Selector/OpRead.java +++ b/jdk/test/java/nio/channels/Selector/OpRead.java @@ -58,7 +58,10 @@ public class OpRead { boolean done = false; int failCount = 0; while (!done) { - if (selector.select() > 0) { + int nSelected = selector.select(); + if (nSelected > 0) { + if (nSelected > 1) + throw new RuntimeException("More than one channel selected"); Set keys = selector.selectedKeys(); Iterator iterator = keys.iterator(); while (iterator.hasNext()) { diff --git a/jdk/test/sun/nio/ch/SelProvider.java b/jdk/test/sun/nio/ch/SelProvider.java index 53b18cb529a..cae745f5b78 100644 --- a/jdk/test/sun/nio/ch/SelProvider.java +++ b/jdk/test/sun/nio/ch/SelProvider.java @@ -38,20 +38,9 @@ public class SelProvider { if ("SunOS".equals(osname)) { expected = "sun.nio.ch.DevPollSelectorProvider"; } else if ("Linux".equals(osname)) { - String[] vers = osver.split("\\.", 0); - if (vers.length >= 2) { - int major = Integer.parseInt(vers[0]); - int minor = Integer.parseInt(vers[1]); - if (major > 2 || (major == 2 && minor >= 6)) { - expected = "sun.nio.ch.EPollSelectorProvider"; - } else { - expected = "sun.nio.ch.PollSelectorProvider"; - } - } else { - throw new RuntimeException("Test does not recognize this operating system"); - } + expected = "sun.nio.ch.EPollSelectorProvider"; } else if (osname.startsWith("Mac OS")) { - expected = "sun.nio.ch.PollSelectorProvider"; + expected = "sun.nio.ch.KQueueSelectorProvider"; } else return; if (!spName.equals(expected)) From 311ea4a969568a87869dbd319df3510e9f776281 Mon Sep 17 00:00:00 2001 From: Staffan Larsen Date: Tue, 17 Apr 2012 06:45:57 +0200 Subject: [PATCH 57/82] 7147848: com.sun.management.UnixOperatingSystem uses hardcoded dummy values [macosx] Provide the missing implementation UnixOperatingSystem on Mac OS X Reviewed-by: dsamersoff, dcubed --- .../sun/management/MacosxOperatingSystem.c | 126 +++++++++++++++++- .../sun/management/UnixOperatingSystem_md.c | 114 ++++++++++++++-- .../OperatingSystemMXBean/TestTotalSwap.sh | 7 + 3 files changed, 234 insertions(+), 13 deletions(-) diff --git a/jdk/src/solaris/native/com/sun/management/MacosxOperatingSystem.c b/jdk/src/solaris/native/com/sun/management/MacosxOperatingSystem.c index e2c561bf451..3e7ac65fac4 100644 --- a/jdk/src/solaris/native/com/sun/management/MacosxOperatingSystem.c +++ b/jdk/src/solaris/native/com/sun/management/MacosxOperatingSystem.c @@ -25,16 +25,136 @@ #include "com_sun_management_UnixOperatingSystem.h" +#include +#include +#include + + JNIEXPORT jdouble JNICALL Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad (JNIEnv *env, jobject dummy) { - return -1.0; // not available + // This code is influenced by the darwin top source + + kern_return_t kr; + mach_msg_type_number_t count; + host_cpu_load_info_data_t load; + + static jlong last_used = 0; + static jlong last_total = 0; + + count = HOST_CPU_LOAD_INFO_COUNT; + kr = host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO, (host_info_t)&load, &count); + if (kr != KERN_SUCCESS) { + return -1; + } + + jlong used = load.cpu_ticks[CPU_STATE_USER] + load.cpu_ticks[CPU_STATE_NICE] + load.cpu_ticks[CPU_STATE_SYSTEM]; + jlong total = used + load.cpu_ticks[CPU_STATE_IDLE]; + + if (last_used == 0 || last_total == 0) { + // First call, just set the last values + last_used = used; + last_total = total; + // return 0 since we have no data, not -1 which indicates error + return 0; + } + + jlong used_delta = used - last_used; + jlong total_delta = total - last_total; + + jdouble cpu = (jdouble) used_delta / total_delta; + + last_used = used; + last_total = total; + + return cpu; } + +#define TIME_VALUE_TO_TIMEVAL(a, r) do { \ + (r)->tv_sec = (a)->seconds; \ + (r)->tv_usec = (a)->microseconds; \ +} while (0) + + +#define TIME_VALUE_TO_MICROSECONDS(TV) \ + ((TV).tv_sec * 1000 * 1000 + (TV).tv_usec) + + JNIEXPORT jdouble JNICALL Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad (JNIEnv *env, jobject dummy) { - return -1.0; // not available -} + // This code is influenced by the darwin top source + + struct task_basic_info_64 task_info_data; + struct task_thread_times_info thread_info_data; + struct timeval user_timeval, system_timeval, task_timeval; + struct timeval now; + mach_port_t task = mach_task_self(); + kern_return_t kr; + + static jlong last_task_time = 0; + static jlong last_time = 0; + + mach_msg_type_number_t thread_info_count = TASK_THREAD_TIMES_INFO_COUNT; + kr = task_info(task, + TASK_THREAD_TIMES_INFO, + (task_info_t)&thread_info_data, + &thread_info_count); + if (kr != KERN_SUCCESS) { + // Most likely cause: |task| is a zombie. + return -1; + } + + mach_msg_type_number_t count = TASK_BASIC_INFO_64_COUNT; + kr = task_info(task, + TASK_BASIC_INFO_64, + (task_info_t)&task_info_data, + &count); + if (kr != KERN_SUCCESS) { + // Most likely cause: |task| is a zombie. + return -1; + } + + /* Set total_time. */ + // thread info contains live time... + TIME_VALUE_TO_TIMEVAL(&thread_info_data.user_time, &user_timeval); + TIME_VALUE_TO_TIMEVAL(&thread_info_data.system_time, &system_timeval); + timeradd(&user_timeval, &system_timeval, &task_timeval); + + // ... task info contains terminated time. + TIME_VALUE_TO_TIMEVAL(&task_info_data.user_time, &user_timeval); + TIME_VALUE_TO_TIMEVAL(&task_info_data.system_time, &system_timeval); + timeradd(&user_timeval, &task_timeval, &task_timeval); + timeradd(&system_timeval, &task_timeval, &task_timeval); + + if (gettimeofday(&now, NULL) < 0) { + return -1; + } + jint ncpus = JVM_ActiveProcessorCount(); + jlong time = TIME_VALUE_TO_MICROSECONDS(now) * ncpus; + jlong task_time = TIME_VALUE_TO_MICROSECONDS(task_timeval); + + if ((last_task_time == 0) || (last_time == 0)) { + // First call, just set the last values. + last_task_time = task_time; + last_time = time; + // return 0 since we have no data, not -1 which indicates error + return 0; + } + + jlong task_time_delta = task_time - last_task_time; + jlong time_delta = time - last_time; + if (time_delta == 0) { + return -1; + } + + jdouble cpu = (jdouble) task_time_delta / time_delta; + + last_task_time = task_time; + last_time = time; + + return cpu; + } diff --git a/jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c b/jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c index 088b3cfe809..656306c83b6 100644 --- a/jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c +++ b/jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c @@ -34,6 +34,13 @@ #include #if defined(_ALLBSD_SOURCE) #include +#ifdef __APPLE__ +#include +#include +#include +#include +#include +#endif #else #include #endif @@ -150,6 +157,13 @@ static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean availa avail = (jlong)si.freeswap * si.mem_unit; return available ? avail : total; +#elif defined(__APPLE__) + struct xsw_usage vmusage; + size_t size = sizeof(vmusage); + if (sysctlbyname("vm.swapusage", &vmusage, &size, NULL, 0) != 0) { + throw_internal_error(env, "sysctlbyname failed"); + } + return available ? (jlong)vmusage.xsu_avail : (jlong)vmusage.xsu_total; #else /* _ALLBSD_SOURCE */ /* * XXXBSD: there's no way available to get swap info in @@ -216,6 +230,15 @@ Java_com_sun_management_UnixOperatingSystem_getCommittedVirtualMemorySize fclose(fp); return (jlong)vsize; +#elif defined(__APPLE__) + struct task_basic_info t_info; + mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; + + kern_return_t res = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count); + if (res != KERN_SUCCESS) { + throw_internal_error(env, "task_info failed"); + } + return t_info.virtual_size; #else /* _ALLBSD_SOURCE */ /* * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. @@ -243,6 +266,17 @@ JNIEXPORT jlong JNICALL Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime (JNIEnv *env, jobject mbean) { +#ifdef __APPLE__ + struct rusage usage; + if (getrusage(RUSAGE_SELF, &usage) != 0) { + throw_internal_error(env, "getrusage failed"); + return -1; + } + jlong microsecs = + usage.ru_utime.tv_sec * 1000 * 1000 + usage.ru_utime.tv_usec + + usage.ru_stime.tv_sec * 1000 * 1000 + usage.ru_stime.tv_usec; + return microsecs * 1000; +#else jlong clk_tck, ns_per_clock_tick; jlong cpu_time_ns; struct tms time; @@ -267,19 +301,32 @@ Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime cpu_time_ns = ((jlong)time.tms_utime + (jlong) time.tms_stime) * ns_per_clock_tick; return cpu_time_ns; +#endif } JNIEXPORT jlong JNICALL Java_com_sun_management_UnixOperatingSystem_getFreePhysicalMemorySize (JNIEnv *env, jobject mbean) { -#ifdef _ALLBSD_SOURCE +#ifdef __APPLE__ + mach_msg_type_number_t count; + vm_statistics_data_t vm_stats; + kern_return_t res; + + count = HOST_VM_INFO_COUNT; + res = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vm_stats, &count); + if (res != KERN_SUCCESS) { + throw_internal_error(env, "host_statistics failed"); + return -1; + } + return (jlong)vm_stats.free_count * page_size; +#elif defined(_ALLBSD_SOURCE) /* * XXBSDL no way to do it in FreeBSD */ // throw_internal_error(env, "unimplemented in FreeBSD") return (128 * MB); -#else +#else // solaris / linux jlong num_avail_physical_pages = sysconf(_SC_AVPHYS_PAGES); return (num_avail_physical_pages * page_size); #endif @@ -290,28 +337,75 @@ Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize (JNIEnv *env, jobject mbean) { #ifdef _ALLBSD_SOURCE - jlong result; + jlong result = 0; int mib[2]; size_t rlen; mib[0] = CTL_HW; - mib[1] = HW_PHYSMEM; + mib[1] = HW_MEMSIZE; rlen = sizeof(result); - if (sysctl(mib, 2, &result, &rlen, NULL, 0) == -1) - result = 256 * MB; - - return (result); -#else + if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { + throw_internal_error(env, "sysctl failed"); + return -1; + } + return result; +#else // solaris / linux jlong num_physical_pages = sysconf(_SC_PHYS_PAGES); return (num_physical_pages * page_size); #endif } + + JNIEXPORT jlong JNICALL Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount (JNIEnv *env, jobject mbean) { -#ifdef _ALLBSD_SOURCE +#ifdef __APPLE__ + // This code is influenced by the darwin lsof source + pid_t my_pid; + struct proc_bsdinfo bsdinfo; + struct proc_fdinfo *fds; + int nfiles; + kern_return_t kres; + int res; + size_t fds_size; + + kres = pid_for_task(mach_task_self(), &my_pid); + if (res != KERN_SUCCESS) { + throw_internal_error(env, "pid_for_task failed"); + return -1; + } + + // get the maximum number of file descriptors + res = proc_pidinfo(my_pid, PROC_PIDTBSDINFO, 0, &bsdinfo, PROC_PIDTBSDINFO_SIZE); + if (res <= 0) { + throw_internal_error(env, "proc_pidinfo with PROC_PIDTBSDINFO failed"); + return -1; + } + + // allocate memory to hold the fd information (we don't acutally use this information + // but need it to get the number of open files) + fds_size = bsdinfo.pbi_nfiles * sizeof(struct proc_fdinfo); + fds = malloc(fds_size); + if (fds == NULL) { + JNU_ThrowOutOfMemoryError(env, "could not allocate space for file descriptors"); + return -1; + } + + // get the list of open files - the return value is the number of bytes + // proc_pidinfo filled in + res = proc_pidinfo(my_pid, PROC_PIDLISTFDS, 0, fds, fds_size); + if (res <= 0) { + free(fds); + throw_internal_error(env, "proc_pidinfo failed for PROC_PIDLISTFDS"); + return -1; + } + nfiles = res / sizeof(struct proc_fdinfo); + free(fds); + + return nfiles; +#elif defined(_ALLBSD_SOURCE) /* * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. */ diff --git a/jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh b/jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh index 63bff977ea8..009be0034eb 100644 --- a/jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh +++ b/jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh @@ -83,6 +83,13 @@ case `uname -s` in total_swap=`free -b | grep -i swap | awk '{print $2}'` runOne GetTotalSwapSpaceSize $total_swap ;; + Darwin ) + # $ sysctl -n vm.swapusage + # total = 8192.00M used = 7471.11M free = 720.89M (encrypted) + swap=`/usr/sbin/sysctl -n vm.swapusage | awk '{ print $3 }' | awk -F . '{ print $1 }'` || exit 2 + total_swap=`expr $swap \* 1024 \* 1024` || exit 2 + runOne GetTotalSwapSpaceSize $total_swap + ;; * ) runOne GetTotalSwapSpaceSize "sanity-only" ;; From 56c825774359f584fbc5463164c8048fc9b44bec Mon Sep 17 00:00:00 2001 From: Alex Menkov Date: Tue, 17 Apr 2012 13:03:01 +0300 Subject: [PATCH 58/82] 7100140: [macosx] Test closed/javax/sound/sampled/DirectAudio/bug6400879.java is invalid Reviewed-by: prr --- .../sound/sampled/DirectAudio/bug6400879.java | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java diff --git a/jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java b/jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java new file mode 100644 index 00000000000..6045d41e20e --- /dev/null +++ b/jdk/test/javax/sound/sampled/DirectAudio/bug6400879.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2006, 2012, 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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 6400879 + @bug 7100140 + @summary Tests that Start/Stop sequence doesn't hang + @author Alexey Menkov + @run main bug6400879 + */ + +import javax.sound.sampled.*; + +public class bug6400879 extends Thread { + + public static void main(String args[]) throws Exception { + bug6400879 pThis = new bug6400879(); + //pThis.init(); + pThis.setDaemon(true); + pThis.start(); + monitor(pThis); + } + + static final long BLOCK_TIMEOUT = 5000; // 5 sec + + // monitors that pThis doesn't hang + public static void monitor(bug6400879 pThis) throws Exception { + long prevLoop = -1; + long prevTime = currentTimeMillis(); + while (pThis.isAlive()) { + if (pThis.loopCounter == prevLoop) { + if (currentTimeMillis() - prevTime > BLOCK_TIMEOUT) { + // block! + log("Test FAILED."); + throw new RuntimeException("Test FAILED: thread has been blocked!"); + } + } else { + prevLoop = pThis.loopCounter; + prevTime = currentTimeMillis(); + } + delay(500); // sleep for 0.5 sec + } + log("Test sucessfully passed."); + } + + volatile long loopCounter = 0; + final long LOOPS_PER_LINE = 100; + + public void run() { + SourceDataLine line = null; + + DataLine.Info line_info = new DataLine.Info(SourceDataLine.class, null); + Line.Info infos[] = AudioSystem.getSourceLineInfo(line_info); + + log("total " + infos.length + " lines"); + + for (int lineNum = 0; lineNum < infos.length; lineNum++) { + try { + line = (SourceDataLine)AudioSystem.getLine(infos[lineNum]); + log("testing line: " + line); + line.open(line.getFormat()); + for (int i=0; istop (" + i + ")"); + line.start(); + line.stop(); + log(" - OK"); + loopCounter++; + } + line.close(); + line = null; + } catch (LineUnavailableException e1) { + log("LineUnavailableException caught, test okay."); + log(e1.getMessage()); + } catch (SecurityException e2) { + log("SecurityException caught, test okay."); + log(e2.getMessage()); + } catch (IllegalArgumentException e3) { + log("IllegalArgumentException caught, test okay."); + log(e3.getMessage()); + } + if (line != null) { + line.close(); + line = null; + } + } + + } + + + // helper routines + static long startTime = currentTimeMillis(); + static long currentTimeMillis() { + //return System.nanoTime() / 1000000L; + return System.currentTimeMillis(); + } + static void log(String s) { + long time = currentTimeMillis() - startTime; + long ms = time % 1000; + time /= 1000; + long sec = time % 60; + time /= 60; + long min = time % 60; + time /= 60; + System.out.println("" + + (time < 10 ? "0" : "") + time + + ":" + (min < 10 ? "0" : "") + min + + ":" + (sec < 10 ? "0" : "") + sec + + "." + (ms < 10 ? "00" : (ms < 100 ? "0" : "")) + ms + + " (" + Thread.currentThread().getName() + ") " + s); + } + static void delay(int millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) {} + } +} From c5681473cb41a7d85df2af45de37c15f4d878f6b Mon Sep 17 00:00:00 2001 From: Dmeetry Degrave Date: Tue, 17 Apr 2012 16:13:28 +0400 Subject: [PATCH 59/82] 7015981: java.net.HttpCookie.domainMatches returns false if domain doesn't start with a dot Reviewed-by: chegar --- jdk/src/share/classes/java/net/HttpCookie.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jdk/src/share/classes/java/net/HttpCookie.java b/jdk/src/share/classes/java/net/HttpCookie.java index bb12564193d..1963e1fc913 100644 --- a/jdk/src/share/classes/java/net/HttpCookie.java +++ b/jdk/src/share/classes/java/net/HttpCookie.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, 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 @@ -616,9 +616,6 @@ public final class HttpCookie implements Cloneable { * would be accepted.
  • *
  • A Set-Cookie2 with Domain=.com or Domain=.com., will always be * rejected, because there is no embedded dot.
  • - *
  • A Set-Cookie2 with Domain=ajax.com will be accepted, and the - * value for Domain will be taken to be .ajax.com, because a dot - * gets prepended to the value.
  • *
  • A Set-Cookie2 from request-host example for Domain=.local will * be accepted, because the effective host name for the request- * host is example.local, and example.local domain-matches .local.
  • From 350730be55c82623a3a778dc4b0c5f8f820549fd Mon Sep 17 00:00:00 2001 From: Rob McKenna Date: Tue, 17 Apr 2012 07:14:14 -0700 Subject: [PATCH 60/82] 7118373: (se) Potential leak file descriptor when deregistrating at around the same time as an async close Reviewed-by: alanb --- jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java | 5 +++-- .../share/classes/sun/nio/ch/ServerSocketChannelImpl.java | 5 +++-- jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java | 5 +++-- jdk/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java | 5 +++-- jdk/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java index 466a5dba058..63868935059 100644 --- a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java +++ b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -970,7 +970,8 @@ class DatagramChannelImpl protected void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + if (state != ST_KILLED) + nd.preClose(fd); ResourceManager.afterUdpClose(); // if member of mulitcast group then invalidate all keys diff --git a/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java b/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java index 671fad27733..a7f90a9660c 100644 --- a/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java +++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -261,7 +261,8 @@ class ServerSocketChannelImpl protected void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + if (state != ST_KILLED) + nd.preClose(fd); long th = thread; if (th != 0) NativeThread.signal(th); diff --git a/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java b/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java index ba55ab1b0ed..fe2c5fe33ac 100644 --- a/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java +++ b/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -816,7 +816,8 @@ class SocketChannelImpl // channel from using the old fd, which might be recycled in the // meantime and allocated to an entirely different channel. // - nd.preClose(fd); + if (state != ST_KILLED) + nd.preClose(fd); // Signal native threads, if needed. If a target thread is not // currently blocked in an I/O operation then no harm is done since diff --git a/jdk/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java b/jdk/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java index 6e89d063f2e..e99c184f8e9 100644 --- a/jdk/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java +++ b/jdk/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -84,7 +84,8 @@ class SinkChannelImpl protected void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + if (state != ST_KILLED) + nd.preClose(fd); long th = thread; if (th != 0) NativeThread.signal(th); diff --git a/jdk/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java b/jdk/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java index 915573b9869..b6b005ae315 100644 --- a/jdk/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java +++ b/jdk/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, 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 @@ -84,7 +84,8 @@ class SourceChannelImpl protected void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + if (state != ST_KILLED) + nd.preClose(fd); long th = thread; if (th != 0) NativeThread.signal(th); From 9e2790c8aecec739900c3ba3fbba82b70f3b4fe9 Mon Sep 17 00:00:00 2001 From: Jim Gish Date: Tue, 17 Apr 2012 15:46:04 +0100 Subject: [PATCH 61/82] 7116200: (cs) test/java/nio/charset/coders/StreamTimeout.java fails with "Address already in use" Co-authored-by: Remi Forax Reviewed-by: alanb, chegar --- .../nio/charset/coders/StreamTimeout.java | 131 ++++++++++-------- 1 file changed, 71 insertions(+), 60 deletions(-) diff --git a/jdk/test/java/nio/charset/coders/StreamTimeout.java b/jdk/test/java/nio/charset/coders/StreamTimeout.java index 6511955dcbb..1d8f1175c32 100644 --- a/jdk/test/java/nio/charset/coders/StreamTimeout.java +++ b/jdk/test/java/nio/charset/coders/StreamTimeout.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2012, 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 @@ -27,51 +27,56 @@ * when the underlying byte stream times out */ -import java.net.*; -import java.io.*; - +import java.io.Closeable; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.InterruptedIOException; +import java.io.OutputStreamWriter; +import java.io.PrintStream; +import java.io.Reader; +import java.io.Writer; +import java.net.ServerSocket; +import java.net.Socket; public class StreamTimeout { + static final PrintStream log = System.err; + static String charset = "US-ASCII"; - private static PrintStream log = System.err; + private static class Client extends Thread implements Closeable { + private final Socket so; - private static String charset = "US-ASCII"; - - private static Object lock = new Object(); - private static synchronized void waitABit(int millisec) { - synchronized(lock) { - try { - lock.wait(millisec); - } catch (InterruptedException e) { - //ignore - } + Client(int port) throws IOException { + so = new Socket("127.0.0.1", port); } - } - private static class Client extends Thread { + @Override public void run() { try { - Socket so = new Socket("127.0.0.1", 22222); Writer wr = new OutputStreamWriter(so.getOutputStream(), - charset); + charset); wr.write("ab"); wr.flush(); } catch (IOException x) { log.print("Unexpected exception in writer: "); x.printStackTrace(); - System.exit(1); } } + + @Override + public void close() throws IOException { + so.close(); + } } private static void gobble(InputStream is, Reader rd, - int ec, boolean force) - throws Exception - { + int ec, boolean force) + throws Exception + { int a = is.available(); boolean r = rd.ready(); log.print("" + a + " bytes available, " - + "reader " + (r ? "" : "not ") + "ready"); + + "reader " + (r ? "" : "not ") + "ready"); if (!r && !force) { log.println(); return; @@ -84,10 +89,10 @@ public class StreamTimeout { throw x; } log.println(", read() ==> " - + (c >= 0 ? ("'" + (char)c + "'" ): "EOF")); + + (c >= 0 ? ("'" + (char)c + "'" ): "EOF")); if (c != ec) throw new Exception("Incorrect value read: Expected " - + ec + ", read " + (char)c); + + ec + ", read " + (char)c); } public static void main(String[] args) throws Exception { @@ -95,43 +100,49 @@ public class StreamTimeout { if (args.length > 0) charset = args[0]; - ServerSocket ss = new ServerSocket(22222); - Thread cl = new Client(); - cl.start(); - Socket s = ss.accept(); - s.setSoTimeout(150); - InputStream is = s.getInputStream(); - Reader rd = new InputStreamReader(is, charset); + try(ServerSocket ss = new ServerSocket(0); + Client cl = new Client(ss.getLocalPort())) { - while (is.available() <= 0) - Thread.yield(); + cl.start(); - gobble(is, rd, 'a', false); - gobble(is, rd, 'b', false); - gobble(is, rd, -1, false); + try(Socket s = ss.accept()) { + s.setSoTimeout(150); - boolean caught = false; - try { - gobble(is, rd, -1, true); - } catch (InterruptedIOException e) { - log.println("Read timed out, as expected"); - caught = true; + try(InputStream is = s.getInputStream(); + Reader rd = new InputStreamReader(is, charset)) { + + while (is.available() <= 0) + Thread.yield(); + + gobble(is, rd, 'a', false); + gobble(is, rd, 'b', false); + gobble(is, rd, -1, false); + + boolean caught = false; + try { + gobble(is, rd, -1, true); + } catch (InterruptedIOException e) { + log.println("Read timed out, as expected"); + caught = true; + } + if (!caught) { + log.println("Read did not time out, test inapplicable"); + return; + } + + caught = false; + try { + gobble(is, rd, -1, true); + } catch (InterruptedIOException x) { + log.println("Second read timed out, as expected"); + caught = true; + } + if (!caught) + throw new Exception("Second read completed"); + } + } + + cl.join(); } - if (!caught) { - log.println("Read did not time out, test inapplicable"); - return; - } - - caught = false; - try { - gobble(is, rd, -1, true); - } catch (InterruptedIOException x) { - log.println("Second read timed out, as expected"); - caught = true; - } - if (!caught) - throw new Exception("Second read completed"); - } - } From ea4cd6ca39b143185f85cf94f7851ded631ec665 Mon Sep 17 00:00:00 2001 From: "Daniel D. Daugherty" Date: Tue, 17 Apr 2012 09:02:57 -0700 Subject: [PATCH 62/82] 7159320: change default ZIP_DEBUGINFO_FILES back to '1' after fix for 7133529 is available Reviewed-by: ohair, jmelvin, sspitsyn --- jdk/make/common/Defs-linux.gmk | 4 +--- jdk/make/common/Defs-solaris.gmk | 4 +--- jdk/make/common/Defs-windows.gmk | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index 9d403b11538..a0bfc3cc8d3 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -157,9 +157,7 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) _JUNK_ := $(shell \ echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") - # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo - # changes are promoted - ZIP_DEBUGINFO_FILES ?= 0 + ZIP_DEBUGINFO_FILES ?= 1 _JUNK_ := $(shell \ echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk index ad445e97848..5c272be1c35 100644 --- a/jdk/make/common/Defs-solaris.gmk +++ b/jdk/make/common/Defs-solaris.gmk @@ -165,9 +165,7 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) _JUNK_ := $(shell \ echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") - # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo - # changes are promoted - ZIP_DEBUGINFO_FILES ?= 0 + ZIP_DEBUGINFO_FILES ?= 1 _JUNK_ := $(shell \ echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") diff --git a/jdk/make/common/Defs-windows.gmk b/jdk/make/common/Defs-windows.gmk index 3d1ec781bf5..7afe0b515e0 100644 --- a/jdk/make/common/Defs-windows.gmk +++ b/jdk/make/common/Defs-windows.gmk @@ -113,9 +113,7 @@ _JUNK_ := $(shell \ echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo - # changes are promoted - ZIP_DEBUGINFO_FILES ?= 0 + ZIP_DEBUGINFO_FILES ?= 1 else ZIP_DEBUGINFO_FILES=0 endif From b86618edf93fc67305b8431c2ca5b7652dbcbf74 Mon Sep 17 00:00:00 2001 From: Alexander Zuev Date: Tue, 17 Apr 2012 21:40:12 +0400 Subject: [PATCH 63/82] 7161109: [macosx] JCK AWT interactive test DnDTextDropTest fails on MacOS Reviewed-by: serb --- .../classes/sun/lwawt/LWComponentPeer.java | 54 ++++++++++++------- jdk/src/macosx/native/sun/awt/CDropTarget.m | 4 ++ 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java index 02040f3a67a..a7b15e07c96 100644 --- a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java +++ b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java @@ -985,16 +985,23 @@ public abstract class LWComponentPeer // DropTargetPeer Method @Override public void addDropTarget(DropTarget dt) { - synchronized (dropTargetLock){ - // 10-14-02 VL: Windows WComponentPeer would add (or remove) the drop target only - // if it's the first (or last) one for the component. Otherwise this call is a no-op. - if (++fNumDropTargets == 1) { - // Having a non-null drop target would be an error but let's check just in case: - if (fDropTarget != null) - System.err.println("CComponent.addDropTarget(): current drop target is non-null."); + LWWindowPeer winPeer = getWindowPeerOrSelf(); + if (winPeer != null && winPeer != this) { + // We need to register the DropTarget in the + // peer of the window ancestor of the component + winPeer.addDropTarget(dt); + } else { + synchronized (dropTargetLock) { + // 10-14-02 VL: Windows WComponentPeer would add (or remove) the drop target only + // if it's the first (or last) one for the component. Otherwise this call is a no-op. + if (++fNumDropTargets == 1) { + // Having a non-null drop target would be an error but let's check just in case: + if (fDropTarget != null) + System.err.println("CComponent.addDropTarget(): current drop target is non-null."); - // Create a new drop target: - fDropTarget = CDropTarget.createDropTarget(dt, target, this); + // Create a new drop target: + fDropTarget = CDropTarget.createDropTarget(dt, target, this); + } } } } @@ -1002,17 +1009,24 @@ public abstract class LWComponentPeer // DropTargetPeer Method @Override public void removeDropTarget(DropTarget dt) { - synchronized (dropTargetLock){ - // 10-14-02 VL: Windows WComponentPeer would add (or remove) the drop target only - // if it's the first (or last) one for the component. Otherwise this call is a no-op. - if (--fNumDropTargets == 0) { - // Having a null drop target would be an error but let's check just in case: - if (fDropTarget != null) { - // Dispose of the drop target: - fDropTarget.dispose(); - fDropTarget = null; - } else - System.err.println("CComponent.removeDropTarget(): current drop target is null."); + LWWindowPeer winPeer = getWindowPeerOrSelf(); + if (winPeer != null && winPeer != this) { + // We need to unregister the DropTarget in the + // peer of the window ancestor of the component + winPeer.removeDropTarget(dt); + } else { + synchronized (dropTargetLock){ + // 10-14-02 VL: Windows WComponentPeer would add (or remove) the drop target only + // if it's the first (or last) one for the component. Otherwise this call is a no-op. + if (--fNumDropTargets == 0) { + // Having a null drop target would be an error but let's check just in case: + if (fDropTarget != null) { + // Dispose of the drop target: + fDropTarget.dispose(); + fDropTarget = null; + } else + System.err.println("CComponent.removeDropTarget(): current drop target is null."); + } } } } diff --git a/jdk/src/macosx/native/sun/awt/CDropTarget.m b/jdk/src/macosx/native/sun/awt/CDropTarget.m index 4453d2f4022..60cd7818254 100644 --- a/jdk/src/macosx/native/sun/awt/CDropTarget.m +++ b/jdk/src/macosx/native/sun/awt/CDropTarget.m @@ -648,6 +648,10 @@ extern JNFClassInfo jc_CDropTargetContextPeer; if (sDraggingError == FALSE) { sDraggingLocation = [sender draggingLocation]; NSPoint javaLocation = [fView convertPoint:sDraggingLocation fromView:nil]; + // The y coordinate that comes in the NSDraggingInfo seems to be reversed - probably + // has to do something with the type of view it comes to. + // This is the earliest place where we can correct it. + javaLocation.y = fView.window.frame.size.height - javaLocation.y; jint actions = [DnDUtilities mapNSDragOperationMaskToJava:[sender draggingSourceOperationMask]]; jint dropAction = sJavaDropOperation; From db4db388768090284ef0cde1ce84bfb1fd64ac84 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Tue, 17 Apr 2012 11:17:59 -0700 Subject: [PATCH 64/82] 7160380: Sync JDK8 with JAXP 1.4.5 Bring JDK8 up to date to what we have in 7u4 Reviewed-by: lancea, mullan --- .../apache/xalan/internal/XalanConstants.java | 60 + .../xalan/internal/lib/ExsltDatetime.java | 2 +- .../apache/xalan/internal/lib/ExsltMath.java | 2 +- .../apache/xalan/internal/lib/Extensions.java | 4 +- .../xalan/internal/lib/ObjectFactory.java | 661 ------ .../xalan/internal/lib/SecuritySupport.java | 127 -- .../xalan/internal/lib/SecuritySupport12.java | 148 -- .../internal/utils/ConfigurationError.java | 61 + .../xalan/internal/utils/FactoryImpl.java | 57 + .../internal/utils}/ObjectFactory.java | 123 +- .../internal/utils}/SecuritySupport.java | 44 +- .../xalan/internal/xslt/EnvironmentCheck.java | 47 +- .../xalan/internal/xslt/ObjectFactory.java | 663 ------ .../apache/xalan/internal/xslt/Process.java | 17 +- .../xalan/internal/xslt/SecuritySupport.java | 127 -- .../internal/xslt/SecuritySupport12.java | 148 -- .../apache/xalan/internal/xsltc/Translet.java | 3 + .../xalan/internal/xsltc/cmdline/Compile.java | 11 +- .../internal/xsltc/cmdline/ObjectFactory.java | 663 ------ .../xsltc/cmdline/SecuritySupport.java | 127 -- .../xsltc/cmdline/SecuritySupport12.java | 148 -- .../internal/xsltc/cmdline/Transform.java | 4 +- .../xsltc/compiler/AbsoluteLocationPath.java | 8 +- .../xsltc/compiler/AbsolutePathPattern.java | 4 +- .../internal/xsltc/compiler/AttributeSet.java | 6 +- .../xalan/internal/xsltc/compiler/Copy.java | 12 +- .../internal/xsltc/compiler/FilterExpr.java | 128 +- .../xsltc/compiler/FilterParentPath.java | 24 +- .../FilteredAbsoluteLocationPath.java | 6 +- .../xsltc/compiler/FunctionAvailableCall.java | 4 +- .../internal/xsltc/compiler/FunctionCall.java | 19 +- .../xalan/internal/xsltc/compiler/Key.java | 8 +- .../internal/xsltc/compiler/Message.java | 36 +- .../xalan/internal/xsltc/compiler/Mode.java | 44 +- .../xalan/internal/xsltc/compiler/Number.java | 23 +- .../xsltc/compiler/ObjectFactory.java | 663 ------ .../internal/xsltc/compiler/ParameterRef.java | 2 - .../xsltc/compiler/ParentLocationPath.java | 12 +- .../xsltc/compiler/ParentPattern.java | 11 +- .../xalan/internal/xsltc/compiler/Parser.java | 25 +- .../internal/xsltc/compiler/Predicate.java | 8 +- .../xsltc/compiler/ProcessingInstruction.java | 9 +- .../xsltc/compiler/SecuritySupport.java | 127 -- .../xsltc/compiler/SecuritySupport12.java | 148 -- .../xalan/internal/xsltc/compiler/Sort.java | 65 +- .../xalan/internal/xsltc/compiler/Step.java | 32 +- .../internal/xsltc/compiler/StepPattern.java | 37 +- .../internal/xsltc/compiler/Stylesheet.java | 156 +- .../internal/xsltc/compiler/SymbolTable.java | 32 +- .../xsltc/compiler/SyntaxTreeNode.java | 3 + .../internal/xsltc/compiler/TestSeq.java | 4 +- .../internal/xsltc/compiler/Variable.java | 20 +- .../internal/xsltc/compiler/VariableBase.java | 10 +- .../internal/xsltc/compiler/VariableRef.java | 2 - .../internal/xsltc/compiler/Whitespace.java | 17 +- .../xalan/internal/xsltc/compiler/XSLTC.java | 25 +- .../internal/xsltc/compiler/XslAttribute.java | 9 +- .../internal/xsltc/compiler/XslElement.java | 11 +- .../xsltc/compiler/util/ClassGenerator.java | 7 + .../xsltc/compiler/util/ErrorMessages.java | 59 +- .../xsltc/compiler/util/ErrorMsg.java | 10 +- .../xsltc/compiler/util/InternalError.java | 37 + .../compiler/util/MarkerInstruction.java | 98 + .../xsltc/compiler/util/MethodGenerator.java | 1853 ++++++++++++++++- .../xsltc/compiler/util/ObjectFactory.java | 663 ------ .../xsltc/compiler/util/ObjectType.java | 4 +- .../compiler/util/OutlineableChunkEnd.java | 70 + .../compiler/util/OutlineableChunkStart.java | 80 + .../xsltc/compiler/util/RealType.java | 6 +- .../xsltc/compiler/util/ResultTreeType.java | 12 +- .../xsltc/compiler/util/SecuritySupport.java | 127 -- .../compiler/util/SecuritySupport12.java | 148 -- .../xsltc/dom/ArrayNodeListIterator.java | 91 + .../internal/xsltc/dom/DupFilterIterator.java | 11 +- .../internal/xsltc/dom/NodeSortRecord.java | 4 +- .../xsltc/dom/NodeSortRecordFactory.java | 4 +- .../internal/xsltc/dom/ObjectFactory.java | 663 ------ .../internal/xsltc/dom/SecuritySupport.java | 127 -- .../internal/xsltc/dom/SecuritySupport12.java | 148 -- .../internal/xsltc/dom/XSLTCDTMManager.java | 16 +- .../xsltc/runtime/AbstractTranslet.java | 23 +- .../internal/xsltc/runtime/BasisLibrary.java | 265 ++- .../internal/xsltc/runtime/Hashtable.java | 2 +- .../xsltc/runtime/InternalRuntimeError.java | 36 + .../internal/xsltc/runtime/ObjectFactory.java | 663 ------ .../xsltc/runtime/SecuritySupport.java | 127 -- .../xsltc/runtime/SecuritySupport12.java | 148 -- .../output/TransletOutputHandlerFactory.java | 12 +- .../internal/xsltc/trax/ObjectFactory.java | 663 ------ .../xalan/internal/xsltc/trax/SAX2DOM.java | 46 +- .../internal/xsltc/trax/SecuritySupport.java | 127 -- .../xsltc/trax/SecuritySupport12.java | 148 -- .../trax/SmartTransformerFactoryImpl.java | 3 +- .../xsltc/trax/TemplatesHandlerImpl.java | 14 +- .../internal/xsltc/trax/TemplatesImpl.java | 26 +- .../xalan/internal/xsltc/trax/TrAXFilter.java | 6 +- .../xsltc/trax/TransformerFactoryImpl.java | 56 +- .../internal/xsltc/trax/TransformerImpl.java | 55 +- .../xalan/internal/xsltc/trax/Util.java | 4 +- .../dom/CoreDOMImplementationImpl.java | 17 +- .../xerces/internal/dom/CoreDocumentImpl.java | 12 +- .../internal/dom/DOMConfigurationImpl.java | 4 +- .../xerces/internal/dom/ObjectFactory.java | 555 ----- .../xerces/internal/impl/Constants.java | 4 +- .../impl/XMLDocumentFragmentScannerImpl.java | 1 + .../internal/impl/XMLEntityManager.java | 75 +- .../internal/impl/XMLEntityScanner.java | 5 +- .../internal/impl/XMLStreamReaderImpl.java | 29 +- .../xerces/internal/impl/dv/DTDDVFactory.java | 14 +- .../internal/impl/dv/ObjectFactory.java | 555 ----- .../internal/impl/dv/SchemaDVFactory.java | 5 +- .../impl/msg/XMLSchemaMessages.properties | 3 + .../impl/xpath/regex/ParserForXMLSchema.java | 24 +- .../internal/impl/xs/XMLSchemaLoader.java | 9 +- .../internal/impl/xs/XMLSchemaValidator.java | 34 +- .../internal/impl/xs/identity/Field.java | 4 +- .../datatype/XMLGregorianCalendarImpl.java | 34 +- .../jaxp/validation/DOMValidatorHelper.java | 6 +- .../jaxp/validation/StAXValidatorHelper.java | 7 +- .../validation/StreamValidatorHelper.java | 9 +- .../jaxp/validation/ValidatorHandlerImpl.java | 4 +- .../jaxp/validation/XMLSchemaFactory.java | 18 + .../internal/parsers/AbstractDOMParser.java | 16 +- .../xerces/internal/parsers/DOMParser.java | 5 +- .../internal/parsers/DOMParserImpl.java | 18 +- .../xerces/internal/parsers/SAXParser.java | 7 +- .../internal/parsers/SecuritySupport.java | 152 -- .../internal/parsers/XMLDocumentParser.java | 16 +- .../internal/parsers/XMLGrammarParser.java | 7 +- .../internal/parsers/XMLGrammarPreparser.java | 6 +- .../util/ParserConfigurationSettings.java | 11 +- .../internal/utils/ConfigurationError.java | 58 + .../{parsers => utils}/ObjectFactory.java | 250 +-- .../{dom => utils}/SecuritySupport.java | 37 +- .../internal/xinclude/XIncludeHandler.java | 9 +- .../apache/xml/internal/dtm/DTMManager.java | 73 +- .../xml/internal/dtm/ObjectFactory.java | 663 ------ .../xml/internal/dtm/SecuritySupport.java | 127 -- .../xml/internal/dtm/SecuritySupport12.java | 148 -- .../xml/internal/dtm/ref/DTMDefaultBase.java | 10 +- .../internal/dtm/ref/DTMManagerDefault.java | 6 +- .../dtm/ref/IncrementalSAXSource_Xerces.java | 7 +- .../xml/internal/dtm/ref/ObjectFactory.java | 663 ------ .../xml/internal/dtm/ref/SecuritySupport.java | 127 -- .../internal/dtm/ref/SecuritySupport12.java | 148 -- .../xml/internal/dtm/ref/dom2dtm/DOM2DTM.java | 2 +- .../apache/xml/internal/resolver/Catalog.java | 4 +- .../xml/internal/resolver/CatalogManager.java | 24 +- .../xml/internal/resolver/Resolver.java | 7 +- .../resolver/tools/CatalogResolver.java | 5 +- .../resolver/tools/ResolvingParser.java | 6 +- .../resolver/tools/ResolvingXMLFilter.java | 3 +- .../resolver/tools/ResolvingXMLReader.java | 8 +- .../internal/serialize/SerializerFactory.java | 6 +- .../xml/internal/serializer/CharInfo.java | 325 +-- .../internal/serializer/EmptySerializer.java | 7 + .../xml/internal/serializer/Encodings.java | 7 +- .../internal/serializer/ObjectFactory.java | 662 ------ .../serializer/OutputPropertiesFactory.java | 20 + .../internal/serializer/SecuritySupport.java | 125 -- .../serializer/SecuritySupport12.java | 145 -- .../serializer/SerializationHandler.java | 6 + .../internal/serializer/SerializerBase.java | 15 + .../serializer/SerializerFactory.java | 7 +- .../internal/serializer/ToHTMLSAXHandler.java | 4 +- .../xml/internal/serializer/ToHTMLStream.java | 4 +- .../xml/internal/serializer/ToStream.java | 357 +++- .../internal/serializer/ToXMLSAXHandler.java | 4 +- .../xml/internal/serializer/ToXMLStream.java | 39 +- .../serializer/WriterToUTF8Buffered.java | 12 +- .../xml/internal/serializer/utils/URI.java | 2 +- .../xml/internal/utils/ObjectFactory.java | 658 ------ .../apache/xml/internal/utils/ObjectPool.java | 30 +- .../xml/internal/utils/SecuritySupport.java | 127 -- .../xml/internal/utils/SecuritySupport12.java | 148 -- .../apache/xml/internal/utils/TreeWalker.java | 19 +- .../org/apache/xml/internal/utils/URI.java | 2 +- .../xml/internal/utils/XMLReaderManager.java | 24 +- .../apache/xml/internal/utils/XMLString.java | 16 +- .../xml/internal/utils/XMLStringDefault.java | 16 + .../apache/xpath/internal/XPathContext.java | 35 +- .../xpath/internal/axes/AxesWalker.java | 2 +- .../internal/axes/BasicTestIterator.java | 3 +- .../internal/axes/DescendantIterator.java | 4 +- .../xpath/internal/axes/IteratorPool.java | 30 +- .../internal/axes/MatchPatternIterator.java | 3 +- .../xpath/internal/axes/OneStepIterator.java | 3 +- .../internal/axes/OneStepIteratorForward.java | 3 +- .../internal/axes/UnionPathIterator.java | 3 +- .../xpath/internal/axes/WalkerFactory.java | 13 +- .../xpath/internal/axes/WalkingIterator.java | 3 +- .../xpath/internal/compiler/FuncLoader.java | 7 +- .../internal/compiler/ObjectFactory.java | 635 ------ .../apache/xpath/internal/compiler/OpMap.java | 2 +- .../internal/compiler/SecuritySupport.java | 127 -- .../internal/compiler/SecuritySupport12.java | 148 -- .../functions/FuncSystemProperty.java | 5 +- .../internal/functions/SecuritySupport.java | 127 -- .../internal/functions/SecuritySupport12.java | 148 -- .../internal/jaxp/XPathExpressionImpl.java | 8 +- .../xpath/internal/jaxp/XPathFactoryImpl.java | 28 +- .../apache/xpath/internal/jaxp/XPathImpl.java | 24 +- .../xpath/internal/objects/XString.java | 29 +- .../xpath/internal/objects/XStringForFSB.java | 2 +- .../xpath/internal/patterns/StepPattern.java | 2 +- .../xml/internal/stream/XMLEntityStorage.java | 31 +- .../stream/writers/XMLStreamWriterImpl.java | 3 + .../src/javax/xml/datatype/FactoryFinder.java | 2 +- jaxp/src/javax/xml/parsers/FactoryFinder.java | 63 +- jaxp/src/javax/xml/stream/FactoryFinder.java | 2 +- .../javax/xml/transform/FactoryFinder.java | 107 +- .../xml/validation/SchemaFactoryFinder.java | 43 +- .../javax/xml/xpath/XPathFactoryFinder.java | 42 +- 213 files changed, 5006 insertions(+), 15178 deletions(-) create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java rename jaxp/src/com/sun/org/apache/{xpath/internal/functions => xalan/internal/utils}/ObjectFactory.java (89%) rename jaxp/src/com/sun/org/apache/{xerces/internal/impl/dv => xalan/internal/utils}/SecuritySupport.java (74%) delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/InternalError.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MarkerInstruction.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkEnd.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkStart.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ArrayNodeListIterator.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java create mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/InternalRuntimeError.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java create mode 100644 jaxp/src/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java rename jaxp/src/com/sun/org/apache/xerces/internal/{parsers => utils}/ObjectFactory.java (64%) rename jaxp/src/com/sun/org/apache/xerces/internal/{dom => utils}/SecuritySupport.java (77%) delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java delete mode 100644 jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java delete mode 100644 jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java delete mode 100644 jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java b/jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java new file mode 100644 index 00000000000..5e21f40d854 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2011 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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 com.sun.org.apache.xalan.internal; + +import com.sun.org.apache.xerces.internal.impl.*; +import java.util.Enumeration; +import java.util.NoSuchElementException; + +/** + * Commonly used constants. + * + * @author Huizhe Wang, Oracle + * + * @version $Id: Constants.java,v 1.14 2011-06-07 04:39:40 joehw Exp $ + */ +public final class XalanConstants { + + // + // Constants + // + // Oracle Feature: + /** + *

    Use Service Mechanism

    + * + *
      + *
    • + * true instructs the implementation to use service mechanism to find implementation. + * This is the default behavior. + *
    • + *
    • + * false instructs the implementation to skip service mechanism and use the default implementation. + *
    • + *
    + */ + public static final String ORACLE_FEATURE_SERVICE_MECHANISM = "http://www.oracle.com/feature/use-service-mechanism"; + +} // class Constants diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java index 51b6396344b..d717d8d1fa2 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltDatetime.java @@ -97,7 +97,7 @@ public class ExsltDatetime // In a few cases, the time zone may be +/-hh:30. int min = offset%(60*60*1000); char posneg = hrs < 0? '-': '+'; - buff.append(posneg + formatDigits(hrs) + ':' + formatDigits(min)); + buff.append(posneg).append(formatDigits(hrs)).append(':').append(formatDigits(min)); } return buff.toString(); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java index 6d760fc1975..6066832a2a6 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltMath.java @@ -381,7 +381,7 @@ public class ExsltMath extends ExsltBase if (bits <= value.length()) value = value.substring(0, bits); - return new Double(value).doubleValue(); + return Double.parseDouble(value); } else return Double.NaN; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java index 8efb91bcce9..27e4083617d 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java @@ -35,6 +35,7 @@ import com.sun.org.apache.xpath.internal.NodeSet; import com.sun.org.apache.xpath.internal.objects.XBoolean; import com.sun.org.apache.xpath.internal.objects.XNumber; import com.sun.org.apache.xpath.internal.objects.XObject; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; @@ -363,8 +364,7 @@ public class Extensions try { // Use reflection to try to find xml-commons utility 'Which' - Class clazz = ObjectFactory.findProviderClass( - WHICH_CLASSNAME, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(WHICH_CLASSNAME, true); if (null == clazz) return null; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java deleted file mode 100644 index 39aca74e6c6..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/ObjectFactory.java +++ /dev/null @@ -1,661 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 02:39:54 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xalan.internal.lib; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:40:59 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - System.err.println("JAXP: " + msg); - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -7640369932165775029L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java deleted file mode 100644 index d6acb0113a0..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.1.2.1 2005/08/01 02:08:48 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xalan.internal.lib; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java deleted file mode 100644 index 8cfd729d86f..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/lib/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.1.2.1 2005/08/01 02:08:47 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xalan.internal.lib; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java b/jaxp/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java new file mode 100644 index 00000000000..5832f82868b --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java @@ -0,0 +1,61 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 02:39:54 jeffsuttor Exp $ + */ + +package com.sun.org.apache.xalan.internal.utils; + +/** + * A configuration error. This was an internal class in ObjectFactory previously + */ +public final class ConfigurationError + extends Error { + + // + // Data + // + + /** Exception. */ + private Exception exception; + + // + // Constructors + // + + /** + * Construct a new instance with the specified detail string and + * exception. + */ + ConfigurationError(String msg, Exception x) { + super(msg); + this.exception = x; + } // (String,Exception) + + // + // methods + // + + /** Returns the exception associated to this error. */ + public Exception getException() { + return exception; + } // getException():Exception + +} // class ConfigurationError diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java new file mode 100644 index 00000000000..d62e0ab40cb --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2011 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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 com.sun.org.apache.xalan.internal.utils; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.SAXParserFactory; + +/** + * + * @author huizhe wang + */ +public class FactoryImpl { + + static final String DBF = "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"; + static final String SF = "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"; + + static public DocumentBuilderFactory getDOMFactory(boolean useServicesMechanism) { + DocumentBuilderFactory dbf = + useServicesMechanism ? + DocumentBuilderFactory.newInstance() : + DocumentBuilderFactory.newInstance( DBF, + FactoryImpl.class.getClassLoader()); + + return dbf; + } + static public SAXParserFactory getSAXFactory(boolean useServicesMechanism) { + SAXParserFactory factory = + useServicesMechanism ? + SAXParserFactory.newInstance() : + SAXParserFactory.newInstance(SF, + FactoryImpl.class.getClassLoader()); + return factory; + } +} diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java similarity index 89% rename from jaxp/src/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java index 54f13f422f3..8e489bb736d 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/functions/ObjectFactory.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java @@ -18,10 +18,10 @@ * limitations under the License. */ /* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/14 20:25:54 jeffsuttor Exp $ + * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 02:39:54 jeffsuttor Exp $ */ -package com.sun.org.apache.xpath.internal.functions; +package com.sun.org.apache.xalan.internal.utils; import java.io.InputStream; import java.io.IOException; @@ -47,9 +47,9 @@ import java.io.InputStreamReader; * class and modified to be used as a general utility for creating objects * dynamically. * - * @version $Id: ObjectFactory.java,v 1.7 2008/04/02 00:40:59 joehw Exp $ + * @version $Id: ObjectFactory.java,v 1.11 2010-11-01 04:34:25 joehw Exp $ */ -class ObjectFactory { +public class ObjectFactory { // // Constants @@ -100,7 +100,7 @@ class ObjectFactory { * * @exception ObjectFactory.ConfigurationError */ - static Object createObject(String factoryId, String fallbackClassName) + public static Object createObject(String factoryId, String fallbackClassName) throws ConfigurationError { return createObject(factoryId, null, fallbackClassName); } // createObject(String,String):Object @@ -174,7 +174,7 @@ class ObjectFactory { * * @exception ObjectFactory.ConfigurationError */ - static Class lookUpFactoryClass(String factoryId) + public static Class lookUpFactoryClass(String factoryId) throws ConfigurationError { return lookUpFactoryClass(factoryId, null, null); @@ -202,7 +202,7 @@ class ObjectFactory { * * @exception ObjectFactory.ConfigurationError */ - static Class lookUpFactoryClass(String factoryId, + public static Class lookUpFactoryClass(String factoryId, String propertiesFilename, String fallbackClassName) throws ConfigurationError @@ -260,11 +260,9 @@ class ObjectFactory { String propertiesFilename, String fallbackClassName) { - SecuritySupport ss = SecuritySupport.getInstance(); - // Use the system property first try { - String systemProp = ss.getSystemProperty(factoryId); + String systemProp = SecuritySupport.getSystemProperty(factoryId); if (systemProp != null) { if (DEBUG) debugPrintln("found system property, value=" + systemProp); return systemProp; @@ -282,11 +280,11 @@ class ObjectFactory { File propertiesFile = null; boolean propertiesFileExists = false; try { - String javah = ss.getSystemProperty("java.home"); + String javah = SecuritySupport.getSystemProperty("java.home"); propertiesFilename = javah + File.separator + "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); + propertiesFileExists = SecuritySupport.getFileExists(propertiesFile); } catch (SecurityException e) { // try again... fLastModified = -1; @@ -300,7 +298,7 @@ class ObjectFactory { // file existed last time if(fLastModified >= 0) { if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { + (fLastModified < (fLastModified = SecuritySupport.getLastModified(propertiesFile)))) { loadProperties = true; } else { // file has stopped existing... @@ -313,14 +311,14 @@ class ObjectFactory { // file has started to exist: if(propertiesFileExists) { loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); + fLastModified = SecuritySupport.getLastModified(propertiesFile); } // else, nothing's changed } if(loadProperties) { // must never have attempted to read xalan.properties // before (or it's outdeated) fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); + fis = SecuritySupport.getFileInputStream(propertiesFile); fXalanProperties.load(fis); } } catch (Exception x) { @@ -347,7 +345,7 @@ class ObjectFactory { } else { FileInputStream fis = null; try { - fis = ss.getFileInputStream(new File(propertiesFilename)); + fis = SecuritySupport.getFileInputStream(new File(propertiesFilename)); Properties props = new Properties(); props.load(fis); factoryClassName = props.getProperty(factoryId); @@ -392,15 +390,18 @@ class ObjectFactory { * Figure out which ClassLoader to use. For JDK 1.2 and later use * the context ClassLoader. */ - static ClassLoader findClassLoader() + public static ClassLoader findClassLoader() throws ConfigurationError { - SecuritySupport ss = SecuritySupport.getInstance(); + if (System.getSecurityManager()!=null) { + //this will ensure bootclassloader is used + return null; + } // Figure out which ClassLoader to use for loading the provider // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); + ClassLoader context = SecuritySupport.getContextClassLoader(); + ClassLoader system = SecuritySupport.getSystemClassLoader(); ClassLoader chain = system; while (true) { @@ -425,7 +426,7 @@ class ObjectFactory { if (chain == null) { break; } - chain = ss.getParentClassLoader(chain); + chain = SecuritySupport.getParentClassLoader(chain); } // Assert: Current ClassLoader not in chain of @@ -440,14 +441,29 @@ class ObjectFactory { // Check for any extension ClassLoaders in chain up to // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; + chain = SecuritySupport.getParentClassLoader(chain); + } // Assert: Context ClassLoader not in chain of // boot/extension/system ClassLoaders return context; } // findClassLoader():ClassLoader + /** + * Create an instance of a class using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static Object newInstance(String className, boolean doFallback) + throws ConfigurationError + { + if (System.getSecurityManager()!=null) { + return newInstance(className, null, doFallback); + } else { + return newInstance(className, + findClassLoader (), doFallback); + } + } + /** * Create an instance of a class using the specified ClassLoader */ @@ -472,6 +488,21 @@ class ObjectFactory { } } + /** + * Find a Class using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static Class findProviderClass(String className, boolean doFallback) + throws ClassNotFoundException, ConfigurationError + { + if (System.getSecurityManager()!=null) { + return Class.forName(className); + } else { + return findProviderClass (className, + findClassLoader (), doFallback); + } + } + /** * Find a Class using the specified ClassLoader */ @@ -536,21 +567,20 @@ class ObjectFactory { */ private static String findJarServiceProviderName(String factoryId) { - SecuritySupport ss = SecuritySupport.getInstance(); String serviceId = SERVICES_PATH + factoryId; InputStream is = null; // First try the Context ClassLoader ClassLoader cl = findClassLoader(); - is = ss.getResourceAsStream(cl, serviceId); + is = SecuritySupport.getResourceAsStream(cl, serviceId); // If no provider found then try the current ClassLoader if (is == null) { ClassLoader current = ObjectFactory.class.getClassLoader(); if (cl != current) { cl = current; - is = ss.getResourceAsStream(cl, serviceId); + is = SecuritySupport.getResourceAsStream(cl, serviceId); } } @@ -619,45 +649,4 @@ class ObjectFactory { return null; } - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -5782303800588797207L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - } // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java similarity index 74% rename from jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java index d5a30f9f70a..4437a488e6a 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SecuritySupport.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java @@ -3,13 +3,13 @@ * DO NOT REMOVE OR ALTER! */ /* - * Copyright 2002,2004 The Apache Software Foundation. + * Copyright 2002-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,8 +17,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +/* + * $Id: SecuritySupport.java,v 1.1.2.1 2005/08/01 02:08:48 jeffsuttor Exp $ + */ -package com.sun.org.apache.xerces.internal.impl.dv; +package com.sun.org.apache.xalan.internal.utils; import java.io.File; import java.io.FileInputStream; @@ -36,18 +39,18 @@ import java.security.PrivilegedExceptionAction; * * @xerces.internal */ -final class SecuritySupport { +public final class SecuritySupport { private static final SecuritySupport securitySupport = new SecuritySupport(); /** * Return an instance of this class. */ - static SecuritySupport getInstance() { + public static SecuritySupport getInstance() { return securitySupport; } - ClassLoader getContextClassLoader() { + static ClassLoader getContextClassLoader() { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -60,7 +63,7 @@ final class SecuritySupport { }); } - ClassLoader getSystemClassLoader() { + static ClassLoader getSystemClassLoader() { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -73,7 +76,7 @@ final class SecuritySupport { }); } - ClassLoader getParentClassLoader(final ClassLoader cl) { + static ClassLoader getParentClassLoader(final ClassLoader cl) { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -89,7 +92,7 @@ final class SecuritySupport { }); } - String getSystemProperty(final String propName) { + public static String getSystemProperty(final String propName) { return (String) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -98,7 +101,7 @@ final class SecuritySupport { }); } - FileInputStream getFileInputStream(final File file) + static FileInputStream getFileInputStream(final File file) throws FileNotFoundException { try { @@ -112,8 +115,19 @@ final class SecuritySupport { throw (FileNotFoundException)e.getException(); } } + /** + * Return resource using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static InputStream getResourceAsStream(final String name) { + if (System.getSecurityManager()!=null) { + return getResourceAsStream(null, name); + } else { + return getResourceAsStream(ObjectFactory.findClassLoader(), name); + } + } - InputStream getResourceAsStream(final ClassLoader cl, + public static InputStream getResourceAsStream(final ClassLoader cl, final String name) { return (InputStream) @@ -121,7 +135,7 @@ final class SecuritySupport { public Object run() { InputStream ris; if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); + ris = Object.class.getResourceAsStream("/"+name); } else { ris = cl.getResourceAsStream(name); } @@ -130,16 +144,16 @@ final class SecuritySupport { }); } - boolean getFileExists(final File f) { + static boolean getFileExists(final File f) { return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { - return new Boolean(f.exists()); + return f.exists() ? Boolean.TRUE : Boolean.FALSE; } })).booleanValue(); } - long getLastModified(final File f) { + static long getLastModified(final File f) { return ((Long) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java index 15003b7d4da..8940d05823b 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java @@ -22,6 +22,8 @@ */ package com.sun.org.apache.xalan.internal.xslt; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; + import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; @@ -794,8 +796,7 @@ public class EnvironmentCheck { final String JAXP1_CLASS = "javax.xml.stream.XMLStreamConstants"; - clazz = ObjectFactory.findProviderClass( - JAXP1_CLASS, ObjectFactory.findClassLoader(), true); + clazz = ObjectFactory.findProviderClass(JAXP1_CLASS, true); // If we succeeded, we have JAXP 1.4 available h.put(VERSION + "JAXP", "1.4"); @@ -825,8 +826,7 @@ public class EnvironmentCheck final String XALAN1_VERSION_CLASS = "com.sun.org.apache.xalan.internal.xslt.XSLProcessorVersion"; - Class clazz = ObjectFactory.findProviderClass( - XALAN1_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(XALAN1_VERSION_CLASS, true); // Found Xalan-J 1.x, grab it's version fields StringBuffer buf = new StringBuffer(); @@ -858,8 +858,7 @@ public class EnvironmentCheck final String XALAN2_VERSION_CLASS = "com.sun.org.apache.xalan.internal.processor.XSLProcessorVersion"; - Class clazz = ObjectFactory.findProviderClass( - XALAN2_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(XALAN2_VERSION_CLASS, true); // Found Xalan-J 2.x, grab it's version fields StringBuffer buf = new StringBuffer(); @@ -880,8 +879,7 @@ public class EnvironmentCheck final String XALAN2_2_VERSION_METHOD = "getVersion"; final Class noArgs[] = new Class[0]; - Class clazz = ObjectFactory.findProviderClass( - XALAN2_2_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(XALAN2_2_VERSION_CLASS, true); Method method = clazz.getMethod(XALAN2_2_VERSION_METHOD, noArgs); Object returnValue = method.invoke(null, new Object[0]); @@ -913,8 +911,7 @@ public class EnvironmentCheck { final String XERCES1_VERSION_CLASS = "com.sun.org.apache.xerces.internal.framework.Version"; - Class clazz = ObjectFactory.findProviderClass( - XERCES1_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(XERCES1_VERSION_CLASS, true); // Found Xerces-J 1.x, grab it's version fields Field f = clazz.getField("fVersion"); @@ -932,8 +929,7 @@ public class EnvironmentCheck { final String XERCES2_VERSION_CLASS = "com.sun.org.apache.xerces.internal.impl.Version"; - Class clazz = ObjectFactory.findProviderClass( - XERCES2_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(XERCES2_VERSION_CLASS, true); // Found Xerces-J 2.x, grab it's version fields Field f = clazz.getField("fVersion"); @@ -950,8 +946,7 @@ public class EnvironmentCheck { final String CRIMSON_CLASS = "org.apache.crimson.parser.Parser2"; - Class clazz = ObjectFactory.findProviderClass( - CRIMSON_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(CRIMSON_CLASS, true); //@todo determine specific crimson version h.put(VERSION + "crimson", CLASS_PRESENT); @@ -979,8 +974,7 @@ public class EnvironmentCheck final String ANT_VERSION_METHOD = "getAntVersion"; // noArgs final Class noArgs[] = new Class[0]; - Class clazz = ObjectFactory.findProviderClass( - ANT_VERSION_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(ANT_VERSION_CLASS, true); Method method = clazz.getMethod(ANT_VERSION_METHOD, noArgs); Object returnValue = method.invoke(null, new Object[0]); @@ -1009,8 +1003,7 @@ public class EnvironmentCheck try { - Class clazz = ObjectFactory.findProviderClass( - DOM_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(DOM_CLASS, true); Method method = clazz.getMethod(DOM_LEVEL3_METHOD, null); @@ -1052,8 +1045,7 @@ public class EnvironmentCheck try { - Class clazz = ObjectFactory.findProviderClass( - DOM_LEVEL2_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(DOM_LEVEL2_CLASS, true); Method method = clazz.getMethod(DOM_LEVEL2_METHOD, twoStringArgs); @@ -1065,8 +1057,7 @@ public class EnvironmentCheck { // Check for the working draft version, which is // commonly found, but won't work anymore - clazz = ObjectFactory.findProviderClass( - DOM_LEVEL2WD_CLASS, ObjectFactory.findClassLoader(), true); + clazz = ObjectFactory.findProviderClass(DOM_LEVEL2WD_CLASS, true); method = clazz.getMethod(DOM_LEVEL2WD_METHOD, twoStringArgs); @@ -1078,8 +1069,7 @@ public class EnvironmentCheck try { // Check for the final draft version as well - clazz = ObjectFactory.findProviderClass( - DOM_LEVEL2FD_CLASS, ObjectFactory.findClassLoader(), true); + clazz = ObjectFactory.findProviderClass(DOM_LEVEL2FD_CLASS, true); method = clazz.getMethod(DOM_LEVEL2FD_METHOD, twoStringArgs); @@ -1133,8 +1123,7 @@ public class EnvironmentCheck { // This method was only added in the final SAX 2.0 release; // see changes.html "Changes from SAX 2.0beta2 to SAX 2.0prerelease" - Class clazz = ObjectFactory.findProviderClass( - SAX_VERSION2BETA_CLASSNF, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(SAX_VERSION2BETA_CLASSNF, true); Method method = clazz.getMethod(SAX_VERSION2BETA_METHODNF, attributesArg); @@ -1151,8 +1140,7 @@ public class EnvironmentCheck try { - Class clazz = ObjectFactory.findProviderClass( - SAX_VERSION2_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(SAX_VERSION2_CLASS, true); Method method = clazz.getMethod(SAX_VERSION2_METHOD, oneStringArg); @@ -1170,8 +1158,7 @@ public class EnvironmentCheck try { - Class clazz = ObjectFactory.findProviderClass( - SAX_VERSION1_CLASS, ObjectFactory.findClassLoader(), true); + Class clazz = ObjectFactory.findProviderClass(SAX_VERSION1_CLASS, true); Method method = clazz.getMethod(SAX_VERSION1_METHOD, oneStringArg); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java deleted file mode 100644 index 701b5e20d52..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 12:18:06 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xslt; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:41:00 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 2276082712114762609L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java index abdc15f3eb2..216c4cfee28 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java @@ -55,6 +55,8 @@ import javax.xml.transform.stream.StreamSource; import com.sun.org.apache.xalan.internal.Version; import com.sun.org.apache.xalan.internal.res.XSLMessages; import com.sun.org.apache.xalan.internal.res.XSLTErrorResources; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; +import com.sun.org.apache.xalan.internal.utils.ConfigurationError; //J2SE does not support Xalan interpretive /* @@ -457,12 +459,11 @@ public class Process { try { - uriResolver = (URIResolver) ObjectFactory.newInstance( - argv[++i], ObjectFactory.findClassLoader(), true); + uriResolver = (URIResolver) ObjectFactory.newInstance(argv[++i], true); tfactory.setURIResolver(uriResolver); } - catch (ObjectFactory.ConfigurationError cnfe) + catch (ConfigurationError cnfe) { msg = XSLMessages.createMessage( XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION, @@ -486,10 +487,9 @@ public class Process { try { - entityResolver = (EntityResolver) ObjectFactory.newInstance( - argv[++i], ObjectFactory.findClassLoader(), true); + entityResolver = (EntityResolver) ObjectFactory.newInstance(argv[++i], true); } - catch (ObjectFactory.ConfigurationError cnfe) + catch (ConfigurationError cnfe) { msg = XSLMessages.createMessage( XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION, @@ -514,10 +514,9 @@ public class Process { try { - contentHandler = (ContentHandler) ObjectFactory.newInstance( - argv[++i], ObjectFactory.findClassLoader(), true); + contentHandler = (ContentHandler) ObjectFactory.newInstance(argv[++i], true); } - catch (ObjectFactory.ConfigurationError cnfe) + catch (ConfigurationError cnfe) { msg = XSLMessages.createMessage( XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION, diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java deleted file mode 100644 index d7b9462d136..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/09 07:17:15 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xslt; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java deleted file mode 100644 index 3e0bb6fa4e9..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xslt/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/09 07:17:45 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xslt; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java index ba3552cbe10..ca6ff50ef0f 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/Translet.java @@ -51,4 +51,7 @@ public interface Translet { public String[] getUrisArray(); public int[] getTypesArray(); public String[] getNamespaceArray(); + public boolean useServicesMechnism(); + public void setServicesMechnism(boolean flag); + } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java index a27959e49ee..b6cdff01c0b 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java @@ -55,11 +55,10 @@ public final class Compile { public static void printUsage() { - StringBuffer vers = new StringBuffer("XSLTC version " + - VERSION_MAJOR + "." + VERSION_MINOR + - ((VERSION_DELTA > 0) ? ("."+VERSION_DELTA) : (""))); - System.err.println(vers + "\n" + - new ErrorMsg(ErrorMsg.COMPILE_USAGE_STR)); + System.err.println("XSLTC version " + + VERSION_MAJOR + "." + VERSION_MINOR + + ((VERSION_DELTA > 0) ? ("." + VERSION_DELTA) : ("")) + "\n" + + new ErrorMsg(ErrorMsg.COMPILE_USAGE_STR)); if (_allowExit) System.exit(-1); } @@ -78,7 +77,7 @@ public final class Compile { final GetOpt getopt = new GetOpt(args, "o:d:j:p:uxhsinv"); if (args.length < 1) printUsage(); - final XSLTC xsltc = new XSLTC(); + final XSLTC xsltc = new XSLTC(true); xsltc.init(); int c; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java deleted file mode 100644 index 181e8e1dc37..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 09:12:02 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.cmdline; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:41:02 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -6072257854297546607L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java deleted file mode 100644 index 1042adeb898..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/08/31 11:30:44 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.cmdline; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java deleted file mode 100644 index dc3144fe838..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/08/31 11:33:55 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.cmdline; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java index 1f088294c4c..e2df8e31c36 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Transform.java @@ -49,6 +49,7 @@ import org.xml.sax.XMLReader; import com.sun.org.apache.xalan.internal.xsltc.StripFilter; import com.sun.org.apache.xml.internal.dtm.DTMWSFilter; import com.sun.org.apache.xalan.internal.xsltc.dom.DOMWSFilter; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * @author Jacek Ambroziak @@ -97,8 +98,7 @@ final public class Transform { private void doTransform() { try { - final Class clazz = ObjectFactory.findProviderClass( - _className, ObjectFactory.findClassLoader(), true); + final Class clazz = ObjectFactory.findProviderClass(_className, true); final AbstractTranslet translet = (AbstractTranslet)clazz.newInstance(); translet.postInitialization(); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java index ff02e29cb73..8bfe6cb9907 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsoluteLocationPath.java @@ -106,13 +106,15 @@ final class AbsoluteLocationPath extends Expression { LocalVariableGen relPathIterator = methodGen.addLocalVariable("abs_location_path_tmp", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(relPathIterator.getIndex())); + null, null); + relPathIterator.setStart( + il.append(new ASTORE(relPathIterator.getIndex()))); // Create new AbsoluteIterator il.append(new NEW(cpg.addClass(ABSOLUTE_ITERATOR))); il.append(DUP); - il.append(new ALOAD(relPathIterator.getIndex())); + relPathIterator.setEnd( + il.append(new ALOAD(relPathIterator.getIndex()))); // Initialize AbsoluteIterator with iterator from the stack il.append(new INVOKESPECIAL(initAI)); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java index e9a60f16c73..c25bae43675 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AbsolutePathPattern.java @@ -87,9 +87,9 @@ final class AbsolutePathPattern extends LocationPathPattern { // absolute path pattern temporary methodGen.addLocalVariable2("apptmp", Util.getJCRefType(NODE_SIG), - il.getEnd()); + null); il.append(DUP); - il.append(new ISTORE(local.getIndex())); + local.setStart(il.append(new ISTORE(local.getIndex()))); _left.translate(classGen, methodGen); il.append(methodGen.loadDOM()); local.setEnd(il.append(new ILOAD(local.getIndex()))); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java index fc9a475306b..1ba7abe4ec4 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/AttributeSet.java @@ -192,11 +192,7 @@ final class AttributeSet extends TopLevelElement { final InstructionList il = methodGen.getInstructionList(); il.append(RETURN); - methodGen.stripAttributes(true); - methodGen.setMaxLocals(); - methodGen.setMaxStack(); - methodGen.removeNOPs(); - classGen.addMethod(methodGen.getMethod()); + classGen.addMethod(methodGen); } public String toString() { diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java index 860efe1eb52..6c921bb8383 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Copy.java @@ -84,11 +84,11 @@ final class Copy extends Instruction { final LocalVariableGen name = methodGen.addLocalVariable2("name", Util.getJCRefType(STRING_SIG), - il.getEnd()); + null); final LocalVariableGen length = methodGen.addLocalVariable2("length", Util.getJCRefType("I"), - il.getEnd()); + null); // Get the name of the node to copy and save for later il.append(methodGen.loadDOM()); @@ -102,7 +102,7 @@ final class Copy extends Instruction { + ")" + STRING_SIG); il.append(new INVOKEINTERFACE(cpy, 3)); il.append(DUP); - il.append(new ASTORE(name.getIndex())); + name.setStart(il.append(new ASTORE(name.getIndex()))); final BranchHandle ifBlock1 = il.append(new IFNULL(null)); // Get the length of the node name and save for later @@ -110,7 +110,7 @@ final class Copy extends Instruction { final int lengthMethod = cpg.addMethodref(STRING_CLASS,"length","()I"); il.append(new INVOKEVIRTUAL(lengthMethod)); il.append(DUP); - il.append(new ISTORE(length.getIndex())); + length.setStart(il.append(new ISTORE(length.getIndex()))); // Ignore attribute sets if current node is ROOT. DOM.shallowCopy() // returns "" for ROOT, so skip attribute sets if length == 0 @@ -144,10 +144,10 @@ final class Copy extends Instruction { // Call the output handler's endElement() if we copied an element // (The DOM.shallowCopy() method calls startElement().) - il.append(new ILOAD(length.getIndex())); + length.setEnd(il.append(new ILOAD(length.getIndex()))); final BranchHandle ifBlock3 = il.append(new IFEQ(null)); il.append(methodGen.loadHandler()); - il.append(new ALOAD(name.getIndex())); + name.setEnd(il.append(new ALOAD(name.getIndex()))); il.append(methodGen.endElement()); final InstructionHandle end = il.append(NOP); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java index 3a16c93ae7c..c4842835537 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterExpr.java @@ -28,11 +28,12 @@ import java.util.Vector; import com.sun.org.apache.bcel.internal.generic.ALOAD; import com.sun.org.apache.bcel.internal.generic.ASTORE; import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; -import com.sun.org.apache.bcel.internal.generic.NEW; +import com.sun.org.apache.bcel.internal.generic.ILOAD; import com.sun.org.apache.bcel.internal.generic.INVOKEINTERFACE; import com.sun.org.apache.bcel.internal.generic.INVOKESPECIAL; import com.sun.org.apache.bcel.internal.generic.INVOKESTATIC; import com.sun.org.apache.bcel.internal.generic.InstructionList; +import com.sun.org.apache.bcel.internal.generic.ISTORE; import com.sun.org.apache.bcel.internal.generic.LocalVariableGen; import com.sun.org.apache.bcel.internal.generic.NEW; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator; @@ -99,6 +100,7 @@ class FilterExpr extends Expression { */ public Type typeCheck(SymbolTable stable) throws TypeCheckError { Type ptype = _primary.typeCheck(stable); + boolean canOptimize = _primary instanceof KeyCall; if (ptype instanceof NodeSetType == false) { if (ptype instanceof ReferenceType) { @@ -109,11 +111,14 @@ class FilterExpr extends Expression { } } - // Type check predicates and turn all optimizations off + // Type check predicates and turn all optimizations off if appropriate int n = _predicates.size(); for (int i = 0; i < n; i++) { Predicate pred = (Predicate) _predicates.elementAt(i); - pred.dontOptimize(); + + if (!canOptimize) { + pred.dontOptimize(); + } pred.typeCheck(stable); } return _type = Type.NodeSet; @@ -155,52 +160,95 @@ class FilterExpr extends Expression { translateFilterExpr(classGen, methodGen, predicateIndex); } else { - // Translate predicates from right to left - final int initCNLI = cpg.addMethodref(CURRENT_NODE_LIST_ITERATOR, - "", - "("+NODE_ITERATOR_SIG+"Z"+ - CURRENT_NODE_LIST_FILTER_SIG + - NODE_SIG+TRANSLET_SIG+")V"); - - // Backwards branches are prohibited if an uninitialized object is - // on the stack by section 4.9.4 of the JVM Specification, 2nd Ed. - // We don't know whether this code might contain backwards branches, - // so we mustn't create the new object until after we've created - // the suspect arguments to its constructor. Instead we calculate - // the values of the arguments to the constructor first, store them - // in temporary variables, create the object and reload the - // arguments from the temporaries to avoid the problem. - // Get the next predicate to be translated Predicate predicate = (Predicate) _predicates.get(predicateIndex--); // Translate the rest of the predicates from right to left translatePredicates(classGen, methodGen, predicateIndex); - LocalVariableGen nodeIteratorTemp = - methodGen.addLocalVariable("filter_expr_tmp1", - Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(nodeIteratorTemp.getIndex())); + if (predicate.isNthPositionFilter()) { + int nthIteratorIdx = cpg.addMethodref(NTH_ITERATOR_CLASS, + "", + "("+NODE_ITERATOR_SIG+"I)V"); - predicate.translate(classGen, methodGen); - LocalVariableGen filterTemp = - methodGen.addLocalVariable("filter_expr_tmp2", - Util.getJCRefType(CURRENT_NODE_LIST_FILTER_SIG), - il.getEnd(), null); - il.append(new ASTORE(filterTemp.getIndex())); + // Backwards branches are prohibited if an uninitialized object + // is on the stack by section 4.9.4 of the JVM Specification, + // 2nd Ed. We don't know whether this code might contain + // backwards branches, so we mustn't create the new object unti - // Create a CurrentNodeListIterator - il.append(new NEW(cpg.addClass(CURRENT_NODE_LIST_ITERATOR))); - il.append(DUP); + // after we've created the suspect arguments to its constructor - // Initialize CurrentNodeListIterator - il.append(new ALOAD(nodeIteratorTemp.getIndex())); - il.append(ICONST_1); - il.append(new ALOAD(filterTemp.getIndex())); - il.append(methodGen.loadCurrentNode()); - il.append(classGen.loadTranslet()); - il.append(new INVOKESPECIAL(initCNLI)); + // Instead we calculate the values of the arguments to the + // constructor first, store them in temporary variables, create + // the object and reload the arguments from the temporaries to + // avoid the problem. + LocalVariableGen iteratorTemp + = methodGen.addLocalVariable("filter_expr_tmp1", + Util.getJCRefType(NODE_ITERATOR_SIG), + null, null); + iteratorTemp.setStart( + il.append(new ASTORE(iteratorTemp.getIndex()))); + + predicate.translate(classGen, methodGen); + LocalVariableGen predicateValueTemp + = methodGen.addLocalVariable("filter_expr_tmp2", + Util.getJCRefType("I"), + null, null); + predicateValueTemp.setStart( + il.append(new ISTORE(predicateValueTemp.getIndex()))); + + il.append(new NEW(cpg.addClass(NTH_ITERATOR_CLASS))); + il.append(DUP); + iteratorTemp.setEnd( + il.append(new ALOAD(iteratorTemp.getIndex()))); + predicateValueTemp.setEnd( + il.append(new ILOAD(predicateValueTemp.getIndex()))); + il.append(new INVOKESPECIAL(nthIteratorIdx)); + } else { + // Translate predicates from right to left + final int initCNLI = cpg.addMethodref(CURRENT_NODE_LIST_ITERATOR, + "", + "("+NODE_ITERATOR_SIG+"Z"+ + CURRENT_NODE_LIST_FILTER_SIG + + NODE_SIG+TRANSLET_SIG+")V"); + + // Backwards branches are prohibited if an uninitialized object is + // on the stack by section 4.9.4 of the JVM Specification, 2nd Ed. + // We don't know whether this code might contain backwards branches, + // so we mustn't create the new object until after we've created + // the suspect arguments to its constructor. Instead we calculate + // the values of the arguments to the constructor first, store them + // in temporary variables, create the object and reload the + // arguments from the temporaries to avoid the problem. + + + LocalVariableGen nodeIteratorTemp = + methodGen.addLocalVariable("filter_expr_tmp1", + Util.getJCRefType(NODE_ITERATOR_SIG), + null, null); + nodeIteratorTemp.setStart( + il.append(new ASTORE(nodeIteratorTemp.getIndex()))); + + predicate.translate(classGen, methodGen); + LocalVariableGen filterTemp = + methodGen.addLocalVariable("filter_expr_tmp2", + Util.getJCRefType(CURRENT_NODE_LIST_FILTER_SIG), + null, null); + filterTemp.setStart(il.append(new ASTORE(filterTemp.getIndex()))); + + // Create a CurrentNodeListIterator + il.append(new NEW(cpg.addClass(CURRENT_NODE_LIST_ITERATOR))); + il.append(DUP); + + // Initialize CurrentNodeListIterator + nodeIteratorTemp.setEnd( + il.append(new ALOAD(nodeIteratorTemp.getIndex()))); + il.append(ICONST_1); + filterTemp.setEnd(il.append(new ALOAD(filterTemp.getIndex()))); + il.append(methodGen.loadCurrentNode()); + il.append(classGen.loadTranslet()); + il.append(new INVOKESPECIAL(initCNLI)); + } } } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java index 0c2909616a3..2d3b75dc4ec 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilterParentPath.java @@ -128,20 +128,20 @@ final class FilterParentPath extends Expression { LocalVariableGen filterTemp = methodGen.addLocalVariable("filter_parent_path_tmp1", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(filterTemp.getIndex())); + null, null); + filterTemp.setStart(il.append(new ASTORE(filterTemp.getIndex()))); _path.translate(classGen, methodGen); LocalVariableGen pathTemp = methodGen.addLocalVariable("filter_parent_path_tmp2", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(pathTemp.getIndex())); + null, null); + pathTemp.setStart(il.append(new ASTORE(pathTemp.getIndex()))); il.append(new NEW(cpg.addClass(STEP_ITERATOR_CLASS))); il.append(DUP); - il.append(new ALOAD(filterTemp.getIndex())); - il.append(new ALOAD(pathTemp.getIndex())); + filterTemp.setEnd(il.append(new ALOAD(filterTemp.getIndex()))); + pathTemp.setEnd(il.append(new ALOAD(pathTemp.getIndex()))); // Initialize StepIterator with iterators from the stack il.append(new INVOKESPECIAL(initSI)); @@ -154,8 +154,16 @@ final class FilterParentPath extends Expression { il.append(new INVOKEVIRTUAL(incl)); } - if (!(getParent() instanceof RelativeLocationPath) && - !(getParent() instanceof FilterParentPath)) { + SyntaxTreeNode parent = getParent(); + + boolean parentAlreadyOrdered = + (parent instanceof RelativeLocationPath) + || (parent instanceof FilterParentPath) + || (parent instanceof KeyCall) + || (parent instanceof CurrentCall) + || (parent instanceof DocumentCall); + + if (!parentAlreadyOrdered) { final int order = cpg.addInterfaceMethodref(DOM_INTF, ORDER_ITERATOR, ORDER_ITERATOR_SIG); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java index 379e4495c96..82174b58834 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FilteredAbsoluteLocationPath.java @@ -104,14 +104,14 @@ final class FilteredAbsoluteLocationPath extends Expression { LocalVariableGen pathTemp = methodGen.addLocalVariable("filtered_absolute_location_path_tmp", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); + null, null); _path.translate(classGen, methodGen); - il.append(new ASTORE(pathTemp.getIndex())); + pathTemp.setStart(il.append(new ASTORE(pathTemp.getIndex()))); // Create new Dup Filter Iterator il.append(new NEW(cpg.addClass(DUP_FILTERED_ITERATOR))); il.append(DUP); - il.append(new ALOAD(pathTemp.getIndex())); + pathTemp.setEnd(il.append(new ALOAD(pathTemp.getIndex()))); // Initialize Dup Filter Iterator with iterator from the stack il.append(new INVOKESPECIAL(initDFI)); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java index 0d6789fdf8c..8cad4275a5b 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionAvailableCall.java @@ -35,6 +35,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * @author G. Todd Miller @@ -132,8 +133,7 @@ final class FunctionAvailableCall extends FunctionCall { methodName = replaceDash(methodName); try { - final Class clazz = ObjectFactory.findProviderClass( - className, ObjectFactory.findClassLoader(), true); + final Class clazz = ObjectFactory.findProviderClass(className, true); if (clazz == null) { return false; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java index a790cb4ded7..f4f903b2be9 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java @@ -53,6 +53,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ObjectType; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ReferenceType; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * @author Jacek Ambroziak @@ -355,8 +356,7 @@ class FunctionCall extends Expression { else { if (_className != null && _className.length() > 0) { try { - _clazz = ObjectFactory.findProviderClass( - _className, ObjectFactory.findClassLoader(), true); + _clazz = ObjectFactory.findProviderClass(_className, true); _namespace_format = NAMESPACE_FORMAT_CLASS; } catch (ClassNotFoundException e) { @@ -775,8 +775,10 @@ class FunctionCall extends Expression { paramTemp[i] = methodGen.addLocalVariable("function_call_tmp"+i, expType.toJCType(), - il.getEnd(), null); - il.append(expType.STORE(paramTemp[i].getIndex())); + null, null); + paramTemp[i].setStart( + il.append(expType.STORE(paramTemp[i].getIndex()))); + } il.append(new NEW(cpg.addClass(_className))); @@ -784,7 +786,8 @@ class FunctionCall extends Expression { for (int i = 0; i < n; i++) { final Expression arg = argument(i); - il.append(arg.getType().LOAD(paramTemp[i].getIndex())); + paramTemp[i].setEnd( + il.append(arg.getType().LOAD(paramTemp[i].getIndex()))); } final StringBuffer buffer = new StringBuffer(); @@ -882,8 +885,7 @@ class FunctionCall extends Expression { final int nArgs = _arguments.size(); try { if (_clazz == null) { - _clazz = ObjectFactory.findProviderClass( - _className, ObjectFactory.findClassLoader(), true); + _clazz = ObjectFactory.findProviderClass(_className, true); if (_clazz == null) { final ErrorMsg msg = @@ -929,8 +931,7 @@ class FunctionCall extends Expression { final int nArgs = _arguments.size(); try { if (_clazz == null) { - _clazz = ObjectFactory.findProviderClass( - _className, ObjectFactory.findClassLoader(), true); + _clazz = ObjectFactory.findProviderClass(_className, true); if (_clazz == null) { final ErrorMsg msg = new ErrorMsg(ErrorMsg.CLASS_NOT_FOUND_ERR, _className); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java index 3e3d6eef71d..82dbffb7edf 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Key.java @@ -166,10 +166,10 @@ final class Key extends TopLevelElement { final LocalVariableGen parentNode = methodGen.addLocalVariable("parentNode", Util.getJCRefType("I"), - il.getEnd(), null); + null, null); // Get the 'parameter' from the stack and store it in a local var. - il.append(new ISTORE(parentNode.getIndex())); + parentNode.setStart(il.append(new ISTORE(parentNode.getIndex()))); // Save current node and current iterator on the stack il.append(methodGen.loadCurrentNode()); @@ -186,9 +186,9 @@ final class Key extends TopLevelElement { // Prepare to call buildKeyIndex(String name, int node, String value); il.append(classGen.loadTranslet()); il.append(new PUSH(cpg, _name.toString())); - il.append(new ILOAD(parentNode.getIndex())); + parentNode.setEnd(il.append(new ILOAD(parentNode.getIndex()))); - // Now get the node value and feck it on the parameter stack + // Now get the node value and push it on the parameter stack il.append(methodGen.loadDOM()); il.append(methodGen.loadCurrentNode()); il.append(new INVOKEINTERFACE(getNodeValue, 2)); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java index 81fa111612e..034a26782ef 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Message.java @@ -24,6 +24,7 @@ package com.sun.org.apache.xalan.internal.xsltc.compiler; import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; +import com.sun.org.apache.bcel.internal.generic.INVOKEINTERFACE; import com.sun.org.apache.bcel.internal.generic.INVOKESPECIAL; import com.sun.org.apache.bcel.internal.generic.INVOKEVIRTUAL; import com.sun.org.apache.bcel.internal.generic.InstructionList; @@ -97,36 +98,41 @@ final class Message extends Instruction { // Invoke output.setWriter(STRING_WRITER) il.append(methodGen.loadHandler()); il.append(SWAP); - il.append(new INVOKEVIRTUAL( - cpg.addMethodref(OUTPUT_BASE, "setWriter", - "("+WRITER_SIG+")V"))); + il.append(new INVOKEINTERFACE( + cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, + "setWriter", + "("+WRITER_SIG+")V"), 2)); // Invoke output.setEncoding("UTF-8") il.append(methodGen.loadHandler()); il.append(new PUSH(cpg, "UTF-8")); // other encodings? - il.append(new INVOKEVIRTUAL( - cpg.addMethodref(OUTPUT_BASE, "setEncoding", - "("+STRING_SIG+")V"))); + il.append(new INVOKEINTERFACE( + cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, + "setEncoding", + "("+STRING_SIG+")V"), 2)); // Invoke output.setOmitXMLDeclaration(true) il.append(methodGen.loadHandler()); il.append(ICONST_1); - il.append(new INVOKEVIRTUAL( - cpg.addMethodref(OUTPUT_BASE, "setOmitXMLDeclaration", - "(Z)V"))); + il.append(new INVOKEINTERFACE( + cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, + "setOmitXMLDeclaration", + "(Z)V"), 2)); il.append(methodGen.loadHandler()); - il.append(new INVOKEVIRTUAL( - cpg.addMethodref(OUTPUT_BASE, "startDocument", - "()V"))); + il.append(new INVOKEINTERFACE( + cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, + "startDocument", + "()V"), 1)); // Inline translation of contents translateContents(classGen, methodGen); il.append(methodGen.loadHandler()); - il.append(new INVOKEVIRTUAL( - cpg.addMethodref(OUTPUT_BASE, "endDocument", - "()V"))); + il.append(new INVOKEINTERFACE( + cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, + "endDocument", + "()V"), 1)); // Call toString() on StringWriter il.append(new INVOKEVIRTUAL( diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java index 2e76d90144c..66f7a95984f 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Mode.java @@ -553,11 +553,7 @@ for (int i = 0; i < _templates.size(); i++) { il.append(template.compile(classGen, methodGen)); il.append(RETURN); - methodGen.stripAttributes(true); - methodGen.setMaxLocals(); - methodGen.setMaxStack(); - methodGen.removeNOPs(); - classGen.addMethod(methodGen.getMethod()); + classGen.addMethod(methodGen); } private void compileTemplates(ClassGenerator classGen, @@ -765,12 +761,16 @@ for (int i = 0; i < _templates.size(); i++) { getClassName(), mainIL, classGen.getConstantPool()); methodGen.addException("com.sun.org.apache.xalan.internal.xsltc.TransletException"); + // Insert an extra NOP just to keep "current" from appearing as if it + // has a value before the start of the loop. + mainIL.append(NOP); + // Create a local variable to hold the current node final LocalVariableGen current; current = methodGen.addLocalVariable2("current", com.sun.org.apache.bcel.internal.generic.Type.INT, - mainIL.getEnd()); + null); _currentIndex = current.getIndex(); // Create the "body" instruction list that will eventually hold the @@ -793,6 +793,11 @@ for (int i = 0; i < _templates.size(); i++) { ifeq.setTarget(ilLoop.append(RETURN)); // applyTemplates() ends here! final InstructionHandle ihLoop = ilLoop.getStart(); + current.setStart(mainIL.append(new GOTO_W(ihLoop))); + + // Live range of "current" ends at end of loop + current.setEnd(loop); + // Compile default handling of elements (traverse children) InstructionList ilRecurse = compileDefaultRecursion(classGen, methodGen, ihLoop); @@ -1029,18 +1034,12 @@ for (int i = 0; i < _templates.size(); i++) { body.append(ilText); // putting together constituent instruction lists - mainIL.append(new GOTO_W(ihLoop)); mainIL.append(body); // fall through to ilLoop mainIL.append(ilLoop); peepHoleOptimization(methodGen); - methodGen.stripAttributes(true); - - methodGen.setMaxLocals(); - methodGen.setMaxStack(); - methodGen.removeNOPs(); - classGen.addMethod(methodGen.getMethod()); + classGen.addMethod(methodGen); // Compile method(s) for for this mode if (_importLevels != null) { @@ -1131,11 +1130,11 @@ for (int i = 0; i < _templates.size(); i++) { final LocalVariableGen current; current = methodGen.addLocalVariable2("current", com.sun.org.apache.bcel.internal.generic.Type.INT, - mainIL.getEnd()); + null); _currentIndex = current.getIndex(); - mainIL.append(new ILOAD(methodGen.getLocalIndex(NODE_PNAME))); - mainIL.append(new ISTORE(_currentIndex)); + mainIL.append(new ILOAD(methodGen.getLocalIndex(NODE_PNAME))); + current.setStart(mainIL.append(new ISTORE(_currentIndex))); // Create the "body" instruction list that will eventually hold the // code for the entire method (other ILs will be appended). @@ -1145,7 +1144,7 @@ for (int i = 0; i < _templates.size(); i++) { // Create an instruction list that contains the default next-node // iteration final InstructionList ilLoop = new InstructionList(); - ilLoop.append(RETURN); + ilLoop.append(RETURN); final InstructionHandle ihLoop = ilLoop.getStart(); // Compile default handling of elements (traverse children) @@ -1385,16 +1384,15 @@ for (int i = 0; i < _templates.size(); i++) { // putting together constituent instruction lists mainIL.append(body); + + // Mark the end of the live range for the "current" variable + current.setEnd(body.getEnd()); + // fall through to ilLoop mainIL.append(ilLoop); peepHoleOptimization(methodGen); - methodGen.stripAttributes(true); - - methodGen.setMaxLocals(); - methodGen.setMaxStack(); - methodGen.removeNOPs(); - classGen.addMethod(methodGen.getMethod()); + classGen.addMethod(methodGen); // Restore original (complete) set of templates for this transformation _templates = oldTemplates; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java index 93d5c399986..9b586ac265a 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Number.java @@ -323,10 +323,7 @@ final class Number extends Instruction implements Closure { il.append(new INVOKESPECIAL(index)); il.append(RETURN); - cons.stripAttributes(true); - cons.setMaxLocals(); - cons.setMaxStack(); - classGen.addMethod(cons.getMethod()); + classGen.addMethod(cons); } /** @@ -349,7 +346,7 @@ final class Number extends Instruction implements Closure { ITERATOR_FIELD_SIG); il.append(ALOAD_0); // 'this' pointer on stack il.append(new GETFIELD(field)); - il.append(new ASTORE(local.getIndex())); + local.setStart(il.append(new ASTORE(local.getIndex()))); matchGen.setIteratorIndex(local.getIndex()); // Get NodeCounter._translet and store locally @@ -361,7 +358,7 @@ final class Number extends Instruction implements Closure { il.append(ALOAD_0); // 'this' pointer on stack il.append(new GETFIELD(field)); il.append(new CHECKCAST(cpg.addClass(TRANSLET_CLASS))); - il.append(new ASTORE(local.getIndex())); + local.setStart(il.append(new ASTORE(local.getIndex()))); nodeCounterGen.setTransletIndex(local.getIndex()); // Get NodeCounter._document and store locally @@ -372,7 +369,7 @@ final class Number extends Instruction implements Closure { il.append(ALOAD_0); // 'this' pointer on stack il.append(new GETFIELD(field)); // Make sure we have the correct DOM type on the stack!!! - il.append(new ASTORE(local.getIndex())); + local.setStart(il.append(new ASTORE(local.getIndex()))); matchGen.setDomIndex(local.getIndex()); } @@ -436,11 +433,7 @@ final class Number extends Instruction implements Closure { _from.synthesize(nodeCounterGen, matchGen); il.append(IRETURN); - matchGen.stripAttributes(true); - matchGen.setMaxLocals(); - matchGen.setMaxStack(); - matchGen.removeNOPs(); - nodeCounterGen.addMethod(matchGen.getMethod()); + nodeCounterGen.addMethod(matchGen); } /* @@ -467,11 +460,7 @@ final class Number extends Instruction implements Closure { il.append(IRETURN); - matchGen.stripAttributes(true); - matchGen.setMaxLocals(); - matchGen.setMaxStack(); - matchGen.removeNOPs(); - nodeCounterGen.addMethod(matchGen.getMethod()); + nodeCounterGen.addMethod(matchGen); } getXSLTC().dumpClass(nodeCounterGen.getJavaClass()); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java deleted file mode 100644 index 74b251bacb4..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 10:51:22 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:41:01 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 3326843611085065902L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java index 762f853a302..ed051fa6607 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParameterRef.java @@ -84,12 +84,10 @@ final class ParameterRef extends VariableRefBase { } else { il.append(_variable.loadInstruction()); - _variable.removeReference(this); } } else { il.append(_variable.loadInstruction()); - _variable.removeReference(this); } } else { diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java index 6dbd88f3fcc..9ecd74a5aab 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentLocationPath.java @@ -190,15 +190,15 @@ final class ParentLocationPath extends RelativeLocationPath { LocalVariableGen pathTemp = methodGen.addLocalVariable("parent_location_path_tmp1", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(pathTemp.getIndex())); + null, null); + pathTemp.setStart(il.append(new ASTORE(pathTemp.getIndex()))); _step.translate(classGen, methodGen); LocalVariableGen stepTemp = methodGen.addLocalVariable("parent_location_path_tmp2", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(stepTemp.getIndex())); + null, null); + stepTemp.setStart(il.append(new ASTORE(stepTemp.getIndex()))); // Create new StepIterator final int initSI = cpg.addMethodref(STEP_ITERATOR_CLASS, @@ -210,8 +210,8 @@ final class ParentLocationPath extends RelativeLocationPath { il.append(new NEW(cpg.addClass(STEP_ITERATOR_CLASS))); il.append(DUP); - il.append(new ALOAD(pathTemp.getIndex())); - il.append(new ALOAD(stepTemp.getIndex())); + pathTemp.setEnd(il.append(new ALOAD(pathTemp.getIndex()))); + stepTemp.setEnd(il.append(new ALOAD(stepTemp.getIndex()))); // Initialize StepIterator with iterators from the stack il.append(new INVOKESPECIAL(initSI)); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java index eed075058c9..26b01a21980 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ParentPattern.java @@ -27,6 +27,7 @@ import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; import com.sun.org.apache.bcel.internal.generic.ILOAD; import com.sun.org.apache.bcel.internal.generic.INVOKEINTERFACE; import com.sun.org.apache.bcel.internal.generic.ISTORE; +import com.sun.org.apache.bcel.internal.generic.InstructionHandle; import com.sun.org.apache.bcel.internal.generic.InstructionList; import com.sun.org.apache.bcel.internal.generic.LocalVariableGen; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator; @@ -77,7 +78,7 @@ final class ParentPattern extends RelativePathPattern { final LocalVariableGen local = methodGen.addLocalVariable2("ppt", Util.getJCRefType(NODE_SIG), - il.getEnd()); + null); final com.sun.org.apache.bcel.internal.generic.Instruction loadLocal = new ILOAD(local.getIndex()); @@ -90,7 +91,7 @@ final class ParentPattern extends RelativePathPattern { } else if (_right instanceof StepPattern) { il.append(DUP); - il.append(storeLocal); + local.setStart(il.append(storeLocal)); _right.translate(classGen, methodGen); @@ -119,7 +120,11 @@ final class ParentPattern extends RelativePathPattern { } else { il.append(DUP); - il.append(storeLocal); + InstructionHandle storeInst = il.append(storeLocal); + + if (local.getStart() == null) { + local.setStart(storeInst); + } _left.translate(classGen, methodGen); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java index 47d5e50c205..3cf487aa4ef 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java @@ -44,6 +44,8 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodType; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.xml.sax.Attributes; import org.xml.sax.helpers.AttributesImpl; import org.xml.sax.ContentHandler; @@ -93,8 +95,11 @@ public class Parser implements Constants, ContentHandler { private int _currentImportPrecedence; - public Parser(XSLTC xsltc) { + private boolean _useServicesMechanism = true; + + public Parser(XSLTC xsltc, boolean useServicesMechanism) { _xsltc = xsltc; + _useServicesMechanism = useServicesMechanism; } public void init() { @@ -306,17 +311,22 @@ public class Parser implements Constants, ContentHandler { } else { Dictionary space = (Dictionary)_namespaces.get(namespace); + String lexicalQName = + (prefix == null || prefix.length() == 0) + ? localname + : (prefix + ':' + localname); + if (space == null) { final QName name = new QName(namespace, prefix, localname); _namespaces.put(namespace, space = new Hashtable()); - space.put(localname, name); + space.put(lexicalQName, name); return name; } else { - QName name = (QName)space.get(localname); + QName name = (QName)space.get(lexicalQName); if (name == null) { name = new QName(namespace, prefix, localname); - space.put(localname, name); + space.put(lexicalQName, name); } return name; } @@ -449,7 +459,7 @@ public class Parser implements Constants, ContentHandler { public SyntaxTreeNode parse(InputSource input) { try { // Create a SAX parser and get the XMLReader object it uses - final SAXParserFactory factory = SAXParserFactory.newInstance(); + final SAXParserFactory factory = FactoryImpl.getSAXFactory(_useServicesMechanism); if (_xsltc.isSecureProcessing()) { try { @@ -918,8 +928,7 @@ public class Parser implements Constants, ContentHandler { if (className != null) { try { - final Class clazz = ObjectFactory.findProviderClass( - className, ObjectFactory.findClassLoader(), true); + final Class clazz = ObjectFactory.findProviderClass(className, true); node = (SyntaxTreeNode)clazz.newInstance(); node.setQName(qname); node.setParser(this); @@ -1273,7 +1282,7 @@ public class Parser implements Constants, ContentHandler { // handled at this point in order to correctly generate // Fallback elements from s. getSymbolTable().setCurrentNode(element); - ((Stylesheet)element).excludeExtensionPrefixes(this); + ((Stylesheet)element).declareExtensionPrefixes(this); } _prefixMapping = null; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java index 2e10fdef1d3..4327f0de939 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Predicate.java @@ -412,7 +412,7 @@ final class Predicate extends Expression implements Closure { il.append(new CHECKCAST(cpg.addClass(className))); il.append(new GETFIELD(cpg.addFieldref(className, DOM_FIELD, DOM_INTF_SIG))); - il.append(new ASTORE(local.getIndex())); + local.setStart(il.append(new ASTORE(local.getIndex()))); // Store the dom index in the test generator testGen.setDomIndex(local.getIndex()); @@ -420,12 +420,8 @@ final class Predicate extends Expression implements Closure { _exp.translate(filterGen, testGen); il.append(IRETURN); - testGen.stripAttributes(true); - testGen.setMaxLocals(); - testGen.setMaxStack(); - testGen.removeNOPs(); filterGen.addEmptyConstructor(ACC_PUBLIC); - filterGen.addMethod(testGen.getMethod()); + filterGen.addMethod(testGen); getXSLTC().dumpClass(filterGen.getJavaClass()); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java index ee00fec6500..53971c91bef 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/ProcessingInstruction.java @@ -83,13 +83,14 @@ final class ProcessingInstruction extends Instruction { if (!_isLiteral) { // if the ncname is an AVT, then the ncname has to be checked at runtime if it is a valid ncname - LocalVariableGen nameValue = methodGen.addLocalVariable2("nameValue", + LocalVariableGen nameValue = + methodGen.addLocalVariable2("nameValue", Util.getJCRefType(STRING_SIG), - il.getEnd()); + null); // store the name into a variable first so _name.translate only needs to be called once _name.translate(classGen, methodGen); - il.append(new ASTORE(nameValue.getIndex())); + nameValue.setStart(il.append(new ASTORE(nameValue.getIndex()))); il.append(new ALOAD(nameValue.getIndex())); // call checkNCName if the name is an AVT @@ -104,7 +105,7 @@ final class ProcessingInstruction extends Instruction { il.append(DUP); // first arg to "attributes" call // load name value again - il.append(new ALOAD(nameValue.getIndex())); + nameValue.setEnd(il.append(new ALOAD(nameValue.getIndex()))); } else { // Save the current handler base on the stack il.append(methodGen.loadHandler()); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java deleted file mode 100644 index 65982834f26..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/05 08:57:13 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java deleted file mode 100644 index 99ee7e88cdf..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/05 08:58:02 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java index 035a1fc0ed9..d8264a23f93 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java @@ -270,12 +270,12 @@ final class Sort extends Instruction implements Closure { LocalVariableGen nodesTemp = methodGen.addLocalVariable("sort_tmp1", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); + null, null); LocalVariableGen sortRecordFactoryTemp = methodGen.addLocalVariable("sort_tmp2", Util.getJCRefType(NODE_SORT_FACTORY_SIG), - il.getEnd(), null); + null, null); // Get the current node iterator if (nodeSet == null) { // apply-templates default @@ -291,17 +291,19 @@ final class Sort extends Instruction implements Closure { nodeSet.translate(classGen, methodGen); } - il.append(new ASTORE(nodesTemp.getIndex())); + nodesTemp.setStart(il.append(new ASTORE(nodesTemp.getIndex()))); // Compile the code for the NodeSortRecord producing class and pass // that as the last argument to the SortingIterator constructor. compileSortRecordFactory(sortObjects, classGen, methodGen); - il.append(new ASTORE(sortRecordFactoryTemp.getIndex())); + sortRecordFactoryTemp.setStart( + il.append(new ASTORE(sortRecordFactoryTemp.getIndex()))); il.append(new NEW(cpg.addClass(SORT_ITERATOR))); il.append(DUP); - il.append(new ALOAD(nodesTemp.getIndex())); - il.append(new ALOAD(sortRecordFactoryTemp.getIndex())); + nodesTemp.setEnd(il.append(new ALOAD(nodesTemp.getIndex()))); + sortRecordFactoryTemp.setEnd( + il.append(new ALOAD(sortRecordFactoryTemp.getIndex()))); il.append(new INVOKESPECIAL(init)); } @@ -346,7 +348,7 @@ final class Sort extends Instruction implements Closure { LocalVariableGen sortOrderTemp = methodGen.addLocalVariable("sort_order_tmp", Util.getJCRefType("[" + STRING_SIG), - il.getEnd(), null); + null, null); il.append(new PUSH(cpg, nsorts)); il.append(new ANEWARRAY(cpg.addClass(STRING))); for (int level = 0; level < nsorts; level++) { @@ -356,12 +358,12 @@ final class Sort extends Instruction implements Closure { sort.translateSortOrder(classGen, methodGen); il.append(AASTORE); } - il.append(new ASTORE(sortOrderTemp.getIndex())); + sortOrderTemp.setStart(il.append(new ASTORE(sortOrderTemp.getIndex()))); LocalVariableGen sortTypeTemp = methodGen.addLocalVariable("sort_type_tmp", Util.getJCRefType("[" + STRING_SIG), - il.getEnd(), null); + null, null); il.append(new PUSH(cpg, nsorts)); il.append(new ANEWARRAY(cpg.addClass(STRING))); for (int level = 0; level < nsorts; level++) { @@ -371,12 +373,12 @@ final class Sort extends Instruction implements Closure { sort.translateSortType(classGen, methodGen); il.append(AASTORE); } - il.append(new ASTORE(sortTypeTemp.getIndex())); + sortTypeTemp.setStart(il.append(new ASTORE(sortTypeTemp.getIndex()))); LocalVariableGen sortLangTemp = methodGen.addLocalVariable("sort_lang_tmp", Util.getJCRefType("[" + STRING_SIG), - il.getEnd(), null); + null, null); il.append(new PUSH(cpg, nsorts)); il.append(new ANEWARRAY(cpg.addClass(STRING))); for (int level = 0; level < nsorts; level++) { @@ -386,12 +388,12 @@ final class Sort extends Instruction implements Closure { sort.translateLang(classGen, methodGen); il.append(AASTORE); } - il.append(new ASTORE(sortLangTemp.getIndex())); + sortLangTemp.setStart(il.append(new ASTORE(sortLangTemp.getIndex()))); LocalVariableGen sortCaseOrderTemp = methodGen.addLocalVariable("sort_case_order_tmp", Util.getJCRefType("[" + STRING_SIG), - il.getEnd(), null); + null, null); il.append(new PUSH(cpg, nsorts)); il.append(new ANEWARRAY(cpg.addClass(STRING))); for (int level = 0; level < nsorts; level++) { @@ -401,7 +403,8 @@ final class Sort extends Instruction implements Closure { sort.translateCaseOrder(classGen, methodGen); il.append(AASTORE); } - il.append(new ASTORE(sortCaseOrderTemp.getIndex())); + sortCaseOrderTemp.setStart( + il.append(new ASTORE(sortCaseOrderTemp.getIndex()))); il.append(new NEW(cpg.addClass(sortRecordFactoryClass))); il.append(DUP); @@ -409,10 +412,11 @@ final class Sort extends Instruction implements Closure { il.append(new PUSH(cpg, sortRecordClass)); il.append(classGen.loadTranslet()); - il.append(new ALOAD(sortOrderTemp.getIndex())); - il.append(new ALOAD(sortTypeTemp.getIndex())); - il.append(new ALOAD(sortLangTemp.getIndex())); - il.append(new ALOAD(sortCaseOrderTemp.getIndex())); + sortOrderTemp.setEnd(il.append(new ALOAD(sortOrderTemp.getIndex()))); + sortTypeTemp.setEnd(il.append(new ALOAD(sortTypeTemp.getIndex()))); + sortLangTemp.setEnd(il.append(new ALOAD(sortLangTemp.getIndex()))); + sortCaseOrderTemp.setEnd( + il.append(new ALOAD(sortCaseOrderTemp.getIndex()))); il.append(new INVOKESPECIAL( cpg.addMethodref(sortRecordFactoryClass, "", @@ -584,10 +588,10 @@ final class Sort extends Instruction implements Closure { constructor.setMaxLocals(); constructor.setMaxStack(); - sortRecordFactory.addMethod(constructor.getMethod()); + sortRecordFactory.addMethod(constructor); makeNodeSortRecord.setMaxLocals(); makeNodeSortRecord.setMaxStack(); - sortRecordFactory.addMethod(makeNodeSortRecord.getMethod()); + sortRecordFactory.addMethod(makeNodeSortRecord); xsltc.dumpClass(sortRecordFactory.getJavaClass()); return className; @@ -640,9 +644,9 @@ final class Sort extends Instruction implements Closure { } } - Method init = compileInit(sortObjects, sortRecord, + MethodGenerator init = compileInit(sortObjects, sortRecord, cpg, className); - Method extract = compileExtract(sortObjects, sortRecord, + MethodGenerator extract = compileExtract(sortObjects, sortRecord, cpg, className); sortRecord.addMethod(init); sortRecord.addMethod(extract); @@ -656,7 +660,7 @@ final class Sort extends Instruction implements Closure { * collator in the super calls only when the stylesheet specifies a new * language in xsl:sort. */ - private static Method compileInit(Vector sortObjects, + private static MethodGenerator compileInit(Vector sortObjects, NodeSortRecordGenerator sortRecord, ConstantPoolGen cpg, String className) @@ -677,18 +681,14 @@ final class Sort extends Instruction implements Closure { il.append(RETURN); - init.stripAttributes(true); - init.setMaxLocals(); - init.setMaxStack(); - - return init.getMethod(); + return init; } /** * Compiles a method that overloads NodeSortRecord.extractValueFromDOM() */ - private static Method compileExtract(Vector sortObjects, + private static MethodGenerator compileExtract(Vector sortObjects, NodeSortRecordGenerator sortRecord, ConstantPoolGen cpg, String className) { @@ -745,11 +745,6 @@ final class Sort extends Instruction implements Closure { il.append(ARETURN); } - extractMethod.stripAttributes(true); - extractMethod.setMaxLocals(); - extractMethod.setMaxStack(); - extractMethod.removeNOPs(); - - return extractMethod.getMethod(); + return extractMethod; } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java index 05f8c110291..cca28f90a9d 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Step.java @@ -447,20 +447,24 @@ final class Step extends RelativeLocationPath { LocalVariableGen iteratorTemp = methodGen.addLocalVariable("step_tmp1", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(iteratorTemp.getIndex())); + null, null); + iteratorTemp.setStart( + il.append(new ASTORE(iteratorTemp.getIndex()))); predicate.translate(classGen, methodGen); LocalVariableGen predicateValueTemp = methodGen.addLocalVariable("step_tmp2", Util.getJCRefType("I"), - il.getEnd(), null); - il.append(new ISTORE(predicateValueTemp.getIndex())); + null, null); + predicateValueTemp.setStart( + il.append(new ISTORE(predicateValueTemp.getIndex()))); il.append(new NEW(cpg.addClass(NTH_ITERATOR_CLASS))); il.append(DUP); - il.append(new ALOAD(iteratorTemp.getIndex())); - il.append(new ILOAD(predicateValueTemp.getIndex())); + iteratorTemp.setEnd( + il.append(new ALOAD(iteratorTemp.getIndex()))); + predicateValueTemp.setEnd( + il.append(new ILOAD(predicateValueTemp.getIndex()))); il.append(new INVOKESPECIAL(idx)); } else { @@ -486,22 +490,24 @@ final class Step extends RelativeLocationPath { LocalVariableGen iteratorTemp = methodGen.addLocalVariable("step_tmp1", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(iteratorTemp.getIndex())); + null, null); + iteratorTemp.setStart( + il.append(new ASTORE(iteratorTemp.getIndex()))); predicate.translateFilter(classGen, methodGen); LocalVariableGen filterTemp = methodGen.addLocalVariable("step_tmp2", Util.getJCRefType(CURRENT_NODE_LIST_FILTER_SIG), - il.getEnd(), null); - il.append(new ASTORE(filterTemp.getIndex())); - + null, null); + filterTemp.setStart( + il.append(new ASTORE(filterTemp.getIndex()))); // create new CurrentNodeListIterator il.append(new NEW(cpg.addClass(CURRENT_NODE_LIST_ITERATOR))); il.append(DUP); - il.append(new ALOAD(iteratorTemp.getIndex())); - il.append(new ALOAD(filterTemp.getIndex())); + iteratorTemp.setEnd( + il.append(new ALOAD(iteratorTemp.getIndex()))); + filterTemp.setEnd(il.append(new ALOAD(filterTemp.getIndex()))); il.append(methodGen.loadCurrentNode()); il.append(classGen.loadTranslet()); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java index f817ce40a12..82582ae24bc 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StepPattern.java @@ -328,8 +328,8 @@ class StepPattern extends RelativePathPattern { LocalVariableGen match; match = methodGen.addLocalVariable("step_pattern_tmp1", Util.getJCRefType(NODE_SIG), - il.getEnd(), null); - il.append(new ISTORE(match.getIndex())); + null, null); + match.setStart(il.append(new ISTORE(match.getIndex()))); // If pattern not reduced then check kernel if (!_isEpsilon) { @@ -358,13 +358,15 @@ class StepPattern extends RelativePathPattern { LocalVariableGen stepIteratorTemp = methodGen.addLocalVariable("step_pattern_tmp2", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); - il.append(new ASTORE(stepIteratorTemp.getIndex())); + null, null); + stepIteratorTemp.setStart( + il.append(new ASTORE(stepIteratorTemp.getIndex()))); il.append(new NEW(cpg.addClass(MATCHING_ITERATOR))); il.append(DUP); il.append(new ILOAD(match.getIndex())); - il.append(new ALOAD(stepIteratorTemp.getIndex())); + stepIteratorTemp.setEnd( + il.append(new ALOAD(stepIteratorTemp.getIndex()))); il.append(new INVOKESPECIAL(index)); // Get the parent of the matching node @@ -378,7 +380,7 @@ class StepPattern extends RelativePathPattern { // Overwrite current iterator and current node il.append(methodGen.storeIterator()); - il.append(new ILOAD(match.getIndex())); + match.setEnd(il.append(new ILOAD(match.getIndex()))); il.append(methodGen.storeCurrentNode()); // Translate the expression of the predicate @@ -415,13 +417,13 @@ class StepPattern extends RelativePathPattern { // Store node on the stack into a local variable node = methodGen.addLocalVariable("step_pattern_tmp1", Util.getJCRefType(NODE_SIG), - il.getEnd(), null); - il.append(new ISTORE(node.getIndex())); + null, null); + node.setStart(il.append(new ISTORE(node.getIndex()))); // Create a new local to store the iterator iter = methodGen.addLocalVariable("step_pattern_tmp2", Util.getJCRefType(NODE_ITERATOR_SIG), - il.getEnd(), null); + null, null); // Add a new private field if this is the main class if (!classGen.isExternal()) { @@ -438,20 +440,24 @@ class StepPattern extends RelativePathPattern { il.append(classGen.loadTranslet()); il.append(new GETFIELD(iteratorIndex)); il.append(DUP); - il.append(new ASTORE(iter.getIndex())); + iter.setStart(il.append(new ASTORE(iter.getIndex()))); ifBlock = il.append(new IFNONNULL(null)); il.append(classGen.loadTranslet()); } // Compile the step created at type checking time _step.translate(classGen, methodGen); - il.append(new ASTORE(iter.getIndex())); + InstructionHandle iterStore = il.append(new ASTORE(iter.getIndex())); // If in the main class update the field too if (!classGen.isExternal()) { il.append(new ALOAD(iter.getIndex())); il.append(new PUTFIELD(iteratorIndex)); ifBlock.setTarget(il.append(NOP)); + } else { + // If class is not external, start of range for iter variable was + // set above + iter.setStart(iterStore); } // Get the parent of the node on the stack @@ -478,10 +484,11 @@ class StepPattern extends RelativePathPattern { InstructionHandle begin, next; node2 = methodGen.addLocalVariable("step_pattern_tmp3", Util.getJCRefType(NODE_SIG), - il.getEnd(), null); + null, null); skipNext = il.append(new GOTO(null)); next = il.append(new ALOAD(iter.getIndex())); + node2.setStart(next); begin = il.append(methodGen.nextNode()); il.append(DUP); il.append(new ISTORE(node2.getIndex())); @@ -489,10 +496,10 @@ class StepPattern extends RelativePathPattern { il.append(new ILOAD(node2.getIndex())); il.append(new ILOAD(node.getIndex())); - il.append(new IF_ICMPLT(next)); + iter.setEnd(il.append(new IF_ICMPLT(next))); - il.append(new ILOAD(node2.getIndex())); - il.append(new ILOAD(node.getIndex())); + node2.setEnd(il.append(new ILOAD(node2.getIndex()))); + node.setEnd(il.append(new ILOAD(node.getIndex()))); _falseList.add(il.append(new IF_ICMPNE(null))); skipNext.setTarget(begin); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java index d47d9e03c91..2c244e151eb 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Stylesheet.java @@ -23,9 +23,6 @@ package com.sun.org.apache.xalan.internal.xsltc.compiler; -import java.net.URL; -import java.net.MalformedURLException; - import java.util.Vector; import java.util.Enumeration; import java.util.Hashtable; @@ -203,8 +200,9 @@ public final class Stylesheet extends SyntaxTreeNode { /** * Set to true to enable template inlining optimization. + * @see XSLTC#_templateInlining */ - private boolean _templateInlining = true; + private boolean _templateInlining = false; /** * A reference to the last xsl:output object found in the styleshet. @@ -467,11 +465,11 @@ public final class Stylesheet extends SyntaxTreeNode { for (int i = 0; i < n; i++) { final Template template = (Template)templates.elementAt(i); if (template.hasParams()) { - _hasLocalParams = new Boolean(true); + _hasLocalParams = Boolean.TRUE; return true; } } - _hasLocalParams = new Boolean(false); + _hasLocalParams = Boolean.FALSE; return false; } else { @@ -509,15 +507,9 @@ public final class Stylesheet extends SyntaxTreeNode { return (_extensions.get(uri) != null); } - public void excludeExtensionPrefixes(Parser parser) { + public void declareExtensionPrefixes(Parser parser) { final SymbolTable stable = parser.getSymbolTable(); - final String excludePrefixes = getAttribute("exclude-result-prefixes"); final String extensionPrefixes = getAttribute("extension-element-prefixes"); - - // Exclude XSLT uri - stable.excludeURI(Constants.XSLT_URI); - stable.excludeNamespaces(excludePrefixes); - stable.excludeNamespaces(extensionPrefixes); extensionURI(extensionPrefixes, stable); } @@ -571,6 +563,16 @@ public final class Stylesheet extends SyntaxTreeNode { * Parse all direct children of the element. */ public final void parseOwnChildren(Parser parser) { + final SymbolTable stable = parser.getSymbolTable(); + final String excludePrefixes = getAttribute("exclude-result-prefixes"); + final String extensionPrefixes = getAttribute("extension-element-prefixes"); + + // Exclude XSLT uri + stable.pushExcludedNamespacesContext(); + stable.excludeURI(Constants.XSLT_URI); + stable.excludeNamespaces(excludePrefixes); + stable.excludeNamespaces(extensionPrefixes); + final Vector contents = getContents(); final int count = contents.size(); @@ -602,6 +604,8 @@ public final class Stylesheet extends SyntaxTreeNode { template.setName(parser.getQName(name)); } } + + stable.popExcludedNamespacesContext(); } public void processModes() { @@ -801,81 +805,99 @@ public final class Stylesheet extends SyntaxTreeNode { } } + staticConst.markChunkStart(); il.append(new PUSH(cpg, size)); il.append(new ANEWARRAY(cpg.addClass(STRING))); + int namesArrayRef = cpg.addFieldref(_className, + STATIC_NAMES_ARRAY_FIELD, + NAMES_INDEX_SIG); + il.append(new PUTSTATIC(namesArrayRef)); + staticConst.markChunkEnd(); for (int i = 0; i < size; i++) { final String name = namesArray[i]; - il.append(DUP); + staticConst.markChunkStart(); + il.append(new GETSTATIC(namesArrayRef)); il.append(new PUSH(cpg, i)); il.append(new PUSH(cpg, name)); il.append(AASTORE); + staticConst.markChunkEnd(); } - il.append(new PUTSTATIC(cpg.addFieldref(_className, - STATIC_NAMES_ARRAY_FIELD, - NAMES_INDEX_SIG))); + staticConst.markChunkStart(); il.append(new PUSH(cpg, size)); il.append(new ANEWARRAY(cpg.addClass(STRING))); + int urisArrayRef = cpg.addFieldref(_className, + STATIC_URIS_ARRAY_FIELD, + URIS_INDEX_SIG); + il.append(new PUTSTATIC(urisArrayRef)); + staticConst.markChunkEnd(); for (int i = 0; i < size; i++) { final String uri = urisArray[i]; - il.append(DUP); + staticConst.markChunkStart(); + il.append(new GETSTATIC(urisArrayRef)); il.append(new PUSH(cpg, i)); il.append(new PUSH(cpg, uri)); il.append(AASTORE); + staticConst.markChunkEnd(); } - il.append(new PUTSTATIC(cpg.addFieldref(_className, - STATIC_URIS_ARRAY_FIELD, - URIS_INDEX_SIG))); + staticConst.markChunkStart(); il.append(new PUSH(cpg, size)); il.append(new NEWARRAY(BasicType.INT)); + int typesArrayRef = cpg.addFieldref(_className, + STATIC_TYPES_ARRAY_FIELD, + TYPES_INDEX_SIG); + il.append(new PUTSTATIC(typesArrayRef)); + staticConst.markChunkEnd(); for (int i = 0; i < size; i++) { final int nodeType = typesArray[i]; - il.append(DUP); + staticConst.markChunkStart(); + il.append(new GETSTATIC(typesArrayRef)); il.append(new PUSH(cpg, i)); il.append(new PUSH(cpg, nodeType)); il.append(IASTORE); } - il.append(new PUTSTATIC(cpg.addFieldref(_className, - STATIC_TYPES_ARRAY_FIELD, - TYPES_INDEX_SIG))); // Put the namespace names array into the translet final Vector namespaces = getXSLTC().getNamespaceIndex(); + staticConst.markChunkStart(); il.append(new PUSH(cpg, namespaces.size())); il.append(new ANEWARRAY(cpg.addClass(STRING))); + int namespaceArrayRef = cpg.addFieldref(_className, + STATIC_NAMESPACE_ARRAY_FIELD, + NAMESPACE_INDEX_SIG); + il.append(new PUTSTATIC(namespaceArrayRef)); + staticConst.markChunkEnd(); for (int i = 0; i < namespaces.size(); i++) { final String ns = (String)namespaces.elementAt(i); - il.append(DUP); + staticConst.markChunkStart(); + il.append(new GETSTATIC(namespaceArrayRef)); il.append(new PUSH(cpg, i)); il.append(new PUSH(cpg, ns)); il.append(AASTORE); + staticConst.markChunkEnd(); } - il.append(new PUTSTATIC(cpg.addFieldref(_className, - STATIC_NAMESPACE_ARRAY_FIELD, - NAMESPACE_INDEX_SIG))); // Grab all the literal text in the stylesheet and put it in a char[] final int charDataCount = getXSLTC().getCharacterDataCount(); final int toCharArray = cpg.addMethodref(STRING, "toCharArray", "()[C"); for (int i = 0; i < charDataCount; i++) { + staticConst.markChunkStart(); il.append(new PUSH(cpg, getXSLTC().getCharacterData(i))); il.append(new INVOKEVIRTUAL(toCharArray)); il.append(new PUTSTATIC(cpg.addFieldref(_className, STATIC_CHAR_DATA_FIELD+i, STATIC_CHAR_DATA_FIELD_SIG))); + staticConst.markChunkEnd(); } il.append(RETURN); - staticConst.stripAttributes(true); - staticConst.setMaxLocals(); - staticConst.setMaxStack(); - classGen.addMethod(staticConst.getMethod()); + classGen.addMethod(staticConst); } @@ -898,6 +920,7 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(new INVOKESPECIAL(cpg.addMethodref(TRANSLET_CLASS, "", "()V"))); + constructor.markChunkStart(); il.append(classGen.loadTranslet()); il.append(new GETSTATIC(cpg.addFieldref(_className, STATIC_NAMES_ARRAY_FIELD, @@ -913,7 +936,9 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(new PUTFIELD(cpg.addFieldref(TRANSLET_CLASS, URIS_INDEX, URIS_INDEX_SIG))); + constructor.markChunkEnd(); + constructor.markChunkStart(); il.append(classGen.loadTranslet()); il.append(new GETSTATIC(cpg.addFieldref(_className, STATIC_TYPES_ARRAY_FIELD, @@ -921,7 +946,9 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(new PUTFIELD(cpg.addFieldref(TRANSLET_CLASS, TYPES_INDEX, TYPES_INDEX_SIG))); + constructor.markChunkEnd(); + constructor.markChunkStart(); il.append(classGen.loadTranslet()); il.append(new GETSTATIC(cpg.addFieldref(_className, STATIC_NAMESPACE_ARRAY_FIELD, @@ -929,38 +956,45 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(new PUTFIELD(cpg.addFieldref(TRANSLET_CLASS, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG))); + constructor.markChunkEnd(); + constructor.markChunkStart(); il.append(classGen.loadTranslet()); il.append(new PUSH(cpg, AbstractTranslet.CURRENT_TRANSLET_VERSION)); il.append(new PUTFIELD(cpg.addFieldref(TRANSLET_CLASS, TRANSLET_VERSION_INDEX, TRANSLET_VERSION_INDEX_SIG))); + constructor.markChunkEnd(); if (_hasIdCall) { + constructor.markChunkStart(); il.append(classGen.loadTranslet()); il.append(new PUSH(cpg, Boolean.TRUE)); il.append(new PUTFIELD(cpg.addFieldref(TRANSLET_CLASS, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG))); + constructor.markChunkEnd(); } // Compile in code to set the output configuration from if (output != null) { // Set all the output settings files in the translet + constructor.markChunkStart(); output.translate(classGen, constructor); + constructor.markChunkEnd(); } // Compile default decimal formatting symbols. // This is an implicit, nameless xsl:decimal-format top-level element. - if (_numberFormattingUsed) + if (_numberFormattingUsed) { + constructor.markChunkStart(); DecimalFormatting.translateDefaultDFS(classGen, constructor); + constructor.markChunkEnd(); + } il.append(RETURN); - constructor.stripAttributes(true); - constructor.setMaxLocals(); - constructor.setMaxStack(); - classGen.addMethod(constructor.getMethod()); + classGen.addMethod(constructor); } /** @@ -1000,25 +1034,23 @@ public final class Stylesheet extends SyntaxTreeNode { toplevel.addException("com.sun.org.apache.xalan.internal.xsltc.TransletException"); + // Define and initialize 'current' variable with the root node + final LocalVariableGen current = + toplevel.addLocalVariable("current", + com.sun.org.apache.bcel.internal.generic.Type.INT, + null, null); + final int setFilter = cpg.addInterfaceMethodref(DOM_INTF, "setFilter", "(Lcom/sun/org/apache/xalan/internal/xsltc/StripFilter;)V"); - // Define and initialize 'current' variable with the root node - final LocalVariableGen current = - toplevel.addLocalVariable("current", - com.sun.org.apache.bcel.internal.generic.Type.INT, - il.getEnd(), null); - - // Get root node from main DOM by calling dom.getIterator().next() final int gitr = cpg.addInterfaceMethodref(DOM_INTF, - "getIterator", "()"+NODE_ITERATOR_SIG); - final int next = cpg.addInterfaceMethodref(NODE_ITERATOR, - "next", "()I"); + "getIterator", + "()"+NODE_ITERATOR_SIG); il.append(toplevel.loadDOM()); il.append(new INVOKEINTERFACE(gitr, 1)); - il.append(new INVOKEINTERFACE(next, 1)); - il.append(new ISTORE(current.getIndex())); + il.append(toplevel.nextNode()); + current.setStart(il.append(new ISTORE(current.getIndex()))); // Create a new list containing variables/params + keys Vector varDepElements = new Vector(_globals); @@ -1073,12 +1105,7 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(RETURN); // Compute max locals + stack and add method to class - toplevel.stripAttributes(true); - toplevel.setMaxLocals(); - toplevel.setMaxStack(); - toplevel.removeNOPs(); - - classGen.addMethod(toplevel.getMethod()); + classGen.addMethod(toplevel); return("("+DOM_INTF_SIG+NODE_ITERATOR_SIG+TRANSLET_OUTPUT_SIG+")V"); } @@ -1233,7 +1260,7 @@ public final class Stylesheet extends SyntaxTreeNode { final LocalVariableGen current = transf.addLocalVariable("current", com.sun.org.apache.bcel.internal.generic.Type.INT, - il.getEnd(), null); + null, null); final String applyTemplatesSig = classGen.getApplyTemplatesSig(); final int applyTemplates = cpg.addMethodref(getClassName(), "applyTemplates", @@ -1270,6 +1297,15 @@ public final class Stylesheet extends SyntaxTreeNode { //store to _dom variable il.append(new PUTFIELD(domField)); + // continue with globals initialization + final int gitr = cpg.addInterfaceMethodref(DOM_INTF, + "getIterator", + "()"+NODE_ITERATOR_SIG); + il.append(transf.loadDOM()); + il.append(new INVOKEINTERFACE(gitr, 1)); + il.append(transf.nextNode()); + current.setStart(il.append(new ISTORE(current.getIndex()))); + // Transfer the output settings to the output post-processor il.append(classGen.loadTranslet()); il.append(transf.loadHandler()); @@ -1326,12 +1362,8 @@ public final class Stylesheet extends SyntaxTreeNode { il.append(RETURN); // Compute max locals + stack and add method to class - transf.stripAttributes(true); - transf.setMaxLocals(); - transf.setMaxStack(); - transf.removeNOPs(); + classGen.addMethod(transf); - classGen.addMethod(transf.getMethod()); } /** diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java index f4eb7c4a3e2..9a59fe26731 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SymbolTable.java @@ -24,6 +24,7 @@ package com.sun.org.apache.xalan.internal.xsltc.compiler; import java.util.Hashtable; +import java.util.Stack; import java.util.StringTokenizer; import java.util.Vector; @@ -46,6 +47,7 @@ final class SymbolTable { private Hashtable _attributeSets = null; private Hashtable _aliases = null; private Hashtable _excludedURI = null; + private Stack _excludedURIStack = null; private Hashtable _decimalFormats = null; private Hashtable _keys = null; @@ -158,7 +160,7 @@ final class SymbolTable { private int _nsCounter = 0; public String generateNamespacePrefix() { - return(new String("ns"+(_nsCounter++))); + return("ns"+(_nsCounter++)); } /** @@ -261,5 +263,33 @@ final class SymbolTable { } } } + /** + * Exclusion of namespaces by a stylesheet does not extend to any stylesheet + * imported or included by the stylesheet. Upon entering the context of a + * new stylesheet, a call to this method is needed to clear the current set + * of excluded namespaces temporarily. Every call to this method requires + * a corresponding call to {@link #popExcludedNamespacesContext()}. + */ + public void pushExcludedNamespacesContext() { + if (_excludedURIStack == null) { + _excludedURIStack = new Stack(); + } + _excludedURIStack.push(_excludedURI); + _excludedURI = null; + } + + /** + * Exclusion of namespaces by a stylesheet does not extend to any stylesheet + * imported or included by the stylesheet. Upon exiting the context of a + * stylesheet, a call to this method is needed to restore the set of + * excluded namespaces that was in effect prior to entering the context of + * the current stylesheet. + */ + public void popExcludedNamespacesContext() { + _excludedURI = (Hashtable) _excludedURIStack.pop(); + if (_excludedURIStack.isEmpty()) { + _excludedURIStack = null; + } + } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java index 092d5979ace..a14aac61b91 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/SyntaxTreeNode.java @@ -512,9 +512,12 @@ public abstract class SyntaxTreeNode implements Constants { MethodGenerator methodGen) { // Call translate() on all child nodes final int n = elementCount(); + for (int i = 0; i < n; i++) { + methodGen.markChunkStart(); final SyntaxTreeNode item = (SyntaxTreeNode)_contents.elementAt(i); item.translate(classGen, methodGen); + methodGen.markChunkEnd(); } // After translation, unmap any registers for any variables/parameters diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java index 3f06a36ba46..72164de6c34 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/TestSeq.java @@ -108,10 +108,10 @@ final class TestSeq { (LocationPathPattern) _patterns.elementAt(i); if (i == 0) { - result.append("Testseq for kernel " + _kernelType) + result.append("Testseq for kernel ").append(_kernelType) .append('\n'); } - result.append(" pattern " + i + ": ") + result.append(" pattern ").append(i).append(": ") .append(pattern.toString()) .append('\n'); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java index f925c54f265..3226a36a898 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Variable.java @@ -28,6 +28,7 @@ import com.sun.org.apache.bcel.internal.generic.ACONST_NULL; import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; import com.sun.org.apache.bcel.internal.generic.DCONST; import com.sun.org.apache.bcel.internal.generic.ICONST; +import com.sun.org.apache.bcel.internal.generic.InstructionHandle; import com.sun.org.apache.bcel.internal.generic.InstructionList; import com.sun.org.apache.bcel.internal.generic.PUTFIELD; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.BooleanType; @@ -128,7 +129,7 @@ final class Variable extends VariableBase { if (_local == null) { _local = methodGen.addLocalVariable2(getEscapedName(), _type.toJCType(), - il.getEnd()); + null); } // Push the default value on the JVM's stack if ((_type instanceof IntType) || @@ -139,7 +140,10 @@ final class Variable extends VariableBase { il.append(new DCONST(0)); // 0.0 for floating point numbers else il.append(new ACONST_NULL()); // and 'null' for anything else - il.append(_type.STORE(_local.getIndex())); + + // Mark the store as the start of the live range of the variable + _local.setStart(il.append(_type.STORE(_local.getIndex()))); + } } @@ -163,10 +167,20 @@ final class Variable extends VariableBase { translateValue(classGen, methodGen); // Add a new local variable and store value - if (_local == null) { + boolean createLocal = _local == null; + if (createLocal) { mapRegister(methodGen); } + InstructionHandle storeInst = il.append(_type.STORE(_local.getIndex())); + + // If the local is just being created, mark the store as the start + // of its live range. Note that it might have been created by + // initializeVariables already, which would have set the start of + // the live range already. + if (createLocal) { + _local.setStart(storeInst); + } } else { String signature = _type.toSignature(); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java index eb498e3dc72..7ef4c1cabd6 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableBase.java @@ -83,14 +83,6 @@ class VariableBase extends TopLevelElement { _refs.addElement(vref); } - /** - * Remove a reference to this variable. Called by VariableRef when this - * variable goes out of scope. - */ - public void removeReference(VariableRefBase vref) { - _refs.remove(vref); - } - /** * When a variable is overriden by another, e.g. via xsl:import, * its references need to be copied or otherwise it may be @@ -121,7 +113,7 @@ class VariableBase extends TopLevelElement { * Called when we leave the AST scope of the variable's declaration */ public void unmapRegister(MethodGenerator methodGen) { - if (_refs.isEmpty() && (_local != null)) { + if (_local != null) { _local.setEnd(methodGen.getInstructionList().getEnd()); methodGen.removeLocalVariable(_local); _refs = null; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java index 9cf4e35c76d..fe918b0011a 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/VariableRef.java @@ -70,12 +70,10 @@ final class VariableRef extends VariableRefBase { } else { il.append(_variable.loadInstruction()); - _variable.removeReference(this); } } else { il.append(_variable.loadInstruction()); - _variable.removeReference(this); } } else { diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java index 37d1f9d1396..edfa5a8d3dd 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Whitespace.java @@ -157,8 +157,7 @@ final class Whitespace extends TopLevelElement { if (col != -1) { namespace = lookupNamespace(token.substring(0,col)); if (namespace != null) { - elements.append(namespace+":"+ - token.substring(col+1,token.length())); + elements.append(namespace).append(':').append(token.substring(col + 1)); } else { elements.append(token); } @@ -426,12 +425,7 @@ final class Whitespace extends TopLevelElement { compileStripSpace(strip, sCount, il); } - stripSpace.stripAttributes(true); - stripSpace.setMaxLocals(); - stripSpace.setMaxStack(); - stripSpace.removeNOPs(); - - classGen.addMethod(stripSpace.getMethod()); + classGen.addMethod(stripSpace); } /** @@ -463,12 +457,7 @@ final class Whitespace extends TopLevelElement { il.append(ICONST_0); il.append(IRETURN); - stripSpace.stripAttributes(true); - stripSpace.setMaxLocals(); - stripSpace.setMaxStack(); - stripSpace.removeNOPs(); - - classGen.addMethod(stripSpace.getMethod()); + classGen.addMethod(stripSpace); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java index 203ffefbaa6..e29915c0ecd 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java @@ -131,11 +131,13 @@ public final class XSLTC { */ private boolean _isSecureProcessing = false; + private boolean _useServicesMechanism = true; + /** * XSLTC compiler constructor */ - public XSLTC() { - _parser = new Parser(this); + public XSLTC(boolean useServicesMechanism) { + _parser = new Parser(this, useServicesMechanism); } /** @@ -151,6 +153,19 @@ public final class XSLTC { public boolean isSecureProcessing() { return _isSecureProcessing; } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + _useServicesMechanism = flag; + } /** * Only for user by the internal TrAX implementation. @@ -230,6 +245,12 @@ public final class XSLTC { public void setTemplateInlining(boolean templateInlining) { _templateInlining = templateInlining; } + /** + * Return the state of the template inlining feature. + */ + public boolean getTemplateInlining() { + return _templateInlining; + } /** * Set the parameters to use to locate the correct diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java index 5edd465da22..5d86d7e5fa8 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslAttribute.java @@ -209,13 +209,14 @@ final class XslAttribute extends Instruction { if (!_isLiteral) { // if the qname is an AVT, then the qname has to be checked at runtime if it is a valid qname - LocalVariableGen nameValue = methodGen.addLocalVariable2("nameValue", + LocalVariableGen nameValue = + methodGen.addLocalVariable2("nameValue", Util.getJCRefType(STRING_SIG), - il.getEnd()); + null); // store the name into a variable first so _name.translate only needs to be called once _name.translate(classGen, methodGen); - il.append(new ASTORE(nameValue.getIndex())); + nameValue.setStart(il.append(new ASTORE(nameValue.getIndex()))); il.append(new ALOAD(nameValue.getIndex())); // call checkQName if the name is an AVT @@ -230,7 +231,7 @@ final class XslAttribute extends Instruction { il.append(DUP); // first arg to "attributes" call // load name value again - il.append(new ALOAD(nameValue.getIndex())); + nameValue.setEnd(il.append(new ALOAD(nameValue.getIndex()))); } else { // Save the current handler base on the stack il.append(methodGen.loadHandler()); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java index b6a30670c74..429cccda552 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XslElement.java @@ -224,13 +224,14 @@ final class XslElement extends Instruction { if (!_ignore) { // if the qname is an AVT, then the qname has to be checked at runtime if it is a valid qname - LocalVariableGen nameValue = methodGen.addLocalVariable2("nameValue", - Util.getJCRefType(STRING_SIG), - il.getEnd()); + LocalVariableGen nameValue = + methodGen.addLocalVariable2("nameValue", + Util.getJCRefType(STRING_SIG), + null); // store the name into a variable first so _name.translate only needs to be called once _name.translate(classGen, methodGen); - il.append(new ASTORE(nameValue.getIndex())); + nameValue.setStart(il.append(new ASTORE(nameValue.getIndex()))); il.append(new ALOAD(nameValue.getIndex())); // call checkQName if the name is an AVT @@ -244,7 +245,7 @@ final class XslElement extends Instruction { il.append(methodGen.loadHandler()); // load name value again - il.append(new ALOAD(nameValue.getIndex())); + nameValue.setEnd(il.append(new ALOAD(nameValue.getIndex()))); if (_namespace != null) { _namespace.translate(classGen, methodGen); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java index b3a3cbc56a3..d747075ea8f 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ClassGenerator.java @@ -23,6 +23,7 @@ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; +import com.sun.org.apache.bcel.internal.classfile.Method; import com.sun.org.apache.bcel.internal.generic.ALOAD; import com.sun.org.apache.bcel.internal.generic.ClassGen; import com.sun.org.apache.bcel.internal.generic.Instruction; @@ -134,4 +135,10 @@ public class ClassGenerator extends ClassGen { public boolean isExternal() { return false; } + public void addMethod(MethodGenerator methodGen) { + Method[] methodsToAdd = methodGen.getGeneratedMethods(this); + for (int i = 0; i < methodsToAdd.length; i++) { + addMethod(methodsToAdd[i]); +} + } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java index 2f80c53f28e..d2e68d4c1f0 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java @@ -941,7 +941,64 @@ public class ErrorMessages extends ListResourceBundle { "Cannot set the feature ''{0}'' on this TransformerFactory."}, {ErrorMsg.JAXP_SECUREPROCESSING_FEATURE, - "FEATURE_SECURE_PROCESSING: Cannot set the feature to false when security manager is present."} + "FEATURE_SECURE_PROCESSING: Cannot set the feature to false when security manager is present."}, + + /* + * Note to translators: This message describes an internal error in the + * processor. The term "byte code" is a Java technical term for the + * executable code in a Java method, and "try-catch-finally block" + * refers to the Java keywords with those names. "Outlined" is a + * technical term internal to XSLTC and should not be translated. + */ + {ErrorMsg.OUTLINE_ERR_TRY_CATCH, + "Internal XSLTC error: the generated byte code contains a " + + "try-catch-finally block and cannot be outlined."}, + + /* + * Note to translators: This message describes an internal error in the + * processor. The terms "OutlineableChunkStart" and + * "OutlineableChunkEnd" are the names of classes internal to XSLTC and + * should not be translated. The message indicates that for every + * "start" there must be a corresponding "end", and vice versa, and + * that if one of a pair of "start" and "end" appears between another + * pair of corresponding "start" and "end", then the other half of the + * pair must also be between that same enclosing pair. + */ + {ErrorMsg.OUTLINE_ERR_UNBALANCED_MARKERS, + "Internal XSLTC error: OutlineableChunkStart and " + + "OutlineableChunkEnd markers must be balanced and properly nested."}, + + /* + * Note to translators: This message describes an internal error in the + * processor. The term "byte code" is a Java technical term for the + * executable code in a Java method. The "method" that is being + * referred to is a Java method in a translet that XSLTC is generating + * in processing a stylesheet. The "instruction" that is being + * referred to is one of the instrutions in the Java byte code in that + * method. "Outlined" is a technical term internal to XSLTC and + * should not be translated. + */ + {ErrorMsg.OUTLINE_ERR_DELETED_TARGET, + "Internal XSLTC error: an instruction that was part of a block of " + + "byte code that was outlined is still referred to in the original " + + "method." + }, + + + /* + * Note to translators: This message describes an internal error in the + * processor. The "method" that is being referred to is a Java method + * in a translet that XSLTC is generating. + * + */ + {ErrorMsg.OUTLINE_ERR_METHOD_TOO_BIG, + "Internal XSLTC error: a method in the translet exceeds the Java " + + "Virtual Machine limitation on the length of a method of 64 " + + "kilobytes. This is usually caused by templates in a stylesheet " + + "that are very large. Try restructuring your stylesheet to use " + + "smaller templates." + } + }; /** Get the lookup table for error messages. diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java index ef9f1a0db49..1b1a80d8eea 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java @@ -157,6 +157,14 @@ public final class ErrorMsg { public static final String INVALID_NCNAME_ERR = "INVALID_NCNAME_ERR"; public static final String INVALID_METHOD_IN_OUTPUT = "INVALID_METHOD_IN_OUTPUT"; + public static final String OUTLINE_ERR_TRY_CATCH = "OUTLINE_ERR_TRY_CATCH"; + public static final String OUTLINE_ERR_UNBALANCED_MARKERS = + "OUTLINE_ERR_UNBALANCED_MARKERS"; + public static final String OUTLINE_ERR_DELETED_TARGET = + "OUTLINE_ERR_DELETED_TARGET"; + public static final String OUTLINE_ERR_METHOD_TOO_BIG = + "OUTLINE_ERR_METHOD_TOO_BIG"; + // All error messages are localized and are stored in resource bundles. // This array and the following 4 strings are read from that bundle. private static ResourceBundle _bundle; @@ -261,7 +269,7 @@ public final class ErrorMsg { */ public String toString() { String suffix = (_params == null) ? - (null != _code ? new String(getErrorMessage()) : _message) + (null != _code ? getErrorMessage() : _message) : MessageFormat.format(getErrorMessage(), _params); return formatLine() + suffix; } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/InternalError.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/InternalError.java new file mode 100644 index 00000000000..2bb0c3df3c5 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/InternalError.java @@ -0,0 +1,37 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: InternalError.java,v 1.0 2011-08-18 04:34:19 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.compiler.util; +/** + * Marks a class of errors in which XSLTC has reached some incorrect internal + * state from which it cannot recover. + */ +public class InternalError extends Error { + /** + * Construct an InternalError with the specified error message. + * @param msg the error message + */ + public InternalError(String msg) { + super(msg); + } +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MarkerInstruction.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MarkerInstruction.java new file mode 100644 index 00000000000..e76a3fe500f --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MarkerInstruction.java @@ -0,0 +1,98 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: MethodGenerator.java,v 1.10 2010-11-01 04:34:19 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.compiler.util; +import java.io.DataOutputStream; +import java.io.IOException; + +import com.sun.org.apache.bcel.internal.Constants; +import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; +import com.sun.org.apache.bcel.internal.generic.Instruction; +import com.sun.org.apache.bcel.internal.generic.Visitor; + +/** + * A special abstract dummy subclass of + * {@link org.apache.bcel.generic.Instruction} used to mark locations of + * interest in an {@link com.sun.org.apache.bcel.internal.generic.InstructionList}. It and + * its subclasses are only used as placeholders, and do not contribute to the + * actual byte code instruction stream. + */ +abstract class MarkerInstruction extends Instruction { + /** + * Zero-argument constructor. Sets the opcode to an invalid value and + * sets the length to zero, as it will not be written as part of the + * generated byte code. + */ + public MarkerInstruction() { + super(Constants.UNDEFINED, (short) 0); + } + + /** + * {@link com.sun.org.apache.bcel.internal.generic.Visitor}s will know nothing about this + * kind of {@link org.apche.bcel.generic.Instruction}, so this method does + * nothing. + */ + public void accept(Visitor v) { + } + + /** + * The number of JVM stack entries consumed by the instruction. + * This instruction is just a place holder, so it does not consume any + * stack entries. + * @param cpg The {@link com.sun.org.apache.bcel.internal.generic.ConstantPoolGen} for the + * current {@link com.sun.org.apache.bcel.internal.generic.ClassGen} + * @return 0 always + */ + final public int consumeStack(ConstantPoolGen cpg) { + return 0; + } + /** + * The number of JVM stack entries produced by the instruction. + * This instruction is just a place holder, so it does not produce any + * stack entries. + * @param cpg The {@link com.sun.org.apache.bcel.internal.generic.ConstantPoolGen} for the + * current {@link com.sun.org.apache.bcel.internal.generic.ClassGen} + * @return 0 always + */ + final public int produceStack(ConstantPoolGen cpg) { + return 0; + } + + /** + * Produce a copy of the instruction. By default a + * {@link MarkerInstruction} has no parameters, so the base implementation + * of {@link #copy()} returns the instruction itself. + * @return The instruction itself. + */ + public Instruction copy() { + return this; + } + /** + * Dump instruction as byte code to stream out. A {@link MarkerInstruction} + * has no effect on the generated byte code so it is never emitted to the + * output stream. + * @param out Output stream + */ + final public void dump(DataOutputStream out) throws IOException { + } +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java index 0d21b3b3a9c..9ba426f24f6 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/MethodGenerator.java @@ -23,22 +23,57 @@ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; -import java.util.Hashtable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; + import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.Stack; + +import com.sun.org.apache.bcel.internal.Constants; +import com.sun.org.apache.bcel.internal.classfile.Field; +import com.sun.org.apache.bcel.internal.classfile.Method; import com.sun.org.apache.bcel.internal.generic.ALOAD; import com.sun.org.apache.bcel.internal.generic.ASTORE; +import com.sun.org.apache.bcel.internal.generic.BranchHandle; +import com.sun.org.apache.bcel.internal.generic.BranchInstruction; import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; +import com.sun.org.apache.bcel.internal.generic.DLOAD; +import com.sun.org.apache.bcel.internal.generic.DSTORE; +import com.sun.org.apache.bcel.internal.generic.FLOAD; +import com.sun.org.apache.bcel.internal.generic.FSTORE; +import com.sun.org.apache.bcel.internal.generic.GETFIELD; +import com.sun.org.apache.bcel.internal.generic.GOTO; import com.sun.org.apache.bcel.internal.generic.ICONST; +import com.sun.org.apache.bcel.internal.generic.IfInstruction; import com.sun.org.apache.bcel.internal.generic.ILOAD; +import com.sun.org.apache.bcel.internal.generic.IndexedInstruction; import com.sun.org.apache.bcel.internal.generic.INVOKEINTERFACE; +import com.sun.org.apache.bcel.internal.generic.INVOKESPECIAL; +import com.sun.org.apache.bcel.internal.generic.INVOKESTATIC; +import com.sun.org.apache.bcel.internal.generic.INVOKEVIRTUAL; import com.sun.org.apache.bcel.internal.generic.ISTORE; import com.sun.org.apache.bcel.internal.generic.Instruction; +import com.sun.org.apache.bcel.internal.generic.InstructionConstants; import com.sun.org.apache.bcel.internal.generic.InstructionHandle; import com.sun.org.apache.bcel.internal.generic.InstructionList; +import com.sun.org.apache.bcel.internal.generic.InstructionTargeter; import com.sun.org.apache.bcel.internal.generic.LocalVariableGen; +import com.sun.org.apache.bcel.internal.generic.LocalVariableInstruction; +import com.sun.org.apache.bcel.internal.generic.LLOAD; +import com.sun.org.apache.bcel.internal.generic.LSTORE; import com.sun.org.apache.bcel.internal.generic.MethodGen; +import com.sun.org.apache.bcel.internal.generic.NEW; +import com.sun.org.apache.bcel.internal.generic.PUTFIELD; +import com.sun.org.apache.bcel.internal.generic.RET; +import com.sun.org.apache.bcel.internal.generic.Select; +import com.sun.org.apache.bcel.internal.generic.TargetLostException; import com.sun.org.apache.bcel.internal.generic.Type; + import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern; +import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC; /** * @author Jacek Ambroziak @@ -59,6 +94,13 @@ public class MethodGenerator extends MethodGen private static final int ITERATOR_INDEX = 2; private static final int HANDLER_INDEX = 3; + private static final int MAX_METHOD_SIZE = 65535; + private static final int MAX_BRANCH_TARGET_OFFSET = 32767; + private static final int MIN_BRANCH_TARGET_OFFSET = -32768; + + private static final int TARGET_METHOD_SIZE = 60000; + private static final int MINIMUM_OUTLINEABLE_CHUNK_SIZE = 1000; + private Instruction _iloadCurrent; private Instruction _istoreCurrent; private final Instruction _astoreHandler; @@ -82,6 +124,7 @@ public class MethodGenerator extends MethodGen private SlotAllocator _slotAllocator; private boolean _allocatorInit = false; + private LocalVariableRegistry _localVariableRegistry; /** * A mapping between patterns and instruction lists used by * test sequences to avoid compiling the same pattern multiple @@ -168,7 +211,7 @@ public class MethodGenerator extends MethodGen _nextNode = new INVOKEINTERFACE(index, 1); _slotAllocator = new SlotAllocator(); - _slotAllocator.initialize(getLocalVariables()); + _slotAllocator.initialize(getLocalVariableRegistry().getLocals(false)); _allocatorInit = true; } @@ -182,20 +225,364 @@ public class MethodGenerator extends MethodGen InstructionHandle start, InstructionHandle end) { - return (_allocatorInit) ? addLocalVariable2(name, type, start) - : super.addLocalVariable(name, type, start, end); + LocalVariableGen lvg; + + if (_allocatorInit) { + lvg = addLocalVariable2(name, type, start); + } else { + lvg = super.addLocalVariable(name, type, start, end); + getLocalVariableRegistry().registerLocalVariable(lvg); + } + return lvg; } public LocalVariableGen addLocalVariable2(String name, Type type, InstructionHandle start) { - return super.addLocalVariable(name, type, - _slotAllocator.allocateSlot(type), - start, null); + LocalVariableGen lvg = super.addLocalVariable(name, type, + _slotAllocator.allocateSlot(type), + start, null); + getLocalVariableRegistry().registerLocalVariable(lvg); + return lvg; + } + private LocalVariableRegistry getLocalVariableRegistry() { + if (_localVariableRegistry == null) { + _localVariableRegistry = new LocalVariableRegistry(); + } + + return _localVariableRegistry; + } + + /** + * Keeps track of all local variables used in the method. + *

    The + * {@link MethodGen#addLocalVariable(String,Type,InstructionHandle,InstructionHandle)} + * and + * {@link MethodGen#addLocalVariable(String,Type,int,InstructionHandle,InstructionHandle)} + * methods of {@link MethodGen} will only keep track of + * {@link LocalVariableGen} object until it'ss removed by a call to + * {@link MethodGen#removeLocalVariable(LocalVariableGen)}.

    + *

    In order to support efficient copying of local variables to outlined + * methods by + * {@link #outline(InstructionHandle,InstructionHandle,String,ClassGenerator)}, + * this class keeps track of all local variables defined by the method.

    + */ + protected class LocalVariableRegistry { + /** + *

    A java.lang.ArrayList of all + * {@link LocalVariableGen}s created for this method, indexed by the + * slot number of the local variable. The JVM stack frame of local + * variables is divided into "slots". A single slot can be used to + * store more than one variable in a method, without regard to type, so + * long as the byte code keeps the ranges of the two disjoint.

    + *

    If only one registration of use of a particular slot occurs, the + * corresponding entry of _variables contains the + * LocalVariableGen; if more than one occurs, the + * corresponding entry contains all such LocalVariableGens + * registered for the same slot; and if none occurs, the entry will be + * null. + */ + protected ArrayList _variables = new ArrayList(); + + /** + * Maps a name to a {@link LocalVariableGen} + */ + protected HashMap _nameToLVGMap = new HashMap(); + + /** + * Registers a {@link org.apache.bcel.generic.LocalVariableGen} + * for this method. + *

    Preconditions: + *

      + *
    • The range of instructions for lvg does not + * overlap with the range of instructions for any + * LocalVariableGen with the same slot index previously + * registered for this method. (Unchecked.)
    • + *

    + * @param lvg The variable to be registered + */ + protected void registerLocalVariable(LocalVariableGen lvg) { + int slot = lvg.getIndex(); + + int registrySize = _variables.size(); + + // If the LocalVariableGen uses a slot index beyond any previously + // encountered, expand the _variables, padding with intervening null + // entries as required. + if (slot >= registrySize) { + for (int i = registrySize; i < slot; i++) { + _variables.add(null); + } + _variables.add(lvg); + } else { + // If the LocalVariableGen reuses a slot, make sure the entry + // in _variables contains an ArrayList and add the newly + // registered LocalVariableGen to the list. If the entry in + // _variables just contains null padding, store the + // LocalVariableGen directly. + Object localsInSlot = _variables.get(slot); + if (localsInSlot != null) { + if (localsInSlot instanceof LocalVariableGen) { + ArrayList listOfLocalsInSlot = new ArrayList(); + listOfLocalsInSlot.add(localsInSlot); + listOfLocalsInSlot.add(lvg); + _variables.set(slot, listOfLocalsInSlot); + } else { + ((ArrayList) localsInSlot).add(lvg); + } + } else { + _variables.set(slot, lvg); + } + } + + registerByName(lvg); + } + + /** + *

    Find which {@link LocalVariableGen}, if any, is registered for a + * particular JVM local stack frame slot at a particular position in the + * byte code for the method.

    + *

    Preconditions: + *

      + *
    • The {@link InstructionList#setPositions()} has been called for + * the {@link InstructionList} associated with this + * {@link MethodGenerator}.
    • + *

    + * @param slot the JVM local stack frame slot number + * @param offset the position in the byte code + * @return the LocalVariableGen for the local variable + * stored in the relevant slot at the relevant offset; null + * if there is none. + */ + protected LocalVariableGen lookupRegisteredLocalVariable(int slot, + int offset) { + Object localsInSlot = (_variables != null) ? _variables.get(slot) + : null; + + // If this slot index was never used, _variables.get will return + // null; if it was used once, it will return the LocalVariableGen; + // more than once it will return an ArrayList of all the + // LocalVariableGens for variables stored in that slot. For each + // LocalVariableGen, check whether its range includes the + // specified offset, and return the first such encountered. + if (localsInSlot != null) { + if (localsInSlot instanceof LocalVariableGen) { + LocalVariableGen lvg = (LocalVariableGen)localsInSlot; + if (offsetInLocalVariableGenRange(lvg, offset)) { + return lvg; + } + } else { + ArrayList listOfLocalsInSlot = (ArrayList) localsInSlot; + int size = listOfLocalsInSlot.size(); + + for (int i = 0; i < size; i++) { + LocalVariableGen lvg = + (LocalVariableGen)listOfLocalsInSlot.get(i); + if (offsetInLocalVariableGenRange(lvg, offset)) { + return lvg; + } + } + } + } + + // No local variable stored in the specified slot at the specified + return null; + } + + /** + *

    Set up a mapping of the name of the specified + * {@link LocalVariableGen} object to the LocalVariableGen + * itself.

    + *

    This is a bit of a hack. XSLTC is relying on the fact that the + * name that is being looked up won't be duplicated, which isn't + * guaranteed. It replaces code which used to call + * {@link MethodGen#getLocalVariables()} and looped through the + * LocalVariableGen objects it contained to find the one + * with the specified name. However, getLocalVariables() + * has the side effect of setting the start and end for any + * LocalVariableGen which did not already have them + * set, which causes problems for outlining..

    + *

    See also {@link #lookUpByName(String)} and + * {@link #removeByNameTracking(LocalVariableGen)}

    LocalVariableGen + */ + protected void registerByName(LocalVariableGen lvg) { + Object duplicateNameEntry = _nameToLVGMap.get(lvg.getName()); + + if (duplicateNameEntry == null) { + _nameToLVGMap.put(lvg.getName(), lvg); + } else { + ArrayList sameNameList; + + if (duplicateNameEntry instanceof ArrayList) { + sameNameList = (ArrayList) duplicateNameEntry; + sameNameList.add(lvg); + } else { + sameNameList = new ArrayList(); + sameNameList.add(duplicateNameEntry); + sameNameList.add(lvg); + } + + _nameToLVGMap.put(lvg.getName(), sameNameList); + } + } + + /** + * Remove the mapping from the name of the specified + * {@link LocalVariableGen} to itself. + * See also {@link #registerByName(LocalVariableGen)} and + * {@link #lookUpByName(String)} + * @param lvg a LocalVariableGen + */ + protected void removeByNameTracking(LocalVariableGen lvg) { + Object duplicateNameEntry = _nameToLVGMap.get(lvg.getName()); + + if (duplicateNameEntry instanceof ArrayList) { + ArrayList sameNameList = (ArrayList) duplicateNameEntry; + for (int i = 0; i < sameNameList.size(); i++) { + if (sameNameList.get(i) == lvg) { + sameNameList.remove(i); + break; + } + } + } else { + _nameToLVGMap.remove(lvg); + } + } + + /** + *

    Given the name of a variable, finds a {@link LocalVariableGen} + * corresponding to it.

    + *

    See also {@link #registerByName(LocalVariableGen)} and + * {@link #removeByNameTracking(LocalVariableGen)}

    + * @param name + * @return + */ + protected LocalVariableGen lookUpByName(String name) { + LocalVariableGen lvg = null; + Object duplicateNameEntry = _nameToLVGMap.get(name); + + if (duplicateNameEntry instanceof ArrayList) { + ArrayList sameNameList = (ArrayList) duplicateNameEntry; + + for (int i = 0; i < sameNameList.size(); i++) { + lvg = (LocalVariableGen)sameNameList.get(i); + if (lvg.getName() == name) { + break; + } + } + } else { + lvg = (LocalVariableGen) duplicateNameEntry; + } + + return lvg; + } + + /** + *

    Gets all {@link LocalVariableGen} objects for this method.

    + *

    When the includeRemoved argument has the value + * false, this method replaces uses of + * {@link MethodGen#getLocalVariables()} which has + * a side-effect of setting the start and end range for any + * LocalVariableGen if either was null. That + * side-effect causes problems for outlining of code in XSLTC. + * @param includeRemoved Specifies whether all local variables ever + * declared should be returned (true) or only those not + * removed (false) + * @return an array of LocalVariableGen containing all the + * local variables + */ + protected LocalVariableGen[] getLocals(boolean includeRemoved) { + LocalVariableGen[] locals = null; + ArrayList allVarsEverDeclared = new ArrayList(); + + if (includeRemoved) { + int slotCount = allVarsEverDeclared.size(); + + for (int i = 0; i < slotCount; i++) { + Object slotEntries = _variables.get(i); + if (slotEntries != null) { + if (slotEntries instanceof ArrayList) { + ArrayList slotList = (ArrayList) slotEntries; + + for (int j = 0; j < slotList.size(); j++) { + allVarsEverDeclared.add(slotList.get(i)); + } + } else { + allVarsEverDeclared.add(slotEntries); + } + } + } + } else { + Iterator nameVarsPairsIter = _nameToLVGMap.entrySet().iterator(); + + while (nameVarsPairsIter.hasNext()) { + Map.Entry nameVarsPair = + (Map.Entry) nameVarsPairsIter.next(); + Object vars = nameVarsPair.getValue(); + if (vars != null) { + if (vars instanceof ArrayList) { + ArrayList varsList = (ArrayList) vars; + for (int i = 0; i < varsList.size(); i++) { + allVarsEverDeclared.add(varsList.get(i)); + } + } else { + allVarsEverDeclared.add(vars); + } + } + } + } + + locals = new LocalVariableGen[allVarsEverDeclared.size()]; + allVarsEverDeclared.toArray(locals); + + return locals; + } + } + + /** + * Determines whether a particular variable is in use at a particular offset + * in the byte code for this method. + *

    Preconditions: + *

      + *
    • The {@link InstructionList#setPositions()} has been called for the + * {@link InstructionList} associated with this {@link MethodGenerator}. + *

    + * @param lvg the {@link LocalVariableGen} for the variable + * @param offset the position in the byte code + * @return true if and only if the specified variable is in + * use at the particular byte code offset. + */ + boolean offsetInLocalVariableGenRange(LocalVariableGen lvg, int offset) { + InstructionHandle lvgStart = lvg.getStart(); + InstructionHandle lvgEnd = lvg.getEnd(); + + // If no start handle is recorded for the LocalVariableGen, it is + // assumed to be in use from the beginning of the method. + if (lvgStart == null) { + lvgStart = getInstructionList().getStart(); + } + + // If no end handle is recorded for the LocalVariableGen, it is assumed + // to be in use to the end of the method. + if (lvgEnd == null) { + lvgEnd = getInstructionList().getEnd(); + } + + // Does the range of the instruction include the specified offset? + // Note that the InstructionHandle.getPosition method returns the + // offset of the beginning of an instruction. A LocalVariableGen's + // range includes the end instruction itself, so that instruction's + // length must be taken into consideration in computing whether the + // varible is in range at a particular offset. + return ((lvgStart.getPosition() <= offset) + && (lvgEnd.getPosition() + + lvgEnd.getInstruction().getLength() >= offset)); } public void removeLocalVariable(LocalVariableGen lvg) { _slotAllocator.releaseSlot(lvg); + getLocalVariableRegistry().removeByNameTracking(lvg); super.removeLocalVariable(lvg); } @@ -294,11 +681,7 @@ public class MethodGenerator extends MethodGen } public LocalVariableGen getLocalVariable(String name) { - final LocalVariableGen[] vars = getLocalVariables(); - for (int i = 0; i < vars.length; i++) - if (vars[i].getName().equals(name)) - return vars[i]; - return null; + return getLocalVariableRegistry().lookUpByName(name); } public void setMaxLocals() { @@ -320,21 +703,1447 @@ public class MethodGenerator extends MethodGen super.setMaxLocals(maxLocals); } - /** - * Add a pre-compiled pattern to this mode. - */ - public void addInstructionList(Pattern pattern, - InstructionList ilist) - { + /** + * Add a pre-compiled pattern to this mode. + */ + public void addInstructionList(Pattern pattern, InstructionList ilist) { _preCompiled.put(pattern, ilist); + } + + /** + * Get the instruction list for a pre-compiled pattern. Used by + * test sequences to avoid compiling patterns more than once. + */ + public InstructionList getInstructionList(Pattern pattern) { + return (InstructionList) _preCompiled.get(pattern); + } + + /** + * Used to keep track of an outlineable chunk of instructions in the + * current method. See {@link OutlineableChunkStart} and + * {@link OutlineableChunkEnd} for more information. + */ + private class Chunk implements Comparable { + /** + * {@link InstructionHandle} of the first instruction in the outlineable + * chunk. + */ + private InstructionHandle m_start; + + /** + * {@link org.apache.bcel.generic.InstructionHandle} of the first + * instruction in the outlineable chunk. + */ + private InstructionHandle m_end; + + /** + * Number of bytes in the instructions contained in this outlineable + * chunk. + */ + private int m_size; + + /** + *

    Constructor for an outlineable {@link MethodGenerator.Chunk}.

    + *

    Preconditions: + *

      + *
    • The {@link InstructionList#setPositions()} has been called for + * the {@link InstructionList} associated with this + * {@link MethodGenerator}.
    • + *

    + * @param start The {@link InstructionHandle} of the first + * instruction in the outlineable chunk. + * @param end The {@link InstructionHandle} of the last + * instruction in the outlineable chunk. + */ + Chunk(InstructionHandle start, InstructionHandle end) { + m_start = start; + m_end = end; + m_size = end.getPosition() - start.getPosition(); } /** - * Get the instruction list for a pre-compiled pattern. Used by - * test sequences to avoid compiling patterns more than once. + * Determines whether this outlineable {@link MethodGenerator.Chunk} is + * followed immediately by the argument + * MethodGenerator.Chunk, with no other intervening + * instructions, including {@link OutlineableChunkStart} or + * {@link OutlineableChunkEnd} instructions. + * @param neighbour an outlineable {@link MethodGenerator.Chunk} + * @return true if and only if the argument chunk + * immediately follows this chunk */ - public InstructionList getInstructionList(Pattern pattern) { - return (InstructionList) _preCompiled.get(pattern); + boolean isAdjacentTo(Chunk neighbour) { + return getChunkEnd().getNext() == neighbour.getChunkStart(); } + /** + * Getter method for the start of this {@linke MethodGenerator.Chunk} + * @return the {@link org.apache.bcel.generic.InstructionHandle} of the + * start of this chunk + */ + InstructionHandle getChunkStart() { + return m_start; + } + + /** + * Getter method for the end of this {@link MethodGenerator.Chunk} + * @return the {@link InstructionHandle} of the start of this chunk + */ + InstructionHandle getChunkEnd() { + return m_end; + } + + /** + * The size of this {@link MethodGenerator.Chunk} + * @return the number of bytes in the byte code represented by this + * chunk. + */ + int getChunkSize() { + return m_size; + } + + /** + * Implements the java.util.Comparable.compareTo(Object) + * method. + * @return + *
      + *
    • A positive int if the length of this + * chunk in bytes is greater than that of comparand
    • + *
    • A negative int if the length of this + * chunk in bytes is less than that of comparand
    • + *
    • Zero, otherwise.
    • + *
    + */ + public int compareTo(Object comparand) { + return getChunkSize() - ((Chunk)comparand).getChunkSize(); + } + } + + /** + * Find the outlineable chunks in this method that would be the best choices + * to outline, based on size and position in the method. + * @param classGen The {@link ClassGen} with which the generated methods + * will be associated + * @param totalMethodSize the size of the bytecode in the original method + * @return a java.util.ArrayList containing the + * {@link MethodGenerator.Chunk}s that may be outlined from this method + */ + private ArrayList getCandidateChunks(ClassGenerator classGen, + int totalMethodSize) { + Iterator instructions = getInstructionList().iterator(); + ArrayList candidateChunks = new ArrayList(); + ArrayList currLevelChunks = new ArrayList(); + Stack subChunkStack = new Stack(); + boolean openChunkAtCurrLevel = false; + boolean firstInstruction = true; + + InstructionHandle currentHandle; + + if (m_openChunks != 0) { + String msg = + (new ErrorMsg(ErrorMsg.OUTLINE_ERR_UNBALANCED_MARKERS)) + .toString(); + throw new InternalError(msg); + } + + // Scan instructions in the method, keeping track of the nesting level + // of outlineable chunks. + // + // currLevelChunks + // keeps track of the child chunks of a chunk. For each chunk, + // there will be a pair of entries: the InstructionHandles for the + // start and for the end of the chunk + // subChunkStack + // a stack containing the partially accumulated currLevelChunks for + // each chunk that's still open at the current position in the + // InstructionList. + // candidateChunks + // the list of chunks which have been accepted as candidates chunks + // for outlining + do { + // Get the next instruction. The loop will perform one extra + // iteration after it reaches the end of the InstructionList, with + // currentHandle set to null. + currentHandle = instructions.hasNext() + ? (InstructionHandle) instructions.next() + : null; + Instruction inst = + (currentHandle != null) ? currentHandle.getInstruction() + : null; + + // At the first iteration, create a chunk representing all the + // code in the method. This is done just to simplify the logic - + // this chunk can never be outlined because it will be too big. + if (firstInstruction) { + openChunkAtCurrLevel = true; + currLevelChunks.add(currentHandle); + firstInstruction = false; + } + + // Found a new chunk + if (inst instanceof OutlineableChunkStart) { + // If last MarkerInstruction encountered was an + // OutlineableChunkStart, this represents the first chunk + // nested within that previous chunk - push the list of chunks + // from the outer level onto the stack + if (openChunkAtCurrLevel) { + subChunkStack.push(currLevelChunks); + currLevelChunks = new ArrayList(); + } + + openChunkAtCurrLevel = true; + currLevelChunks.add(currentHandle); + // Close off an open chunk + } else if (currentHandle == null + || inst instanceof OutlineableChunkEnd) { + ArrayList nestedSubChunks = null; + + // If the last MarkerInstruction encountered was an + // OutlineableChunkEnd, it means that the current instruction + // marks the end of a chunk that contained child chunks. + // Those children might need to be examined below in case they + // are better candidates for outlining than the current chunk. + if (!openChunkAtCurrLevel) { + nestedSubChunks = currLevelChunks; + currLevelChunks = (ArrayList)subChunkStack.pop(); + } + + // Get the handle for the start of this chunk (the last entry + // in currLevelChunks) + InstructionHandle chunkStart = + (InstructionHandle) currLevelChunks.get( + currLevelChunks.size()-1); + + int chunkEndPosition = + (currentHandle != null) ? currentHandle.getPosition() + : totalMethodSize; + int chunkSize = chunkEndPosition - chunkStart.getPosition(); + + // Two ranges of chunk size to consider: + // + // 1. [0,TARGET_METHOD_SIZE] + // Keep this chunk in consideration as a candidate, + // and ignore its subchunks, if any - there's nothing to be + // gained by outlining both the current chunk and its + // children! + // + // 2. (TARGET_METHOD_SIZE,+infinity) + // Ignore this chunk - it's too big. Add its subchunks + // as candidates, after merging adjacent chunks to produce + // chunks that are as large as possible + if (chunkSize <= TARGET_METHOD_SIZE) { + currLevelChunks.add(currentHandle); + } else { + if (!openChunkAtCurrLevel) { + int childChunkCount = nestedSubChunks.size() / 2; + if (childChunkCount > 0) { + Chunk[] childChunks = new Chunk[childChunkCount]; + + // Gather all the child chunks of the current chunk + for (int i = 0; i < childChunkCount; i++) { + InstructionHandle start = + (InstructionHandle) nestedSubChunks + .get(i*2); + InstructionHandle end = + (InstructionHandle) nestedSubChunks + .get(i*2+1); + + childChunks[i] = new Chunk(start, end); + } + + // Merge adjacent siblings + ArrayList mergedChildChunks = + mergeAdjacentChunks(childChunks); + + // Add chunks that mean minimum size requirements + // to the list of candidate chunks for outlining + for (int i = 0; i < mergedChildChunks.size(); i++) { + Chunk mergedChunk = + (Chunk)mergedChildChunks.get(i); + int mergedSize = mergedChunk.getChunkSize(); + + if (mergedSize >= MINIMUM_OUTLINEABLE_CHUNK_SIZE + && mergedSize <= TARGET_METHOD_SIZE) { + candidateChunks.add(mergedChunk); + } + } + } + } + + // Drop the chunk which was too big + currLevelChunks.remove(currLevelChunks.size() - 1); + } + + // currLevelChunks contains pairs of InstructionHandles. If + // its size is an odd number, the loop has encountered the + // start of a chunk at this level, but not its end. + openChunkAtCurrLevel = ((currLevelChunks.size() & 0x1) == 1); + } + + } while (currentHandle != null); + + return candidateChunks; + } + + /** + * Merge adjacent sibling chunks to produce larger candidate chunks for + * outlining + * @param chunks array of sibling {@link MethodGenerator.Chunk}s that are + * under consideration for outlining. Chunks must be in + * the order encountered in the {@link InstructionList} + * @return a java.util.ArrayList of + * MethodGenerator.Chunks maximally merged + */ + private ArrayList mergeAdjacentChunks(Chunk[] chunks) { + int[] adjacencyRunStart = new int[chunks.length]; + int[] adjacencyRunLength = new int[chunks.length]; + boolean[] chunkWasMerged = new boolean[chunks.length]; + + int maximumRunOfChunks = 0; + int startOfCurrentRun; + int numAdjacentRuns = 0; + + ArrayList mergedChunks = new ArrayList(); + + startOfCurrentRun = 0; + + // Loop through chunks, and record in adjacencyRunStart where each + // run of adjacent chunks begins and how many are in that run. For + // example, given chunks A B C D E F, if A is adjacent to B, but not + // to C, and C, D, E and F are all adjacent, + // adjacencyRunStart[0] == 0; adjacencyRunLength[0] == 2 + // adjacencyRunStart[1] == 2; adjacencyRunLength[1] == 4 + for (int i = 1; i < chunks.length; i++) { + if (!chunks[i-1].isAdjacentTo(chunks[i])) { + int lengthOfRun = i - startOfCurrentRun; + + // Track the longest run of chunks found + if (maximumRunOfChunks < lengthOfRun) { + maximumRunOfChunks = lengthOfRun; + } + + if (lengthOfRun > 1 ) { + adjacencyRunLength[numAdjacentRuns] = lengthOfRun; + adjacencyRunStart[numAdjacentRuns] = startOfCurrentRun; + numAdjacentRuns++; + } + + startOfCurrentRun = i; + } + } + + if (chunks.length - startOfCurrentRun > 1) { + int lengthOfRun = chunks.length - startOfCurrentRun; + + // Track the longest run of chunks found + if (maximumRunOfChunks < lengthOfRun) { + maximumRunOfChunks = lengthOfRun; + } + + adjacencyRunLength[numAdjacentRuns] = + chunks.length - startOfCurrentRun; + adjacencyRunStart[numAdjacentRuns] = startOfCurrentRun; + numAdjacentRuns++; + } + + // Try merging adjacent chunks to come up with better sized chunks for + // outlining. This algorithm is not optimal, but it should be + // reasonably fast. Consider an example like this, where four chunks + // of the sizes specified in brackets are adjacent. The best way of + // combining these chunks would be to merge the first pair and merge + // the last three to form two chunks, but the algorithm will merge the + // three in the middle instead, leaving three chunks in all. + // [25000] [25000] [20000] [1000] [20000] + + // Start by trying to merge the maximum number of adjacent chunks, and + // work down from there. + for (int numToMerge = maximumRunOfChunks; numToMerge>1; numToMerge--) { + // Look at each run of adjacent chunks + for (int run = 0; run < numAdjacentRuns; run++) { + int runStart = adjacencyRunStart[run]; + int runEnd = runStart + adjacencyRunLength[run] - 1; + + boolean foundChunksToMerge = false; + + // Within the current run of adjacent chunks, look at all + // "subruns" of length numToMerge, until we run out or find + // a subrun that can be merged. + for (int mergeStart = runStart; + mergeStart+numToMerge-1 <= runEnd && !foundChunksToMerge; + mergeStart++) { + int mergeEnd = mergeStart + numToMerge - 1; + int mergeSize = 0; + + // Find out how big the subrun is + for (int j = mergeStart; j <= mergeEnd; j++) { + mergeSize = mergeSize + chunks[j].getChunkSize(); + } + + // If the current subrun is small enough to outline, + // merge it, and split the remaining chunks in the run + if (mergeSize <= TARGET_METHOD_SIZE) { + foundChunksToMerge = true; + + for (int j = mergeStart; j <= mergeEnd; j++) { + chunkWasMerged[j] = true; + } + + mergedChunks.add( + new Chunk(chunks[mergeStart].getChunkStart(), + chunks[mergeEnd].getChunkEnd())); + + // Adjust the length of the current run of adjacent + // chunks to end at the newly merged chunk... + adjacencyRunLength[run] = + adjacencyRunStart[run] - mergeStart; + + int trailingRunLength = runEnd - mergeEnd; + + // and any chunks that follow the newly merged chunk + // in the current run of adjacent chunks form another + // new run of adjacent chunks + if (trailingRunLength >= 2) { + adjacencyRunStart[numAdjacentRuns] = mergeEnd + 1; + adjacencyRunLength[numAdjacentRuns] = + trailingRunLength; + numAdjacentRuns++; + } + } + } + } + } + + // Make a final pass for any chunk that wasn't merged with a sibling + // and include it in the list of chunks after merging. + for (int i = 0; i < chunks.length; i++) { + if (!chunkWasMerged[i]) { + mergedChunks.add(chunks[i]); + } + } + + return mergedChunks; + } + + /** + * Breaks up the IL for this {@link MethodGenerator} into separate + * outlined methods so that no method exceeds the 64KB limit on the length + * of the byte code associated with a method. + * @param classGen The {@link ClassGen} with which the generated methods + * will be associated + * @param originalMethodSize The number of bytes of bytecode represented by + * the {@link InstructionList} of this method + * @return an array of the outlined Methods and the original + * method itself + */ + public Method[] outlineChunks(ClassGenerator classGen, + int originalMethodSize) { + ArrayList methodsOutlined = new ArrayList(); + int currentMethodSize = originalMethodSize; + + int outlinedCount = 0; + boolean moreMethodsOutlined; + String originalMethodName = getName(); + + // Special handling for initialization methods. No other methods can + // include the less than and greater than characters in their names, + // so we munge the names here. + if (originalMethodName.equals("")) { + originalMethodName = "$lt$init$gt$"; + } else if (originalMethodName.equals("")) { + originalMethodName = "$lt$clinit$gt$"; + } + + // Loop until the original method comes in under the JVM limit or + // the loop was unable to outline any more methods + do { + // Get all the best candidates for outlining, and sort them in + // ascending order of size + ArrayList candidateChunks = getCandidateChunks(classGen, + currentMethodSize); + Collections.sort(candidateChunks); + + moreMethodsOutlined = false; + + // Loop over the candidates for outlining, from the largest to the + // smallest and outline them one at a time, until the loop has + // outlined all or the original method comes in under the JVM + // limit on the size of a method. + for (int i = candidateChunks.size()-1; + i >= 0 && currentMethodSize > TARGET_METHOD_SIZE; + i--) { + Chunk chunkToOutline = (Chunk)candidateChunks.get(i); + + methodsOutlined.add(outline(chunkToOutline.getChunkStart(), + chunkToOutline.getChunkEnd(), + originalMethodName + "$outline$" + + outlinedCount, + classGen)); + outlinedCount++; + moreMethodsOutlined = true; + + InstructionList il = getInstructionList(); + InstructionHandle lastInst = il.getEnd(); + il.setPositions(); + + // Check the size of the method now + currentMethodSize = + lastInst.getPosition() + + lastInst.getInstruction().getLength(); + } + } while (moreMethodsOutlined && currentMethodSize > TARGET_METHOD_SIZE); + + // Outlining failed to reduce the size of the current method + // sufficiently. Throw an internal error. + if (currentMethodSize > MAX_METHOD_SIZE) { + String msg = (new ErrorMsg(ErrorMsg.OUTLINE_ERR_METHOD_TOO_BIG)) + .toString(); + throw new InternalError(msg); + } + + Method[] methodsArr = new Method[methodsOutlined.size() + 1]; + methodsOutlined.toArray(methodsArr); + + methodsArr[methodsOutlined.size()] = getThisMethod(); + + return methodsArr; + } + + /** + * Given an outlineable chunk of code in the current {@link MethodGenerator} + * move ("outline") the chunk to a new method, and replace the chunk in the + * old method with a reference to that new method. No + * {@link OutlineableChunkStart} or {@link OutlineableChunkEnd} instructions + * are copied. + * @param first The {@link InstructionHandle} of the first instruction in + * the chunk to outline + * @param last The InstructionHandle of the last instruction in + * the chunk to outline + * @param outlinedMethodName The name of the new method + * @param classGen The {@link ClassGenerator} of which the original + * and new methods will be members + * @return The new {@link Method} containing the outlined code. + */ + private Method outline(InstructionHandle first, InstructionHandle last, + String outlinedMethodName, ClassGenerator classGen) { + // We're not equipped to deal with exception handlers yet. Bail out! + if (getExceptionHandlers().length != 0) { + String msg = (new ErrorMsg(ErrorMsg.OUTLINE_ERR_TRY_CATCH)) + .toString(); + throw new InternalError(msg); + } + + int outlineChunkStartOffset = first.getPosition(); + int outlineChunkEndOffset = last.getPosition() + + last.getInstruction().getLength(); + + ConstantPoolGen cpg = getConstantPool(); + + // Create new outlined method with signature: + // + // private final outlinedMethodName(CopyLocals copyLocals); + // + // CopyLocals is an object that is used to copy-in/copy-out local + // variables that are used by the outlined method. Only locals whose + // value is potentially set or referenced outside the range of the + // chunk that is being outlined will be represented in CopyLocals. The + // type of the variable for copying local variables is actually + // generated to be unique - it is not named CopyLocals. + // + // The outlined method never needs to be referenced outside of this + // class, and will never be overridden, so we mark it private final. + final InstructionList newIL = new InstructionList(); + + final XSLTC xsltc = classGen.getParser().getXSLTC(); + final String argTypeName = xsltc.getHelperClassName(); + final Type[] argTypes = + new Type[] {(new ObjectType(argTypeName)).toJCType()}; + final String argName = "copyLocals"; + final String[] argNames = new String[] {argName}; + + int methodAttributes = ACC_PRIVATE | ACC_FINAL; + final boolean isStaticMethod = (getAccessFlags() & ACC_STATIC) != 0; + + if (isStaticMethod) { + methodAttributes = methodAttributes | ACC_STATIC; + } + + final MethodGenerator outlinedMethodGen = + new MethodGenerator(methodAttributes, + com.sun.org.apache.bcel.internal.generic.Type.VOID, + argTypes, argNames, outlinedMethodName, + getClassName(), newIL, cpg); + + // Create class for copying local variables to the outlined method. + // The fields the class will need to contain will be determined as the + // code in the outlineable chunk is examined. + ClassGenerator copyAreaCG + = new ClassGenerator(argTypeName, OBJECT_CLASS, argTypeName+".java", + ACC_FINAL | ACC_PUBLIC | ACC_SUPER, null, + classGen.getStylesheet()) { + public boolean isExternal() { + return true; + } + }; + ConstantPoolGen copyAreaCPG = copyAreaCG.getConstantPool(); + copyAreaCG.addEmptyConstructor(ACC_PUBLIC); + + // Number of fields in the copy class + int copyAreaFieldCount = 0; + + // The handle for the instruction after the last one to be outlined. + // Note that this should never end up being null. An outlineable chunk + // won't contain a RETURN instruction or other branch out of the chunk, + // and the JVM specification prohibits code in a method from just + // "falling off the end" so this should always point to a valid handle. + InstructionHandle limit = last.getNext(); + + // InstructionLists for copying values into and out of an instance of + // CopyLocals: + // oldMethCoypInIL - from locals in old method into an instance + // of the CopyLocals class (oldMethCopyInIL) + // oldMethCopyOutIL - from CopyLocals back into locals in the old + // method + // newMethCopyInIL - from CopyLocals into locals in the new + // method + // newMethCopyOutIL - from locals in new method into the instance + // of the CopyLocals class + InstructionList oldMethCopyInIL = new InstructionList(); + InstructionList oldMethCopyOutIL = new InstructionList(); + InstructionList newMethCopyInIL = new InstructionList(); + InstructionList newMethCopyOutIL = new InstructionList(); + + // Allocate instance of class in which we'll copy in or copy out locals + // and make two copies: last copy is used to invoke constructor; + // other two are used for references to fields in the CopyLocals object + InstructionHandle outlinedMethodCallSetup = + oldMethCopyInIL.append(new NEW(cpg.addClass(argTypeName))); + oldMethCopyInIL.append(InstructionConstants.DUP); + oldMethCopyInIL.append(InstructionConstants.DUP); + oldMethCopyInIL.append( + new INVOKESPECIAL(cpg.addMethodref(argTypeName, "", "()V"))); + + // Generate code to invoke the new outlined method, and place the code + // on oldMethCopyOutIL + InstructionHandle outlinedMethodRef; + + if (isStaticMethod) { + outlinedMethodRef = + oldMethCopyOutIL.append( + new INVOKESTATIC(cpg.addMethodref( + classGen.getClassName(), + outlinedMethodName, + outlinedMethodGen.getSignature()))); + } else { + oldMethCopyOutIL.append(InstructionConstants.THIS); + oldMethCopyOutIL.append(InstructionConstants.SWAP); + outlinedMethodRef = + oldMethCopyOutIL.append( + new INVOKEVIRTUAL(cpg.addMethodref( + classGen.getClassName(), + outlinedMethodName, + outlinedMethodGen.getSignature()))); + } + + // Used to keep track of the first in a sequence of + // OutlineableChunkStart instructions + boolean chunkStartTargetMappingsPending = false; + InstructionHandle pendingTargetMappingHandle = null; + + // Used to keep track of the last instruction that was copied + InstructionHandle lastCopyHandle = null; + + // Keeps track of the mapping from instruction handles in the old + // method to instruction handles in the outlined method. Only need + // to track instructions that are targeted by something else in the + // generated BCEL + HashMap targetMap = new HashMap(); + + // Keeps track of the mapping from local variables in the old method + // to local variables in the outlined method. + HashMap localVarMap = new HashMap(); + + HashMap revisedLocalVarStart = new HashMap(); + HashMap revisedLocalVarEnd = new HashMap(); + + // Pass 1: Make copies of all instructions, append them to the new list + // and associate old instruction references with the new ones, i.e., + // a 1:1 mapping. The special marker instructions are not copied. + // Also, identify local variables whose values need to be copied into or + // out of the new outlined method, and builds up targetMap and + // localVarMap as described above. The code identifies those local + // variables first so that they can have fixed slots in the stack + // frame for the outlined method assigned them ahead of all those + // variables that don't need to exist for the entirety of the outlined + // method invocation. + for (InstructionHandle ih = first; ih != limit; ih = ih.getNext()) { + Instruction inst = ih.getInstruction(); + + // MarkerInstructions are not copied, so if something else targets + // one, the targetMap will point to the nearest copied sibling + // InstructionHandle: for an OutlineableChunkEnd, the nearest + // preceding sibling; for an OutlineableChunkStart, the nearest + // following sibling. + if (inst instanceof MarkerInstruction) { + if (ih.hasTargeters()) { + if (inst instanceof OutlineableChunkEnd) { + targetMap.put(ih, lastCopyHandle); + } else { + if (!chunkStartTargetMappingsPending) { + chunkStartTargetMappingsPending = true; + pendingTargetMappingHandle = ih; + } + } + } + } else { + // Copy the instruction and append it to the outlined method's + // InstructionList. + Instruction c = inst.copy(); // Use clone for shallow copy + + if (c instanceof BranchInstruction) { + lastCopyHandle = newIL.append((BranchInstruction)c); + } else { + lastCopyHandle = newIL.append(c); + } + + if (c instanceof LocalVariableInstruction + || c instanceof RET) { + // For any instruction that touches a local variable, + // check whether the local variable's value needs to be + // copied into or out of the outlined method. If so, + // generate the code to perform the necessary copying, and + // use localVarMap to map the variable in the original + // method to the variable in the new method. + IndexedInstruction lvi = (IndexedInstruction)c; + int oldLocalVarIndex = lvi.getIndex(); + LocalVariableGen oldLVG = + getLocalVariableRegistry() + .lookupRegisteredLocalVariable(oldLocalVarIndex, + ih.getPosition()); + LocalVariableGen newLVG = + (LocalVariableGen)localVarMap.get(oldLVG); + + // Has the code already mapped this local variable to a + // local in the new method? + if (localVarMap.get(oldLVG) == null) { + // Determine whether the local variable needs to be + // copied into or out of the outlined by checking + // whether the range of instructions in which the + // variable is accessible is outside the range of + // instructions in the outlineable chunk. + // Special case a chunk start offset of zero: a local + // variable live at that position must be a method + // parameter, so the code doesn't need to check whether + // the variable is live before that point; being live + // at offset zero is sufficient to know that the value + // must be copied in to the outlined method. + boolean copyInLocalValue = + offsetInLocalVariableGenRange(oldLVG, + (outlineChunkStartOffset != 0) + ? outlineChunkStartOffset-1 + : 0); + boolean copyOutLocalValue = + offsetInLocalVariableGenRange(oldLVG, + outlineChunkEndOffset+1); + + // For any variable that needs to be copied into or out + // of the outlined method, create a field in the + // CopyLocals class, and generate the necessary code for + // copying the value. + if (copyInLocalValue || copyOutLocalValue) { + String varName = oldLVG.getName(); + Type varType = oldLVG.getType(); + newLVG = outlinedMethodGen.addLocalVariable(varName, + varType, + null, + null); + int newLocalVarIndex = newLVG.getIndex(); + String varSignature = varType.getSignature(); + + // Record the mapping from the old local to the new + localVarMap.put(oldLVG, newLVG); + + copyAreaFieldCount++; + String copyAreaFieldName = + "field" + copyAreaFieldCount; + copyAreaCG.addField( + new Field(ACC_PUBLIC, + copyAreaCPG.addUtf8(copyAreaFieldName), + copyAreaCPG.addUtf8(varSignature), + null, copyAreaCPG.getConstantPool())); + + int fieldRef = cpg.addFieldref(argTypeName, + copyAreaFieldName, + varSignature); + + if (copyInLocalValue) { + // Generate code for the old method to store the + // value of the local into the correct field in + // CopyLocals prior to invocation of the + // outlined method. + oldMethCopyInIL.append( + InstructionConstants.DUP); + InstructionHandle copyInLoad = + oldMethCopyInIL.append( + loadLocal(oldLocalVarIndex, varType)); + oldMethCopyInIL.append(new PUTFIELD(fieldRef)); + + // If the end of the live range of the old + // variable was in the middle of the outlined + // chunk. Make the load of its value the new + // end of its range. + if (!copyOutLocalValue) { + revisedLocalVarEnd.put(oldLVG, copyInLoad); + } + + // Generate code for start of the outlined + // method to copy the value from a field in + // CopyLocals to the new local in the outlined + // method + newMethCopyInIL.append( + InstructionConstants.ALOAD_1); + newMethCopyInIL.append(new GETFIELD(fieldRef)); + newMethCopyInIL.append( + storeLocal(newLocalVarIndex, varType)); + } + + if (copyOutLocalValue) { + // Generate code for the end of the outlined + // method to copy the value from the new local + // variable into a field in CopyLocals + // method + newMethCopyOutIL.append( + InstructionConstants.ALOAD_1); + newMethCopyOutIL.append( + loadLocal(newLocalVarIndex, varType)); + newMethCopyOutIL.append(new PUTFIELD(fieldRef)); + + // Generate code to copy the value from a field + // in CopyLocals into a local in the original + // method following invocation of the outlined + // method. + oldMethCopyOutIL.append( + InstructionConstants.DUP); + oldMethCopyOutIL.append(new GETFIELD(fieldRef)); + InstructionHandle copyOutStore = + oldMethCopyOutIL.append( + storeLocal(oldLocalVarIndex, varType)); + + // If the start of the live range of the old + // variable was in the middle of the outlined + // chunk. Make this store into it the new start + // of its range. + if (!copyInLocalValue) { + revisedLocalVarStart.put(oldLVG, + copyOutStore); + } + } + } + } + } + + if (ih.hasTargeters()) { + targetMap.put(ih, lastCopyHandle); + } + + // If this is the first instruction copied following a sequence + // of OutlineableChunkStart instructions, indicate that the + // sequence of old instruction all map to this newly created + // instruction + if (chunkStartTargetMappingsPending) { + do { + targetMap.put(pendingTargetMappingHandle, + lastCopyHandle); + pendingTargetMappingHandle = + pendingTargetMappingHandle.getNext(); + } while(pendingTargetMappingHandle != ih); + + chunkStartTargetMappingsPending = false; + } + } + } + + // Pass 2: Walk old and new instruction lists, updating branch targets + // and local variable references in the new list + InstructionHandle ih = first; + InstructionHandle ch = newIL.getStart(); + + while (ch != null) { + // i == old instruction; c == copied instruction + Instruction i = ih.getInstruction(); + Instruction c = ch.getInstruction(); + + if (i instanceof BranchInstruction) { + BranchInstruction bc = (BranchInstruction)c; + BranchInstruction bi = (BranchInstruction)i; + InstructionHandle itarget = bi.getTarget(); // old target + + // New target must be in targetMap + InstructionHandle newTarget = + (InstructionHandle)targetMap.get(itarget); + + bc.setTarget(newTarget); + + // Handle LOOKUPSWITCH or TABLESWITCH which may have many + // target instructions + if (bi instanceof Select) { + InstructionHandle[] itargets = ((Select)bi).getTargets(); + InstructionHandle[] ctargets = ((Select)bc).getTargets(); + + // Update all targets + for (int j=0; j < itargets.length; j++) { + ctargets[j] = + (InstructionHandle)targetMap.get(itargets[j]); + } + } + } else if (i instanceof LocalVariableInstruction + || i instanceof RET) { + // For any instruction that touches a local variable, + // map the location of the variable in the original + // method to its location in the new method. + IndexedInstruction lvi = (IndexedInstruction)c; + int oldLocalVarIndex = lvi.getIndex(); + LocalVariableGen oldLVG = + getLocalVariableRegistry() + .lookupRegisteredLocalVariable(oldLocalVarIndex, + ih.getPosition()); + LocalVariableGen newLVG = + (LocalVariableGen)localVarMap.get(oldLVG); + int newLocalVarIndex; + + if (newLVG == null) { + // Create new variable based on old variable - use same + // name and type, but we will let the variable be active + // for the entire outlined method. + // LocalVariableGen oldLocal = oldLocals[oldLocalVarIndex]; + String varName = oldLVG.getName(); + Type varType = oldLVG.getType(); + newLVG = outlinedMethodGen.addLocalVariable(varName, + varType, + null, + null); + newLocalVarIndex = newLVG.getIndex(); + localVarMap.put(oldLVG, newLVG); + + // The old variable's live range was wholly contained in + // the outlined chunk. There should no longer be stores + // of values into it or loads of its value, so we can just + // mark its live range as the reference to the outlined + // method. + revisedLocalVarStart.put(oldLVG, outlinedMethodRef); + revisedLocalVarEnd.put(oldLVG, outlinedMethodRef); + } else { + newLocalVarIndex = newLVG.getIndex(); + } + lvi.setIndex(newLocalVarIndex); + } + + // If the old instruction marks the end of the range of a local + // variable, make sure that any slots on the stack reserved for + // local variables are made available for reuse by calling + // MethodGenerator.removeLocalVariable + if (ih.hasTargeters()) { + InstructionTargeter[] targeters = ih.getTargeters(); + + for (int idx = 0; idx < targeters.length; idx++) { + InstructionTargeter targeter = targeters[idx]; + + if (targeter instanceof LocalVariableGen + && ((LocalVariableGen)targeter).getEnd()==ih) { + Object newLVG = localVarMap.get(targeter); + if (newLVG != null) { + outlinedMethodGen.removeLocalVariable( + (LocalVariableGen)newLVG); + } + } + } + } + + // If the current instruction in the original list was a marker, + // it wasn't copied, so don't advance through the list of copied + // instructions yet. + if (!(i instanceof MarkerInstruction)) { + ch = ch.getNext(); + } + ih = ih.getNext(); + + } + + // POP the reference to the CopyLocals object from the stack + oldMethCopyOutIL.append(InstructionConstants.POP); + + // Now that the generation of the outlined code is complete, update + // the old local variables with new start and end ranges, as required. + Iterator revisedLocalVarStartPairIter = revisedLocalVarStart.entrySet() + .iterator(); + while (revisedLocalVarStartPairIter.hasNext()) { + Map.Entry lvgRangeStartPair = + (Map.Entry)revisedLocalVarStartPairIter.next(); + LocalVariableGen lvg = (LocalVariableGen)lvgRangeStartPair.getKey(); + InstructionHandle startInst = + (InstructionHandle)lvgRangeStartPair.getValue(); + + lvg.setStart(startInst); + + } + + Iterator revisedLocalVarEndPairIter = revisedLocalVarEnd.entrySet() + .iterator(); + while (revisedLocalVarEndPairIter.hasNext()) { + Map.Entry lvgRangeEndPair = + (Map.Entry)revisedLocalVarEndPairIter.next(); + LocalVariableGen lvg = (LocalVariableGen)lvgRangeEndPair.getKey(); + InstructionHandle endInst = + (InstructionHandle)lvgRangeEndPair.getValue(); + + lvg.setEnd(endInst); + } + + xsltc.dumpClass(copyAreaCG.getJavaClass()); + + // Assemble the instruction lists so that the old method invokes the + // new outlined method + InstructionList oldMethodIL = getInstructionList(); + + oldMethodIL.insert(first, oldMethCopyInIL); + oldMethodIL.insert(first, oldMethCopyOutIL); + + // Insert the copying code into the outlined method + newIL.insert(newMethCopyInIL); + newIL.append(newMethCopyOutIL); + newIL.append(InstructionConstants.RETURN); + + // Discard instructions in outlineable chunk from old method + try { + oldMethodIL.delete(first, last); + } catch (TargetLostException e) { + InstructionHandle[] targets = e.getTargets(); + // If there were still references to old instructions lingering, + // clean those up. The only instructions targetting the deleted + // instructions should have been part of the chunk that was just + // deleted, except that instructions might branch to the start of + // the outlined chunk; similarly, all the live ranges of local + // variables should have been adjusted, except for unreferenced + // variables. + for (int i = 0; i < targets.length; i++) { + InstructionHandle lostTarget = targets[i]; + InstructionTargeter[] targeters = lostTarget.getTargeters(); + for (int j = 0; j < targeters.length; j++) { + if (targeters[j] instanceof LocalVariableGen) { + LocalVariableGen lvgTargeter = + (LocalVariableGen) targeters[j]; + // In the case of any lingering variable references, + // just make the live range point to the outlined + // function reference. Such variables should be unused + // anyway. + if (lvgTargeter.getStart() == lostTarget) { + lvgTargeter.setStart(outlinedMethodRef); + } + if (lvgTargeter.getEnd() == lostTarget) { + lvgTargeter.setEnd(outlinedMethodRef); + } + } else { + targeters[j].updateTarget(lostTarget, + outlinedMethodCallSetup); + } + } + } + } + + // Make a copy for the new method of all exceptions that might be thrown + String[] exceptions = getExceptions(); + for (int i = 0; i < exceptions.length; i++) { + outlinedMethodGen.addException(exceptions[i]); + } + + return outlinedMethodGen.getThisMethod(); + } + + /** + * Helper method to generate an instance of a subclass of + * {@link LoadInstruction} based on the specified {@link Type} that will + * load the specified local variable + * @param index the JVM stack frame index of the variable that is to be + * loaded + * @param type the {@link Type} of the variable + * @return the generated {@link LoadInstruction} + */ + private static Instruction loadLocal(int index, Type type) { + if (type == Type.BOOLEAN) { + return new ILOAD(index); + } else if (type == Type.INT) { + return new ILOAD(index); + } else if (type == Type.SHORT) { + return new ILOAD(index); + } else if (type == Type.LONG) { + return new LLOAD(index); + } else if (type == Type.BYTE) { + return new ILOAD(index); + } else if (type == Type.CHAR) { + return new ILOAD(index); + } else if (type == Type.FLOAT) { + return new FLOAD(index); + } else if (type == Type.DOUBLE) { + return new DLOAD(index); + } else { + return new ALOAD(index); + } + } + + /** + * Helper method to generate an instance of a subclass of + * {@link StoreInstruction} based on the specified {@link Type} that will + * store a value in the specified local variable + * @param index the JVM stack frame index of the variable that is to be + * stored + * @param type the {@link Type} of the variable + * @return the generated {@link StoredInstruction} + */ + private static Instruction storeLocal(int index, Type type) { + if (type == Type.BOOLEAN) { + return new ISTORE(index); + } else if (type == Type.INT) { + return new ISTORE(index); + } else if (type == Type.SHORT) { + return new ISTORE(index); + } else if (type == Type.LONG) { + return new LSTORE(index); + } else if (type == Type.BYTE) { + return new ISTORE(index); + } else if (type == Type.CHAR) { + return new ISTORE(index); + } else if (type == Type.FLOAT) { + return new FSTORE(index); + } else if (type == Type.DOUBLE) { + return new DSTORE(index); + } else { + return new ASTORE(index); + } + } + + /** + * Track the number of outlineable chunks seen. + */ + private int m_totalChunks = 0; + + /** + * Track the number of outlineable chunks started but not yet ended. Used + * to detect imbalances in byte code generation. + */ + private int m_openChunks = 0; + + /** + * Mark the end of the method's + * {@link InstructionList} as the start of an outlineable chunk of code. + * The outlineable chunk begins after the {@link InstructionHandle} that is + * at the end of the method's {@link InstructionList}, or at the start of + * the method if the InstructionList is empty. + * See {@link OutlineableChunkStart} for more information. + */ + public void markChunkStart() { + // m_chunkTree.markChunkStart(); + getInstructionList() + .append(OutlineableChunkStart.OUTLINEABLECHUNKSTART); + m_totalChunks++; + m_openChunks++; + } + + /** + * Mark the end of an outlineable chunk of code. See + * {@link OutlineableChunkStart} for more information. + */ + public void markChunkEnd() { + // m_chunkTree.markChunkEnd(); + getInstructionList() + .append(OutlineableChunkEnd.OUTLINEABLECHUNKEND); + m_openChunks--; + if (m_openChunks < 0) { + String msg = (new ErrorMsg(ErrorMsg.OUTLINE_ERR_UNBALANCED_MARKERS)) + .toString(); + throw new InternalError(msg); + } + } + + /** + *

    Get all {@link Method}s generated by this {@link MethodGenerator}. + * The {@link MethodGen#getMethod()} only returns a single + * Method object. This method takes into account the Java + * Virtual Machine Specification limit of 64KB on the size of a method, and + * may return more than one Method.

    + *

    If the code associated with the MethodGenerator would + * exceed the 64KB limit, this method will attempt to split the code in + * the {@link InstructionList} associated with this + * MethodGenerator into several methods.

    + * @param classGen the {@link ClassGenerator} of which these methods are + * members + * @return an array of all the Methods generated + */ + Method[] getGeneratedMethods(ClassGenerator classGen) { + Method[] generatedMethods; + InstructionList il = getInstructionList(); + InstructionHandle last = il.getEnd(); + + il.setPositions(); + + int instructionListSize = + last.getPosition() + last.getInstruction().getLength(); + + // Need to look for any branch target offsets that exceed the range + // [-32768,32767] + if (instructionListSize > MAX_BRANCH_TARGET_OFFSET) { + boolean ilChanged = widenConditionalBranchTargetOffsets(); + + // If any branch instructions needed widening, recompute the size + // of the byte code for the method + if (ilChanged) { + il.setPositions(); + last = il.getEnd(); + instructionListSize = + last.getPosition() + last.getInstruction().getLength(); + } + } + + if (instructionListSize > MAX_METHOD_SIZE) { + generatedMethods = outlineChunks(classGen, instructionListSize); + } else { + generatedMethods = new Method[] {getThisMethod()}; + } + return generatedMethods; + } + + protected Method getThisMethod() { + stripAttributes(true); + setMaxLocals(); + setMaxStack(); + removeNOPs(); + + return getMethod(); + } + /** + *

    Rewrites branches to avoid the JVM limits of relative branch + * offsets. There is no need to invoke this method if the bytecode for the + * {@link MethodGenerator} does not exceed 32KB.

    + *

    The Java Virtual Machine Specification permits the code portion of a + * method to be up to 64KB in length. However, some control transfer + * instructions specify relative offsets as a signed 16-bit quantity, + * limiting the range to a subset of the instructions that might be in a + * method.

    + *

    The TABLESWITCH and LOOKUPSWITCH + * instructions always use 32-bit signed relative offsets, so they are + * immune to this problem.

    + *

    The GOTO and JSR + * instructions come in two forms, one of which uses 16-bit relative + * offsets, and the other of which uses 32-bit relative offsets. The BCEL + * library decides whether to use the wide form of GOTO or + * JSRinstructions based on the relative offset of the target + * of the instruction without any intervention by the user of the + * library.

    + *

    This leaves the various conditional branch instructions, + * IFEQ, IFNULL, IF_ICMPEQ, + * et al., all of which use 16-bit signed relative offsets, with no + * 32-bit wide form available.

    + *

    This method scans the {@link InstructionList} associated with this + * {@link MethodGenerator} and finds all conditional branch instructions + * that might exceed the 16-bit limitation for relative branch offsets. + * The logic of each such instruction is inverted, and made to target the + * instruction which follows it. An unconditional branch to the original + * target of the instruction is then inserted between the conditional + * branch and the instruction which previously followed it. The + * unconditional branch is permitted to have a 16-bit or a 32-bit relative + * offset, as described above. For example, + * + * 1234: NOP + * ... + * 55278: IFEQ -54044 + * 55280: NOP + * + * is rewritten as + * + * 1234: NOP + * ... + * 55278: IFNE 7 + * 55280: GOTO_W -54046 + * 55285: NOP + *

    + *

    Preconditions: + *

    • The {@link InstructionList#setPositions()} has been called for + * the InstructionList associated with this + * MethodGenerator. + *

    + *

    Postconditions: + *

    • Any further changes to the InstructionList for this + * MethodGenerator will invalidate the changes made by this + * method.
    + *

    + * @return true if the InstructionList was + * modified; false otherwise + * @see The Java Virtual Machine Specification, Second Edition + */ + boolean widenConditionalBranchTargetOffsets() { + boolean ilChanged = false; + int maxOffsetChange = 0; + InstructionList il = getInstructionList(); + + // Loop through all the instructions, finding those that would be + // affected by inserting new instructions in the InstructionList, and + // calculating the maximum amount by which the relative offset between + // two instructions could possibly change. + // In part this loop duplicates code in + // org.apache.bcel.generic.InstructionList.setPosition(), which does + // this to determine whether to use 16-bit or 32-bit offsets for GOTO + // and JSR instructions. Ideally, that method would do the same for + // conditional branch instructions, but it doesn't, so we duplicate the + // processing here. + for (InstructionHandle ih = il.getStart(); + ih != null; + ih = ih.getNext()) { + Instruction inst = ih.getInstruction(); + + switch (inst.getOpcode()) { + // Instructions that may have 16-bit or 32-bit branch targets. + // The size of the branch offset might increase by two bytes. + case Constants.GOTO: + case Constants.JSR: + maxOffsetChange = maxOffsetChange + 2; + break; + // Instructions that contain padding for alignment purposes + // Up to three bytes of padding might be needed. For greater + // accuracy, we should be able to discount any padding already + // added to these instructions by InstructionList.setPosition(), + // their APIs do not expose that information. + case Constants.TABLESWITCH: + case Constants.LOOKUPSWITCH: + maxOffsetChange = maxOffsetChange + 3; + break; + // Instructions that might be rewritten by this method as a + // conditional branch followed by an unconditional branch. + // The unconditional branch would require five bytes. + case Constants.IF_ACMPEQ: + case Constants.IF_ACMPNE: + case Constants.IF_ICMPEQ: + case Constants.IF_ICMPGE: + case Constants.IF_ICMPGT: + case Constants.IF_ICMPLE: + case Constants.IF_ICMPLT: + case Constants.IF_ICMPNE: + case Constants.IFEQ: + case Constants.IFGE: + case Constants.IFGT: + case Constants.IFLE: + case Constants.IFLT: + case Constants.IFNE: + case Constants.IFNONNULL: + case Constants.IFNULL: + maxOffsetChange = maxOffsetChange + 5; + break; + } + } + + // Now that the maximum number of bytes by which the method might grow + // has been determined, look for conditional branches to see which + // might possibly exceed the 16-bit relative offset. + for (InstructionHandle ih = il.getStart(); + ih != null; + ih = ih.getNext()) { + Instruction inst = ih.getInstruction(); + + if (inst instanceof IfInstruction) { + IfInstruction oldIfInst = (IfInstruction)inst; + BranchHandle oldIfHandle = (BranchHandle)ih; + InstructionHandle target = oldIfInst.getTarget(); + int relativeTargetOffset = target.getPosition() + - oldIfHandle.getPosition(); + + // Consider the worst case scenario in which the conditional + // branch and its target are separated by all the instructions + // in the method that might increase in size. If that results + // in a relative offset that cannot be represented as a 32-bit + // signed quantity, rewrite the instruction as described above. + if ((relativeTargetOffset - maxOffsetChange + < MIN_BRANCH_TARGET_OFFSET) + || (relativeTargetOffset + maxOffsetChange + > MAX_BRANCH_TARGET_OFFSET)) { + // Invert the logic of the IF instruction, and append + // that to the InstructionList following the original IF + // instruction + InstructionHandle nextHandle = oldIfHandle.getNext(); + IfInstruction invertedIfInst = oldIfInst.negate(); + BranchHandle invertedIfHandle = il.append(oldIfHandle, + invertedIfInst); + + // Append an unconditional branch to the target of the + // original IF instruction after the new IF instruction + BranchHandle gotoHandle = il.append(invertedIfHandle, + new GOTO(target)); + + // If the original IF was the last instruction in + // InstructionList, add a new no-op to act as the target + // of the new IF + if (nextHandle == null) { + nextHandle = il.append(gotoHandle, NOP); + } + + // Make the new IF instruction branch around the GOTO + invertedIfHandle.updateTarget(target, nextHandle); + + // If anything still "points" to the old IF instruction, + // make adjustments to refer to either the new IF or GOTO + // instruction + if (oldIfHandle.hasTargeters()) { + InstructionTargeter[] targeters = + oldIfHandle.getTargeters(); + + for (int i = 0; i < targeters.length; i++) { + InstructionTargeter targeter = targeters[i]; + // Ideally, one should simply be able to use + // InstructionTargeter.updateTarget to change + // references to the old IF instruction to the new + // IF instruction. However, if a LocalVariableGen + // indicated the old IF marked the end of the range + // in which the IF variable is in use, the live + // range of the variable must extend to include the + // newly created GOTO instruction. The need for + // this sort of specific knowledge of an + // implementor of the InstructionTargeter interface + // makes the code more fragile. Future implementors + // of the interface might have similar requirements + // which wouldn't be accommodated seemlessly. + if (targeter instanceof LocalVariableGen) { + LocalVariableGen lvg = + (LocalVariableGen) targeter; + if (lvg.getStart() == oldIfHandle) { + lvg.setStart(invertedIfHandle); + } else if (lvg.getEnd() == oldIfHandle) { + lvg.setEnd(gotoHandle); + } + } else { + targeter.updateTarget(oldIfHandle, + invertedIfHandle); + } + } + } + + try { + il.delete(oldIfHandle); + } catch (TargetLostException tle) { + // This can never happen - we updated the list of + // instructions that target the deleted instruction + // prior to deleting it. + String msg = + new ErrorMsg(ErrorMsg.OUTLINE_ERR_DELETED_TARGET, + tle.getMessage()).toString(); + throw new InternalError(msg); + } + + // Adjust the pointer in the InstructionList to point after + // the newly inserted IF instruction + ih = gotoHandle; + + // Indicate that this method rewrote at least one IF + ilChanged = true; + } + } + } + + // Did this method rewrite any IF instructions? + return ilChanged; + } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java deleted file mode 100644 index ae90bf0115c..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 11:45:06 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler.util; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:40:59 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -4417969773510154215L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java index e093bd163d5..206b59efe62 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ObjectType.java @@ -34,6 +34,7 @@ import com.sun.org.apache.bcel.internal.generic.Instruction; import com.sun.org.apache.bcel.internal.generic.InstructionList; import com.sun.org.apache.bcel.internal.generic.PUSH; import com.sun.org.apache.xalan.internal.xsltc.compiler.Constants; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * @author Todd Miller @@ -53,8 +54,7 @@ public final class ObjectType extends Type { _javaClassName = javaClassName; try { - _clazz = ObjectFactory.findProviderClass( - javaClassName, ObjectFactory.findClassLoader(), true); + _clazz = ObjectFactory.findProviderClass(javaClassName, true); } catch (ClassNotFoundException e) { _clazz = null; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkEnd.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkEnd.java new file mode 100644 index 00000000000..b2daff35cf0 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkEnd.java @@ -0,0 +1,70 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: OutlineableChunkEnd.java,v 1.10 2010-11-01 04:34:19 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.compiler.util; +import com.sun.org.apache.bcel.internal.generic.Instruction; +/** + *

    Marks the end of a region of byte code that can be copied into a new + * method. See the {@link OutlineableChunkStart} pseudo-instruction for + * details.

    + */ +class OutlineableChunkEnd extends MarkerInstruction { + /** + * A constant instance of {@link OutlineableChunkEnd}. As it has no fields, + * there should be no need to create an instance of this class. + */ + public static final Instruction OUTLINEABLECHUNKEND = + new OutlineableChunkEnd(); + + /** + * Private default constructor. As it has no fields, + * there should be no need to create an instance of this class. See + * {@link OutlineableChunkEnd#OUTLINEABLECHUNKEND}. + */ + private OutlineableChunkEnd() { + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String getName() { + return OutlineableChunkEnd.class.getName(); + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String toString() { + return getName(); + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String toString(boolean verbose) { + return getName(); + } +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkStart.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkStart.java new file mode 100644 index 00000000000..9b54cac0f22 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/OutlineableChunkStart.java @@ -0,0 +1,80 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: MethodGenerator.java,v 1.10 2010-11-01 04:34:19 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.compiler.util; +import com.sun.org.apache.bcel.internal.generic.Instruction; + +/** + *

    This pseudo-instruction marks the beginning of a region of byte code that + * can be copied into a new method, termed an "outlineable" chunk. The size of + * the Java stack must be the same at the start of the region as it is at the + * end of the region, any value on the stack at the start of the region must not + * be consumed by an instruction in the region of code, the region must not + * contain a return instruction, no branch instruction in the region is + * permitted to have a target that is outside the region, and no branch + * instruction outside the region is permitted to have a target that is inside + * the region.

    + *

    The end of the region is marked by an {@link OutlineableChunkEnd} + * pseudo-instruction.

    + *

    Such a region of code may contain other outlineable regions.

    + */ +class OutlineableChunkStart extends MarkerInstruction { + /** + * A constant instance of {@link OutlineableChunkStart}. As it has no fields, + * there should be no need to create an instance of this class. + */ + public static final Instruction OUTLINEABLECHUNKSTART = + new OutlineableChunkStart(); + + /** + * Private default constructor. As it has no fields, + * there should be no need to create an instance of this class. See + * {@link OutlineableChunkStart#OUTLINEABLECHUNKSTART}. + */ + private OutlineableChunkStart() { + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String getName() { + return OutlineableChunkStart.class.getName(); + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String toString() { + return getName(); + } + + /** + * Get the name of this instruction. Used for debugging. + * @return the instruction name + */ + public String toString(boolean verbose) { + return getName(); + } +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java index 2d1e74504de..f70a210c0ab 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/RealType.java @@ -170,8 +170,8 @@ public final class RealType extends NumberType { il.append(DUP2); local = methodGen.addLocalVariable("real_to_boolean_tmp", com.sun.org.apache.bcel.internal.generic.Type.DOUBLE, - il.getEnd(), null); - il.append(new DSTORE(local.getIndex())); + null, null); + local.setStart(il.append(new DSTORE(local.getIndex()))); // Compare it to 0.0 il.append(DCONST_0); @@ -181,7 +181,7 @@ public final class RealType extends NumberType { //!!! call isNaN // Compare it to itself to see if NaN il.append(new DLOAD(local.getIndex())); - il.append(new DLOAD(local.getIndex())); + local.setEnd(il.append(new DLOAD(local.getIndex()))); il.append(DCMPG); flowlist.add(il.append(new IFNE(null))); // NaN != NaN return flowlist; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java index c6d8dd0e3dd..e61f7cbc87a 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ResultTreeType.java @@ -180,7 +180,7 @@ public final class ResultTreeType extends Type { methodGen.addLocalVariable("rt_to_string_handler", Util.getJCRefType(STRING_VALUE_HANDLER_SIG), null, null); - il.append(new ASTORE(handler.getIndex())); + handler.setStart(il.append(new ASTORE(handler.getIndex()))); // Call the method that implements this result tree index = cpg.addMethodref(className, _methodName, @@ -188,7 +188,7 @@ public final class ResultTreeType extends Type { il.append(new INVOKEVIRTUAL(index)); // Restore new handler and call getValue() - il.append(new ALOAD(handler.getIndex())); + handler.setEnd(il.append(new ALOAD(handler.getIndex()))); index = cpg.addMethodref(STRING_VALUE_HANDLER, "getValue", "()" + STRING_SIG); @@ -255,7 +255,7 @@ public final class ResultTreeType extends Type { Util.getJCRefType(DOM_INTF_SIG), null, null); il.append(new CHECKCAST(cpg.addClass(DOM_INTF_SIG))); - il.append(new ASTORE(newDom.getIndex())); + newDom.setStart(il.append(new ASTORE(newDom.getIndex()))); // Overwrite old handler with DOM handler index = cpg.addInterfaceMethodref(DOM_INTF, @@ -275,7 +275,7 @@ public final class ResultTreeType extends Type { methodGen.addLocalVariable("rt_to_reference_handler", Util.getJCRefType(TRANSLET_OUTPUT_SIG), null, null); - il.append(new ASTORE(domBuilder.getIndex())); + domBuilder.setStart(il.append(new ASTORE(domBuilder.getIndex()))); // Call startDocument on the new handler index = cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, @@ -292,13 +292,13 @@ public final class ResultTreeType extends Type { il.append(new INVOKEVIRTUAL(index)); // Call endDocument on the DOM handler - il.append(new ALOAD(domBuilder.getIndex())); + domBuilder.setEnd(il.append(new ALOAD(domBuilder.getIndex()))); index = cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE, "endDocument", "()V"); il.append(new INVOKEINTERFACE(index, 1)); // Push the new DOM on the stack - il.append(new ALOAD(newDom.getIndex())); + newDom.setEnd(il.append(new ALOAD(newDom.getIndex()))); } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java deleted file mode 100644 index 25dc37bae4f..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/05 11:31:37 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler.util; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java deleted file mode 100644 index 1d77602909c..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/05 11:32:07 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.compiler.util; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ArrayNodeListIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ArrayNodeListIterator.java new file mode 100644 index 00000000000..d7cf3a54fd0 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ArrayNodeListIterator.java @@ -0,0 +1,91 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: ArrayNodeListIterator.java,v 1.0 2009-11-25 04:34:24 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.dom; + +import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; + +public class ArrayNodeListIterator implements DTMAxisIterator { + + private int _pos = 0; + + private int _mark = 0; + + private int _nodes[]; + + private static final int[] EMPTY = { }; + + public ArrayNodeListIterator(int[] nodes) { + _nodes = nodes; + } + + public int next() { + return _pos < _nodes.length ? _nodes[_pos++] : END; + } + + public DTMAxisIterator reset() { + _pos = 0; + return this; + } + + public int getLast() { + return _nodes.length; + } + + public int getPosition() { + return _pos; + } + + public void setMark() { + _mark = _pos; + } + + public void gotoMark() { + _pos = _mark; + } + + public DTMAxisIterator setStartNode(int node) { + if (node == END) _nodes = EMPTY; + return this; + } + + public int getStartNode() { + return END; + } + + public boolean isReverse() { + return false; + } + + public DTMAxisIterator cloneIterator() { + return new ArrayNodeListIterator(_nodes); + } + + public void setRestartable(boolean isRestartable) { + } + + public int getNodeByPosition(int position) { + return _nodes[position - 1]; + } + +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java index c76f11d61e7..8ba00f4c6bf 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/DupFilterIterator.java @@ -88,7 +88,9 @@ public final class DupFilterIterator extends DTMAxisIteratorBase { if (_isRestartable) { // KeyIndex iterators are always relative to the root node, so there // is never any point in re-reading the iterator (and we SHOULD NOT). - if (_source instanceof KeyIndex + boolean sourceIsKeyIndex = _source instanceof KeyIndex; + + if (sourceIsKeyIndex && _startNode == DTMDefaultBase.ROOTNODE) { return this; } @@ -100,7 +102,12 @@ public final class DupFilterIterator extends DTMAxisIteratorBase { while ((node = _source.next()) != END) { _nodes.add(node); } - _nodes.sort(); + + // Nodes produced by KeyIndex are known to be in document order. + // Take advantage of it. + if (!sourceIsKeyIndex) { + _nodes.sort(); + } _nodesSize = _nodes.cardinality(); _current = 0; _lastNext = END; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java index 8f3684a7ae8..7057a32ffe2 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java @@ -32,6 +32,7 @@ import com.sun.org.apache.xalan.internal.xsltc.DOM; import com.sun.org.apache.xalan.internal.xsltc.TransletException; import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; import com.sun.org.apache.xml.internal.utils.StringComparable; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * Base class for sort records containing application specific sort keys @@ -119,8 +120,7 @@ public abstract class NodeSortRecord { if (colFactClassname != null) { try { - Object candObj = ObjectFactory.findProviderClass( - colFactClassname, ObjectFactory.findClassLoader(), true); + Object candObj = ObjectFactory.findProviderClass(colFactClassname, true); _collatorFactory = (CollatorFactory)candObj; } catch (ClassNotFoundException e) { throw new TransletException(e); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java index 009abcb7edf..1cc464c4937 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecordFactory.java @@ -28,6 +28,7 @@ import com.sun.org.apache.xalan.internal.xsltc.Translet; import com.sun.org.apache.xalan.internal.xsltc.TransletException; import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; import com.sun.org.apache.xml.internal.utils.LocaleUtility; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import java.util.Locale; import java.text.Collator; @@ -82,8 +83,7 @@ public class NodeSortRecordFactory { _class = translet.getAuxiliaryClass(className); // This code is only run when the native API is used if (_class == null) { - _class = ObjectFactory.findProviderClass( - className, ObjectFactory.findClassLoader(), true); + _class = ObjectFactory.findProviderClass(className, true); } int levels = order.length; diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java deleted file mode 100644 index d38f3c21718..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 11:53:33 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.dom; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:41:00 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -5948733402959678002L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java deleted file mode 100644 index 68ab40e5044..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/06 10:03:40 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.dom; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java deleted file mode 100644 index 34006210fa9..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/06 10:06:07 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.dom; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java index b416ca714cd..43eb1024c3e 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/XSLTCDTMManager.java @@ -42,6 +42,7 @@ import com.sun.org.apache.xml.internal.utils.SystemIDResolver; import com.sun.org.apache.xalan.internal.xsltc.trax.DOM2SAX; import com.sun.org.apache.xalan.internal.xsltc.trax.StAXEvent2SAX; import com.sun.org.apache.xalan.internal.xsltc.trax.StAXStream2SAX; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXNotRecognizedException; @@ -102,9 +103,22 @@ public class XSLTCDTMManager extends DTMManagerDefault * The default is com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager. */ public static Class getDTMManagerClass() { - Class mgrClass = ObjectFactory.lookUpFactoryClass(DEFAULT_PROP_NAME, + return getDTMManagerClass(true); + } + + public static Class getDTMManagerClass(boolean useServicesMechanism) { + Class mgrClass = null; + if (useServicesMechanism) { + mgrClass = ObjectFactory.lookUpFactoryClass(DEFAULT_PROP_NAME, null, DEFAULT_CLASS_NAME); + } else { + try { + mgrClass = ObjectFactory.findProviderClass(DEFAULT_CLASS_NAME, true); + } catch (Exception e) { + //will not happen + } + } // If no class found, default to this one. (This should never happen - // the ObjectFactory has already been told that the current class is // the default). diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java index c902255336e..71e1e4abf7a 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java @@ -23,6 +23,7 @@ package com.sun.org.apache.xalan.internal.xsltc.runtime; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import java.io.File; import java.io.FileOutputStream; import java.io.BufferedOutputStream; @@ -66,6 +67,8 @@ public abstract class AbstractTranslet implements Translet { public String _encoding = "UTF-8"; public boolean _omitHeader = false; public String _standalone = null; + //see OutputPropertiesFactory.ORACLE_IS_STANDALONE + public boolean _isStandalone = false; public String _doctypePublic = null; public String _doctypeSystem = null; public boolean _indent = false; @@ -105,6 +108,7 @@ public abstract class AbstractTranslet implements Translet { // This is the name of the index used for ID attributes private final static String ID_INDEX_NAME = "##id"; + private boolean _useServicesMechanism; /************************************************************************ * Debugging @@ -669,6 +673,7 @@ public abstract class AbstractTranslet implements Translet { if (_doctypeSystem != null) { handler.setDoctype(_doctypeSystem, _doctypePublic); } + handler.setIsStandalone(_isStandalone); } else if (_method.equals("html")) { handler.setIndent(_indent); @@ -691,6 +696,7 @@ public abstract class AbstractTranslet implements Translet { } handler.setIndent(_indent); handler.setDoctype(_doctypeSystem, _doctypePublic); + handler.setIsStandalone(_isStandalone); } } @@ -738,6 +744,19 @@ public abstract class AbstractTranslet implements Translet { public void setTemplates(Templates templates) { _templates = templates; } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + _useServicesMechanism = flag; + } /************************************************************************ * DOMImplementation caching for basis library @@ -748,8 +767,8 @@ public abstract class AbstractTranslet implements Translet { throws ParserConfigurationException { if (_domImplementation == null) { - _domImplementation = DocumentBuilderFactory.newInstance() - .newDocumentBuilder().getDOMImplementation(); + DocumentBuilderFactory dbf = FactoryImpl.getDOMFactory(_useServicesMechanism); + _domImplementation = dbf.newDocumentBuilder().getDOMImplementation(); } return _domImplementation.createDocument(uri, qname, null); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java index b8e766dced0..fc388d92ea9 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java @@ -40,12 +40,17 @@ import com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter; import com.sun.org.apache.xalan.internal.xsltc.dom.MultiDOM; import com.sun.org.apache.xalan.internal.xsltc.dom.SingletonIterator; import com.sun.org.apache.xalan.internal.xsltc.dom.StepIterator; +import com.sun.org.apache.xalan.internal.xsltc.dom.ArrayNodeListIterator; +import com.sun.org.apache.xml.internal.dtm.DTM; import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; import com.sun.org.apache.xml.internal.dtm.DTMManager; import com.sun.org.apache.xml.internal.dtm.ref.DTMDefaultBase; +import com.sun.org.apache.xml.internal.dtm.ref.DTMNodeProxy; import org.w3c.dom.DOMException; +import org.w3c.dom.Attr; import org.w3c.dom.Document; +import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import com.sun.org.apache.xml.internal.serializer.NamespaceMappings; @@ -153,7 +158,7 @@ public final class BasisLibrary { return dom.getStringValueX(((Node)obj).node); } else if (obj instanceof DOM) { - // When the first argument is a DOM we want the whole fecking + // When the first argument is a DOM we want the whole // DOM and not just a single node - that would not make sense. //return ((DOM)obj).getStringValueX(node); return ((DOM)obj).getStringValue(); @@ -1003,7 +1008,7 @@ public final class BasisLibrary { } // Convert var/param -> node-set else if (obj instanceof DTMAxisIterator) { - return(((DTMAxisIterator)obj).cloneIterator()); + return(((DTMAxisIterator)obj).cloneIterator().reset()); } else { final String className = obj.getClass().getName(); @@ -1143,90 +1148,42 @@ public final class BasisLibrary { } /** - * Utility function used to copy a node list to be under a parent node. + * In a perfect world, this would be the implementation for + * nodeList2Iterator. In reality, though, this causes a + * ClassCastException in getDTMHandleFromNode because SAXImpl is + * not an instance of DOM2DTM. So we use the more lengthy + * implementation below until this issue has been addressed. + * + * @see org.apache.xml.dtm.ref.DTMManagerDefault#getDTMHandleFromNode */ - private static void copyNodes(org.w3c.dom.NodeList nodeList, - org.w3c.dom.Document doc, org.w3c.dom.Node parent) + private static DTMAxisIterator nodeList2IteratorUsingHandleFromNode( + org.w3c.dom.NodeList nodeList, + Translet translet, DOM dom) { - final int size = nodeList.getLength(); - - // copy Nodes from NodeList into new w3c DOM - for (int i = 0; i < size; i++) - { - org.w3c.dom.Node curr = nodeList.item(i); - int nodeType = curr.getNodeType(); - String value = null; - try { - value = curr.getNodeValue(); - } catch (DOMException ex) { - runTimeError(RUN_TIME_INTERNAL_ERR, ex.getMessage()); - return; + final int n = nodeList.getLength(); + final int[] dtmHandles = new int[n]; + DTMManager dtmManager = null; + if (dom instanceof MultiDOM) + dtmManager = ((MultiDOM) dom).getDTMManager(); + for (int i = 0; i < n; ++i) { + org.w3c.dom.Node node = nodeList.item(i); + int handle; + if (dtmManager != null) { + handle = dtmManager.getDTMHandleFromNode(node); } - - String nodeName = curr.getNodeName(); - org.w3c.dom.Node newNode = null; - switch (nodeType){ - case org.w3c.dom.Node.ATTRIBUTE_NODE: - newNode = doc.createAttributeNS(curr.getNamespaceURI(), - nodeName); - break; - case org.w3c.dom.Node.CDATA_SECTION_NODE: - newNode = doc.createCDATASection(value); - break; - case org.w3c.dom.Node.COMMENT_NODE: - newNode = doc.createComment(value); - break; - case org.w3c.dom.Node.DOCUMENT_FRAGMENT_NODE: - newNode = doc.createDocumentFragment(); - break; - case org.w3c.dom.Node.DOCUMENT_NODE: - newNode = doc.createElementNS(null, "__document__"); - copyNodes(curr.getChildNodes(), doc, newNode); - break; - case org.w3c.dom.Node.DOCUMENT_TYPE_NODE: - // nothing? - break; - case org.w3c.dom.Node.ELEMENT_NODE: - // For Element node, also copy the children and the - // attributes. - org.w3c.dom.Element element = doc.createElementNS( - curr.getNamespaceURI(), nodeName); - if (curr.hasAttributes()) - { - org.w3c.dom.NamedNodeMap attributes = curr.getAttributes(); - for (int k = 0; k < attributes.getLength(); k++) { - org.w3c.dom.Node attr = attributes.item(k); - element.setAttributeNS(attr.getNamespaceURI(), - attr.getNodeName(), attr.getNodeValue()); - } - } - copyNodes(curr.getChildNodes(), doc, element); - newNode = element; - break; - case org.w3c.dom.Node.ENTITY_NODE: - // nothing ? - break; - case org.w3c.dom.Node.ENTITY_REFERENCE_NODE: - newNode = doc.createEntityReference(nodeName); - break; - case org.w3c.dom.Node.NOTATION_NODE: - // nothing ? - break; - case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE: - newNode = doc.createProcessingInstruction(nodeName, - value); - break; - case org.w3c.dom.Node.TEXT_NODE: - newNode = doc.createTextNode(value); - break; + else if (node instanceof DTMNodeProxy + && ((DTMNodeProxy) node).getDTM() == dom) { + handle = ((DTMNodeProxy) node).getDTMNodeNumber(); } - try { - parent.appendChild(newNode); - } catch (DOMException e) { - runTimeError(RUN_TIME_INTERNAL_ERR, e.getMessage()); - return; + else { + runTimeError(RUN_TIME_INTERNAL_ERR, "need MultiDOM"); + return null; } + dtmHandles[i] = handle; + System.out.println("Node " + i + " has handle 0x" + + Integer.toString(handle, 16)); } + return new ArrayNodeListIterator(dtmHandles); } /** @@ -1237,26 +1194,93 @@ public final class BasisLibrary { org.w3c.dom.NodeList nodeList, Translet translet, DOM dom) { - // w3c NodeList -> w3c DOM + // First pass: build w3c DOM for all nodes not proxied from our DOM. + // + // Notice: this looses some (esp. parent) context for these nodes, + // so some way to wrap the original nodes inside a DTMAxisIterator + // might be preferable in the long run. + int n = 0; // allow for change in list length, just in case. Document doc = null; - try { - doc = ((AbstractTranslet) translet).newDocument("", "__top__"); + DTMManager dtmManager = null; + int[] proxyNodes = new int[nodeList.getLength()]; + if (dom instanceof MultiDOM) + dtmManager = ((MultiDOM) dom).getDTMManager(); + for (int i = 0; i < nodeList.getLength(); ++i) { + org.w3c.dom.Node node = nodeList.item(i); + if (node instanceof DTMNodeProxy) { + DTMNodeProxy proxy = (DTMNodeProxy)node; + DTM nodeDTM = proxy.getDTM(); + int handle = proxy.getDTMNodeNumber(); + boolean isOurDOM = (nodeDTM == dom); + if (!isOurDOM && dtmManager != null) { + try { + isOurDOM = (nodeDTM == dtmManager.getDTM(handle)); + } + catch (ArrayIndexOutOfBoundsException e) { + // invalid node handle, so definitely not our doc + } + } + if (isOurDOM) { + proxyNodes[i] = handle; + ++n; + continue; + } + } + proxyNodes[i] = DTM.NULL; + int nodeType = node.getNodeType(); + if (doc == null) { + if (dom instanceof MultiDOM == false) { + runTimeError(RUN_TIME_INTERNAL_ERR, "need MultiDOM"); + return null; + } + try { + AbstractTranslet at = (AbstractTranslet) translet; + doc = at.newDocument("", "__top__"); + } + catch (javax.xml.parsers.ParserConfigurationException e) { + runTimeError(RUN_TIME_INTERNAL_ERR, e.getMessage()); + return null; + } + } + // Use one dummy element as container for each node of the + // list. That way, it is easier to detect resp. avoid + // funny things which change the number of nodes, + // e.g. auto-concatenation of text nodes. + Element mid; + switch (nodeType) { + case org.w3c.dom.Node.ELEMENT_NODE: + case org.w3c.dom.Node.TEXT_NODE: + case org.w3c.dom.Node.CDATA_SECTION_NODE: + case org.w3c.dom.Node.COMMENT_NODE: + case org.w3c.dom.Node.ENTITY_REFERENCE_NODE: + case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE: + mid = doc.createElementNS(null, "__dummy__"); + mid.appendChild(doc.importNode(node, true)); + doc.getDocumentElement().appendChild(mid); + ++n; + break; + case org.w3c.dom.Node.ATTRIBUTE_NODE: + // The mid element also serves as a container for + // attributes, avoiding problems with conflicting + // attributes or node order. + mid = doc.createElementNS(null, "__dummy__"); + mid.setAttributeNodeNS((Attr)doc.importNode(node, true)); + doc.getDocumentElement().appendChild(mid); + ++n; + break; + default: + // Better play it safe for all types we aren't sure we know + // how to deal with. + runTimeError(RUN_TIME_INTERNAL_ERR, + "Don't know how to convert node type " + + nodeType); + } } - catch (javax.xml.parsers.ParserConfigurationException e) { - runTimeError(RUN_TIME_INTERNAL_ERR, e.getMessage()); - return null; - } - - // Copy all the nodes in the nodelist to be under the top element - copyNodes(nodeList, doc, doc.getDocumentElement()); // w3cDOM -> DTM -> DOMImpl - if (dom instanceof MultiDOM) { + DTMAxisIterator iter = null, childIter = null, attrIter = null; + if (doc != null) { final MultiDOM multiDOM = (MultiDOM) dom; - - DTMDefaultBase dtm = (DTMDefaultBase)((DOMAdapter)multiDOM.getMain()).getDOMImpl(); - DTMManager dtmManager = dtm.getManager(); - DOM idom = (DOM)dtmManager.getDTM(new DOMSource(doc), false, null, true, false); // Create DOMAdapter and register with MultiDOM @@ -1269,16 +1293,57 @@ public final class BasisLibrary { DTMAxisIterator iter1 = idom.getAxisIterator(Axis.CHILD); DTMAxisIterator iter2 = idom.getAxisIterator(Axis.CHILD); - DTMAxisIterator iter = new AbsoluteIterator( + iter = new AbsoluteIterator( new StepIterator(iter1, iter2)); iter.setStartNode(DTMDefaultBase.ROOTNODE); - return iter; + + childIter = idom.getAxisIterator(Axis.CHILD); + attrIter = idom.getAxisIterator(Axis.ATTRIBUTE); } - else { - runTimeError(RUN_TIME_INTERNAL_ERR, "nodeList2Iterator()"); - return null; + + // Second pass: find DTM handles for every node in the list. + int[] dtmHandles = new int[n]; + n = 0; + for (int i = 0; i < nodeList.getLength(); ++i) { + if (proxyNodes[i] != DTM.NULL) { + dtmHandles[n++] = proxyNodes[i]; + continue; + } + org.w3c.dom.Node node = nodeList.item(i); + DTMAxisIterator iter3 = null; + int nodeType = node.getNodeType(); + switch (nodeType) { + case org.w3c.dom.Node.ELEMENT_NODE: + case org.w3c.dom.Node.TEXT_NODE: + case org.w3c.dom.Node.CDATA_SECTION_NODE: + case org.w3c.dom.Node.COMMENT_NODE: + case org.w3c.dom.Node.ENTITY_REFERENCE_NODE: + case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE: + iter3 = childIter; + break; + case org.w3c.dom.Node.ATTRIBUTE_NODE: + iter3 = attrIter; + break; + default: + // Should not happen, as first run should have got all these + throw new InternalRuntimeError("Mismatched cases"); + } + if (iter3 != null) { + iter3.setStartNode(iter.next()); + dtmHandles[n] = iter3.next(); + // For now, play it self and perform extra checks: + if (dtmHandles[n] == DTMAxisIterator.END) + throw new InternalRuntimeError("Expected element missing at " + i); + if (iter3.next() != DTMAxisIterator.END) + throw new InternalRuntimeError("Too many elements at " + i); + ++n; + } } + if (n != dtmHandles.length) + throw new InternalRuntimeError("Nodes lost in second pass"); + + return new ArrayNodeListIterator(dtmHandles); } /** diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java index 12c9b5127ae..e222e476adb 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/Hashtable.java @@ -294,7 +294,7 @@ public class Hashtable { for (i = 0; i <= max; i++) { String s1 = k.nextElement().toString(); String s2 = e.nextElement().toString(); - buf.append(s1 + "=" + s2); + buf.append(s1).append('=').append(s2); if (i < max) buf.append(", "); } buf.append("}"); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/InternalRuntimeError.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/InternalRuntimeError.java new file mode 100644 index 00000000000..1f11788021e --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/InternalRuntimeError.java @@ -0,0 +1,36 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $Id: InternalRuntimeError.java,v 1.0 2009-11-25 04:34:28 joehw Exp $ + */ +package com.sun.org.apache.xalan.internal.xsltc.runtime; + +/** + * Class to express failed assertions and similar for the xsltc runtime. + * As java.lang.AssertionError was introduced in JDK 1.4 we can't use that yet. + */ +public class InternalRuntimeError extends Error { + + public InternalRuntimeError(String message) { + super(message); + } + +} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java deleted file mode 100644 index 9300009d562..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 12:01:33 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.runtime; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:40:59 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -2293620736651286953L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java deleted file mode 100644 index d730e55f7ec..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/06 11:28:13 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.runtime; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java deleted file mode 100644 index 380c2f85ef2..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/06 11:31:16 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.runtime; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java index 29c5a322bd8..8b76f3a68b0 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java @@ -72,10 +72,18 @@ public class TransletOutputHandlerFactory { private ContentHandler _handler = null; private LexicalHandler _lexHandler = null; + private boolean _useServicesMechanism; + static public TransletOutputHandlerFactory newInstance() { - return new TransletOutputHandlerFactory(); + return new TransletOutputHandlerFactory(true); + } + static public TransletOutputHandlerFactory newInstance(boolean useServicesMechanism) { + return new TransletOutputHandlerFactory(useServicesMechanism); } + public TransletOutputHandlerFactory(boolean useServicesMechanism) { + _useServicesMechanism = useServicesMechanism; + } public void setOutputType(int outputType) { _outputType = outputType; } @@ -188,7 +196,7 @@ public class TransletOutputHandlerFactory { return result; case DOM : - _handler = (_node != null) ? new SAX2DOM(_node, _nextSibling) : new SAX2DOM(); + _handler = (_node != null) ? new SAX2DOM(_node, _nextSibling, _useServicesMechanism) : new SAX2DOM(_useServicesMechanism); _lexHandler = (LexicalHandler) _handler; // falls through case STAX : diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java deleted file mode 100644 index 1b2c36706db..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/12 12:05:22 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.trax; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.9 2008/04/02 00:41:02 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = -1877553852268428278L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java index b4d20526abb..a26f093ee08 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java @@ -49,6 +49,7 @@ import org.xml.sax.ext.Locator2; /** * @author G. Todd Miller * @author Sunitha Reddy + * @author Huizhe Wang */ public class SAX2DOM implements ContentHandler, LexicalHandler, Constants { @@ -69,27 +70,16 @@ public class SAX2DOM implements ContentHandler, LexicalHandler, Constants { * synchronization because the Javadoc is not explicit about * thread safety. */ - static final DocumentBuilderFactory _factory = + private DocumentBuilderFactory _factory = DocumentBuilderFactory.newInstance(); - static final DocumentBuilder _internalBuilder; - static { - DocumentBuilder tmpBuilder = null; - try { - if (_factory instanceof com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl) { - tmpBuilder = _factory.newDocumentBuilder(); - } - } catch(Exception e) { - // It's OK. Will create DocumentBuilder every time - } - _internalBuilder = tmpBuilder; - } + private boolean _internal = true; - public SAX2DOM() throws ParserConfigurationException { - _document = createDocument(); + public SAX2DOM(boolean useServicesMachnism) throws ParserConfigurationException { + _document = createDocument(useServicesMachnism); _root = _document; } - public SAX2DOM(Node root, Node nextSibling) throws ParserConfigurationException { + public SAX2DOM(Node root, Node nextSibling, boolean useServicesMachnism) throws ParserConfigurationException { _root = root; if (root instanceof Document) { _document = (Document)root; @@ -98,15 +88,15 @@ public class SAX2DOM implements ContentHandler, LexicalHandler, Constants { _document = root.getOwnerDocument(); } else { - _document = createDocument(); + _document = createDocument(useServicesMachnism); _root = _document; } _nextSibling = nextSibling; } - public SAX2DOM(Node root) throws ParserConfigurationException { - this(root, null); + public SAX2DOM(Node root, boolean useServicesMachnism) throws ParserConfigurationException { + this(root, null, useServicesMachnism); } public Node getDOM() { @@ -318,11 +308,23 @@ public class SAX2DOM implements ContentHandler, LexicalHandler, Constants { public void startDTD(String name, String publicId, String systemId) throws SAXException {} - private static Document createDocument() throws ParserConfigurationException { + private Document createDocument(boolean useServicesMachnism) throws ParserConfigurationException { + if (_factory == null) { + if (useServicesMachnism) + _factory = DocumentBuilderFactory.newInstance(); + if (!(_factory instanceof com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl)) { + _internal = false; + } + else + _factory = DocumentBuilderFactory.newInstance( + "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl", + SAX2DOM.class.getClassLoader() + ); + } Document doc; - if (_internalBuilder != null) { + if (_internal) { //default implementation is thread safe - doc = _internalBuilder.newDocument(); + doc = _factory.newDocumentBuilder().newDocument(); } else { synchronized(SAX2DOM.class) { doc = _factory.newDocumentBuilder().newDocument(); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java deleted file mode 100644 index c415b869335..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/06 12:04:10 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.trax; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java deleted file mode 100644 index 5e0a48c1e6c..00000000000 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/06 12:05:26 pvedula Exp $ - */ - -package com.sun.org.apache.xalan.internal.xsltc.trax; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java index 8f030d8ce15..4637dce2035 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/SmartTransformerFactoryImpl.java @@ -43,6 +43,7 @@ import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.xml.sax.XMLFilter; /** @@ -93,7 +94,7 @@ public class SmartTransformerFactoryImpl extends SAXTransformerFactory try { Class xalanFactClass = ObjectFactory.findProviderClass( "com.sun.org.apache.xalan.internal.processor.TransformerFactoryImpl", - ObjectFactory.findClassLoader(), true); + true); _xalanFactory = (SAXTransformerFactory) xalanFactClass.newInstance(); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java index e7b0f0a2b4d..2eb161dafee 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java @@ -95,10 +95,15 @@ public class TemplatesHandlerImpl _tfactory = tfactory; // Instantiate XSLTC and get reference to parser object - XSLTC xsltc = new XSLTC(); + XSLTC xsltc = new XSLTC(tfactory.useServicesMechnism()); if (tfactory.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING)) xsltc.setSecureProcessing(true); + if ("true".equals(tfactory.getAttribute(TransformerFactoryImpl.ENABLE_INLINING))) + xsltc.setTemplateInlining(true); + else + xsltc.setTemplateInlining(false); + _parser = xsltc.getParser(); } @@ -188,7 +193,7 @@ public class TemplatesHandlerImpl XSLTC xsltc = _parser.getXSLTC(); // Set the translet class name if not already set - String transletName = null; + String transletName; if (_systemId != null) { transletName = Util.baseName(_systemId); } @@ -210,6 +215,11 @@ public class TemplatesHandlerImpl stylesheet.setSystemId(_systemId); stylesheet.setParentStylesheet(null); + if (xsltc.getTemplateInlining()) + stylesheet.setTemplateInlining(true); + else + stylesheet.setTemplateInlining(false); + // Set a document loader (for xsl:include/import) if defined if (_uriResolver != null) { stylesheet.setSourceLoader(this); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java index f31ed040d96..4ebf238565f 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java @@ -42,6 +42,7 @@ import com.sun.org.apache.xalan.internal.xsltc.Translet; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * @author Morten Jorgensen @@ -118,6 +119,8 @@ public final class TemplatesImpl implements Templates, Serializable { */ private transient TransformerFactoryImpl _tfactory = null; + private boolean _useServicesMechanism; + static final class TransletClassLoader extends ClassLoader { TransletClassLoader(ClassLoader parent) { super(parent); @@ -142,10 +145,7 @@ public final class TemplatesImpl implements Templates, Serializable { TransformerFactoryImpl tfactory) { _bytecodes = bytecodes; - _name = transletName; - _outputProperties = outputProperties; - _indentNumber = indentNumber; - _tfactory = tfactory; + init(transletName, outputProperties, indentNumber, tfactory); } /** @@ -156,14 +156,19 @@ public final class TemplatesImpl implements Templates, Serializable { TransformerFactoryImpl tfactory) { _class = transletClasses; - _name = transletName; _transletIndex = 0; + init(transletName, outputProperties, indentNumber, tfactory); + } + + private void init(String transletName, + Properties outputProperties, int indentNumber, + TransformerFactoryImpl tfactory) { + _name = transletName; _outputProperties = outputProperties; _indentNumber = indentNumber; _tfactory = tfactory; + _useServicesMechanism = tfactory.useServicesMechnism(); } - - /** * Need for de-serialization, see readObject(). */ @@ -207,6 +212,12 @@ public final class TemplatesImpl implements Templates, Serializable { } } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } /** * Store URIResolver needed for Transformers. @@ -357,6 +368,7 @@ public final class TemplatesImpl implements Templates, Serializable { AbstractTranslet translet = (AbstractTranslet) _class[_transletIndex].newInstance(); translet.postInitialization(); translet.setTemplates(this); + translet.setServicesMechnism(_useServicesMechanism); if (_auxClasses != null) { translet.setAuxiliaryClasses(_auxClasses); } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java index 400bdab82ac..172907e7af0 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java @@ -55,6 +55,7 @@ public class TrAXFilter extends XMLFilterImpl { private Templates _templates; private TransformerImpl _transformer; private TransformerHandlerImpl _transformerHandler; + private boolean _useServicesMechanism = true; public TrAXFilter(Templates templates) throws TransformerConfigurationException @@ -62,6 +63,7 @@ public class TrAXFilter extends XMLFilterImpl { _templates = templates; _transformer = (TransformerImpl) templates.newTransformer(); _transformerHandler = new TransformerHandlerImpl(_transformer); + _useServicesMechanism = _transformer.useServicesMechnism(); } public Transformer getTransformer() { @@ -106,7 +108,7 @@ public class TrAXFilter extends XMLFilterImpl { try { if (getParent() == null) { try { - managedReader = XMLReaderManager.getInstance() + managedReader = XMLReaderManager.getInstance(_useServicesMechanism) .getXMLReader(); setParent(managedReader); } catch (SAXException e) { @@ -118,7 +120,7 @@ public class TrAXFilter extends XMLFilterImpl { getParent().parse(input); } finally { if (managedReader != null) { - XMLReaderManager.getInstance().releaseXMLReader(managedReader); + XMLReaderManager.getInstance(_useServicesMechanism).releaseXMLReader(managedReader); } } } diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java index 4211d40d0d8..26b2f56de86 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java @@ -49,6 +49,7 @@ import javax.xml.transform.Templates; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; import javax.xml.transform.URIResolver; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; @@ -64,11 +65,14 @@ import javax.xml.transform.stax.*; import com.sun.org.apache.xml.internal.utils.StylesheetPIHandler; import com.sun.org.apache.xml.internal.utils.StopParseException; +import com.sun.org.apache.xalan.internal.XalanConstants; import com.sun.org.apache.xalan.internal.xsltc.compiler.Constants; import com.sun.org.apache.xalan.internal.xsltc.compiler.SourceLoader; import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; import com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import org.xml.sax.InputSource; @@ -212,11 +216,28 @@ public class TransformerFactoryImpl *

    State of secure mode.

    */ private boolean _isSecureMode = false; + + /** + * Indicates whether implementation parts should use + * service loader (or similar). + * Note the default value (false) is the safe option.. + */ + private boolean _useServicesMechanism; + /** * javax.xml.transform.sax.TransformerFactory implementation. */ public TransformerFactoryImpl() { - m_DTMManagerClass = XSLTCDTMManager.getDTMManagerClass(); + this(true); + } + + public static TransformerFactory newTransformerFactoryNoServiceLoader() { + return new TransformerFactoryImpl(false); + } + + private TransformerFactoryImpl(boolean useServicesMechanism) { + this.m_DTMManagerClass = XSLTCDTMManager.getDTMManagerClass(useServicesMechanism); + this._useServicesMechanism = useServicesMechanism; if (System.getSecurityManager() != null) { _isSecureMode = true; _isNotSecureProcessing = false; @@ -274,6 +295,12 @@ public class TransformerFactoryImpl else if (name.equals(AUTO_TRANSLET)) { return new Boolean(_autoTranslet); } + else if (name.equals(ENABLE_INLINING)) { + if (_enableInlining) + return Boolean.TRUE; + else + return Boolean.FALSE; + } // Throw an exception for all other attributes ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_ERR, name); @@ -420,6 +447,11 @@ public class TransformerFactoryImpl // all done processing feature return; } + else if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) { + //in secure mode, let _useServicesMechanism be determined by the constructor + if (!_isSecureMode) + _useServicesMechanism = value; + } else { // unknown feature ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_UNSUPPORTED_FEATURE, name); @@ -448,7 +480,8 @@ public class TransformerFactoryImpl StreamSource.FEATURE, StreamResult.FEATURE, SAXTransformerFactory.FEATURE, - SAXTransformerFactory.FEATURE_XMLFILTER + SAXTransformerFactory.FEATURE_XMLFILTER, + XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM }; // feature name cannot be null @@ -471,6 +504,12 @@ public class TransformerFactoryImpl // Feature not supported return false; } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } /** * javax.xml.transform.sax.TransformerFactory implementation. @@ -543,7 +582,7 @@ public class TransformerFactoryImpl isource = SAXSource.sourceToInputSource(source); baseId = isource.getSystemId(); - SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParserFactory factory = FactoryImpl.getSAXFactory(_useServicesMechanism); factory.setNamespaceAware(true); if (!_isNotSecureProcessing) { @@ -702,8 +741,7 @@ public class TransformerFactoryImpl transletName = _packageName + "." + transletName; try { - final Class clazz = ObjectFactory.findProviderClass( - transletName, ObjectFactory.findClassLoader(), true); + final Class clazz = ObjectFactory.findProviderClass(transletName, true); resetTransientAttributes(); return new TemplatesImpl(new Class[]{clazz}, transletName, null, _indentNumber, this); @@ -753,9 +791,13 @@ public class TransformerFactoryImpl } // Create and initialize a stylesheet compiler - final XSLTC xsltc = new XSLTC(); + final XSLTC xsltc = new XSLTC(_useServicesMechanism); if (_debug) xsltc.setDebug(true); - if (_enableInlining) xsltc.setTemplateInlining(true); + if (_enableInlining) + xsltc.setTemplateInlining(true); + else + xsltc.setTemplateInlining(false); + if (!_isNotSecureProcessing) xsltc.setSecureProcessing(true); xsltc.init(); diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java index 6af03b77fea..16e178eba9a 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java @@ -23,6 +23,7 @@ package com.sun.org.apache.xalan.internal.xsltc.trax; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -182,7 +183,7 @@ public final class TransformerImpl extends Transformer /** * A reference to an object that creates and caches XMLReader objects. */ - private XMLReaderManager _readerManager = XMLReaderManager.getInstance(); + private XMLReaderManager _readerManager; /** * A flag indicating whether we use incremental building of the DTM. @@ -200,6 +201,13 @@ public final class TransformerImpl extends Transformer */ private boolean _isSecureProcessing = false; + /** + * Indicates whether implementation parts should use + * service loader (or similar). + * Note the default value (false) is the safe option.. + */ + private boolean _useServicesMechanism; + /** * A hashtable to store parameters for the identity transform. These * are not needed during the transformation, but we must keep track of @@ -251,6 +259,8 @@ public final class TransformerImpl extends Transformer _propertiesClone = (Properties) _properties.clone(); _indentNumber = indentNumber; _tfactory = tfactory; + _useServicesMechanism = _tfactory.useServicesMechnism(); + _readerManager = XMLReaderManager.getInstance(_useServicesMechanism); //_isIncremental = tfactory._incremental; } @@ -267,6 +277,19 @@ public final class TransformerImpl extends Transformer public void setSecureProcessing(boolean flag) { _isSecureProcessing = flag; } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + _useServicesMechanism = flag; + } /** * Returns the translet wrapped inside this Transformer or @@ -347,7 +370,7 @@ public final class TransformerImpl extends Transformer // Get encoding using getProperty() to use defaults _encoding = (String) _properties.getProperty(OutputKeys.ENCODING); - _tohFactory = TransletOutputHandlerFactory.newInstance(); + _tohFactory = TransletOutputHandlerFactory.newInstance(_useServicesMechanism); _tohFactory.setEncoding(_encoding); if (_method != null) { _tohFactory.setOutputMethod(_method); @@ -435,9 +458,7 @@ public final class TransformerImpl extends Transformer // the systemId will be URI encoded as a result of File.toURI(), // it must be decoded for use by URL try{ - Class clazz = ObjectFactory.findProviderClass("java.net.URI", ObjectFactory.findClassLoader(), true); - Constructor construct = clazz.getConstructor(new Class[] {java.lang.String.class} ); - URI uri = (URI) construct.newInstance(new Object[]{systemId}) ; + URI uri = new URI(systemId) ; systemId = "file:"; String host = uri.getHost(); // decoded String @@ -454,10 +475,6 @@ public final class TransformerImpl extends Transformer systemId += "//" + path; } } - catch(ClassNotFoundException e){ - // running on J2SE 1.3 which doesn't have URI Class so OK to ignore - //ClassNotFoundException. - } catch (Exception exception) { // URI exception which means nothing can be done so OK to ignore } @@ -524,6 +541,7 @@ public final class TransformerImpl extends Transformer _dtmManager = (XSLTCDTMManager)_tfactory.getDTMManagerClass() .newInstance(); + _dtmManager.setServicesMechnism(_useServicesMechanism); } dom = (DOM)_dtmManager.getDTM(source, false, wsfilter, true, false, false, 0, hasIdCall); @@ -695,10 +713,8 @@ public final class TransformerImpl extends Transformer ((SAXSource)source).getXMLReader()==null )|| (source instanceof DOMSource && ((DOMSource)source).getNode()==null)){ - DocumentBuilderFactory builderF = - DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = - builderF.newDocumentBuilder(); + DocumentBuilderFactory builderF = FactoryImpl.getDOMFactory(_useServicesMechanism); + DocumentBuilder builder = builderF.newDocumentBuilder(); String systemID = source.getSystemId(); source = new DOMSource(builder.newDocument()); @@ -974,6 +990,11 @@ public final class TransformerImpl extends Transformer } } } + else if (name.equals(OutputPropertiesFactory.ORACLE_IS_STANDALONE)) { + if (value != null && value.equals("yes")) { + translet._isStandalone = true; + } + } } } @@ -1033,6 +1054,11 @@ public final class TransformerImpl extends Transformer handler.setIndentAmount(Integer.parseInt(value)); } } + else if (name.equals(OutputPropertiesFactory.ORACLE_IS_STANDALONE)) { + if (value != null && value.equals("yes")) { + handler.setIsStandalone(true); + } + } else if (name.equals(OutputKeys.CDATA_SECTION_ELEMENTS)) { if (value != null) { StringTokenizer e = new StringTokenizer(value); @@ -1146,6 +1172,7 @@ public final class TransformerImpl extends Transformer name.equals(OutputKeys.OMIT_XML_DECLARATION) || name.equals(OutputKeys.STANDALONE) || name.equals(OutputKeys.VERSION) || + name.equals(OutputPropertiesFactory.ORACLE_IS_STANDALONE) || name.charAt(0) == '{'); } @@ -1252,7 +1279,7 @@ public final class TransformerImpl extends Transformer try { // Argument to document function was: document(''); if (href.length() == 0) { - href = new String(baseURI); + href = baseURI; } /* diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java index 76a071df641..f5e1c85b98c 100644 --- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java +++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java @@ -42,6 +42,7 @@ import javax.xml.transform.stax.StAXResult; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC; import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; @@ -109,8 +110,7 @@ public final class Util { //Incase there is an exception thrown // resort to JAXP - SAXParserFactory parserFactory = - SAXParserFactory.newInstance(); + SAXParserFactory parserFactory = FactoryImpl.getSAXFactory(xsltc.useServicesMechnism()); parserFactory.setNamespaceAware(true); if (xsltc.isSecureProcessing()) { diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java index ab1952cb1a4..f20775e3f7a 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java @@ -21,7 +21,10 @@ package com.sun.org.apache.xerces.internal.dom; import com.sun.org.apache.xerces.internal.impl.RevalidationHandler; import com.sun.org.apache.xerces.internal.parsers.DOMParserImpl; +import com.sun.org.apache.xerces.internal.parsers.DTDConfiguration; +import com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration; import com.sun.org.apache.xerces.internal.util.XMLChar; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarDescription; import com.sun.org.apache.xml.internal.serialize.DOMSerializerImpl; import org.w3c.dom.DOMException; @@ -49,6 +52,7 @@ import org.w3c.dom.ls.LSSerializer; * * @xerces.internal * + * @version $Id: CoreDOMImplementationImpl.java,v 1.6 2010-11-01 04:39:37 joehw Exp $ * @since PR-DOM-Level-1-19980818. */ public class CoreDOMImplementationImpl @@ -114,8 +118,7 @@ public class CoreDOMImplementationImpl && (anyVersion || version.equals("3.0"))) { try { Class xpathClass = ObjectFactory.findProviderClass( - "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", - ObjectFactory.findClassLoader(), true); + "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true); // Check if the DOM XPath implementation implements // the interface org.w3c.dom.XPathEvaluator @@ -281,9 +284,7 @@ public class CoreDOMImplementationImpl if ((feature.equalsIgnoreCase("+XPath"))) { try { Class xpathClass = ObjectFactory.findProviderClass( - "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", - ObjectFactory.findClassLoader(), true); - + "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true); // Check if the DOM XPath implementation implements // the interface org.w3c.dom.XPathEvaluator Class interfaces[] = xpathClass.getInterfaces(); @@ -361,14 +362,12 @@ public class CoreDOMImplementationImpl } if (schemaType != null && schemaType.equals("http://www.w3.org/TR/REC-xml")) { - return new DOMParserImpl( - "com.sun.org.apache.xerces.internal.parsers.DTDConfiguration", + return new DOMParserImpl(new DTDConfiguration(), schemaType); } else { // create default parser configuration validating against XMLSchemas - return new DOMParserImpl( - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration", + return new DOMParserImpl(new XIncludeAwareParserConfiguration(), schemaType); } } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java index 56e280950cb..46cbc349ff4 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java @@ -31,6 +31,8 @@ import org.w3c.dom.UserDataHandler; import com.sun.org.apache.xerces.internal.util.XMLChar; import com.sun.org.apache.xerces.internal.util.XML11Char; import com.sun.org.apache.xerces.internal.xni.NamespaceContext; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; +import com.sun.org.apache.xerces.internal.utils.SecuritySupport; import org.w3c.dom.Attr; import org.w3c.dom.CDATASection; import org.w3c.dom.Comment; @@ -77,7 +79,7 @@ import org.w3c.dom.ls.LSSerializer; * @author Joe Kesselman, IBM * @author Andy Clark, IBM * @author Ralf Pfeiffer, IBM - * @version $Id: CoreDocumentImpl.java,v 1.7 2009/08/04 05:07:20 joehw Exp $ + * @version $Id: CoreDocumentImpl.java,v 1.9 2010-11-01 04:39:37 joehw Exp $ * @since PR-DOM-Level-1-19980818. */ @@ -258,8 +260,7 @@ extends ParentNode implements Document { super(null); ownerDocument = this; allowGrammarAccess = grammarAccess; - SecuritySupport ss = SecuritySupport.getInstance(); - String systemProp = ss.getSystemProperty(Constants.SUN_DOM_PROPERTY_PREFIX+Constants.SUN_DOM_ANCESTOR_CHECCK); + String systemProp = SecuritySupport.getSystemProperty(Constants.SUN_DOM_PROPERTY_PREFIX+Constants.SUN_DOM_ANCESTOR_CHECCK); if (systemProp != null) { if (systemProp.equalsIgnoreCase("false")) { ancestorChecking = false; @@ -516,9 +517,8 @@ extends ParentNode implements Document { } try { - Class xpathClass = ObjectFactory.findProviderClass( - "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", - ObjectFactory.findClassLoader(), true); + Class xpathClass = ObjectFactory.findProviderClass ( + "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true); Constructor xpathClassConstr = xpathClass.getConstructor(new Class[] { Document.class }); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java index 012c827bed4..ad11c0416ee 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java @@ -55,6 +55,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLEntityResolver; import com.sun.org.apache.xerces.internal.xni.parser.XMLErrorHandler; import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; import org.w3c.dom.DOMException; import org.w3c.dom.ls.LSResourceResolver; @@ -324,8 +325,7 @@ public class DOMConfigurationImpl extends ParserConfigurationSettings MessageFormatter xmft = null; try { xmft = (MessageFormatter)( - ObjectFactory.newInstance("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter", - ObjectFactory.findClassLoader(), true)); + ObjectFactory.newInstance("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter", true)); } catch (Exception exception){ } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java deleted file mode 100644 index eaeaa977b51..00000000000 --- a/jaxp/src/com/sun/org/apache/xerces/internal/dom/ObjectFactory.java +++ /dev/null @@ -1,555 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2005 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.sun.org.apache.xerces.internal.dom; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * - * @xerces.internal - * - */ -final class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = "xerces.properties"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** - * Default columns per line. - */ - private static final int DEFAULT_LINE_LENGTH = 80; - - /** cache the contents of the xerces.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXercesProperties = null; - - /*** - * Cache the time stamp of the xerces.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xerces.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - if (DEBUG) debugPrintln("debug is on"); - - SecuritySupport ss = SecuritySupport.getInstance(); - ClassLoader cl = findClassLoader(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return newInstance(systemProp, cl, true); - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // JAXP specific change - // always use fallback class to avoid the expense of constantly - // "stat"ing a non-existent "xerces.properties" and jar SPI entry - // see CR 6400863: Expensive creating of SAX parser in Mustang - if (true) { - if (fallbackClassName == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); - return newInstance(fallbackClassName, cl, true); - } - - // Try to read from propertiesFilename, or $java.home/lib/xerces.properties - String factoryClassName = null; - // no properties file name specified; use $JAVA_HOME/lib/xerces.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXercesProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXercesProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xerces.properties before (or it's outdeated) - fXercesProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXercesProperties.load(fis); - } - } catch (Exception x) { - fXercesProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXercesProperties != null) { - factoryClassName = fXercesProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" + factoryClassName); - return newInstance(factoryClassName, cl, true); - } - - // Try Jar Service Provider Mechanism - Object provider = findJarServiceProvider(factoryId); - if (provider != null) { - return provider; - } - - if (fallbackClassName == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); - return newInstance(fallbackClassName, cl, true); - } // createObject(String,String,String):Object - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xerces - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the package - //restrict the access to package as speicified in java.security policy - SecurityManager security = System.getSecurityManager(); - if (security != null) { - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /* - * Try to find provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static Object findJarServiceProvider(String factoryId) - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = "META-INF/services/" + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8"), DEFAULT_LINE_LENGTH); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is), DEFAULT_LINE_LENGTH); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return newInstance(factoryClassName, cl, false); - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static final class ConfigurationError - extends Error { - - /** Serialization version. */ - static final long serialVersionUID = 1914065341994951202L; - - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java index 63095ea9092..d6f457db839 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java @@ -136,7 +136,9 @@ public final class Constants { /** XML string property ("xml-string"). */ public static final String XML_STRING_PROPERTY = "xml-string"; - public static final String FEATURE_SECURE_PROCESSING = "http://javax.xml.XMLConstants/feature/secure-processing"; + public static final String FEATURE_SECURE_PROCESSING = "http://javax.xml.XMLConstants/feature/secure-processing"; + + public static final String ORACLE_FEATURE_SERVICE_MECHANISM = "http://www.oracle.com/feature/use-service-mechanism"; /** Document XML version property ("document-xml-version"). */ public static final String DOCUMENT_XML_VERSION_PROPERTY = "document-xml-version"; diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java index 2bba625a65d..f1c611b0d1a 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java @@ -1803,6 +1803,7 @@ public class XMLDocumentFragmentScannerImpl String name = fEntityScanner.scanName(); if (name == null) { reportFatalError("NameRequiredInReference", null); + return; } if (!fEntityScanner.skipChar(';')) { reportFatalError("SemicolonRequiredInReference", new Object []{name}); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java index 78ad12c3713..c1ddeb6cb59 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java @@ -365,11 +365,6 @@ protected static final String PARSER_SETTINGS = // shared context - /** Shared declared entities. - * XXX understand it more deeply, why are we doing this ?? Is it really required ? - */ - protected Hashtable fDeclaredEntities; - protected XMLEntityStorage fEntityStorage ; protected final Object [] defaultEncoding = new Object[]{"UTF-8", null}; @@ -408,24 +403,6 @@ protected static final String PARSER_SETTINGS = reset(propertyManager); } // () - /** - * Constructs an entity manager that shares the specified entity - * declarations during each parse. - *

    - * REVISIT: We might want to think about the "right" - * way to expose the list of declared entities. For now, the knowledge - * how to access the entity declarations is implicit. - */ - public XMLEntityManager(XMLEntityManager entityManager) { - - - // save shared entity declarations - fDeclaredEntities = entityManager != null - ? entityManager.getEntityStore().getDeclaredEntities() : null; - - setScannerVersion(Constants.XML_VERSION_1_0); - } // (XMLEntityManager) - /** * Adds an internal entity declaration. *

    @@ -1111,7 +1088,7 @@ protected static final String PARSER_SETTINGS = throws IOException, XNIException { // was entity declared? - Entity entity = (Entity)fEntityStorage.getDeclaredEntities().get(entityName); + Entity entity = (Entity)fEntityStorage.getEntity(entityName); if (entity == null) { if (fEntityHandler != null) { String encoding = null; @@ -1331,23 +1308,16 @@ protected static final String PARSER_SETTINGS = (fEntityStack.empty() ? null : fEntityStack.elementAt(0)); } - // a list of Readers ever seen - protected Vector fOwnReaders = new Vector(); /** * Close all opened InputStreams and Readers opened by this parser. */ public void closeReaders() { - // close all readers - for (int i = fOwnReaders.size()-1; i >= 0; i--) { - try { - ((Reader)fOwnReaders.elementAt(i)).close(); - } catch (IOException e) { - // ignore - } - } - // and clear the list - fOwnReaders.removeAllElements(); + /** this call actually does nothing, readers are closed in the endEntity method + * through the current entity. + * The change seems to have happened during the jdk6 development with the + * addition of StAX + **/ } public void endEntity() throws IOException, XNIException { @@ -1361,6 +1331,20 @@ protected static final String PARSER_SETTINGS = //pop the entity from the stack Entity.ScannedEntity entity = fEntityStack.size() > 0 ? (Entity.ScannedEntity)fEntityStack.pop() : null ; + /** need to close the reader first since the program can end + * prematurely (e.g. fEntityHandler.endEntity may throw exception) + * leaving the reader open + */ + //close the reader + if(fCurrentEntity != null){ + //close the reader + try{ + fCurrentEntity.close(); + }catch(IOException ex){ + throw new XNIException(ex); + } + } + if (fEntityHandler != null) { //so this is the last opened entity, signal it to current fEntityHandler using Augmentation if(entity == null){ @@ -1375,16 +1359,6 @@ protected static final String PARSER_SETTINGS = //check if it is a document entity boolean documentEntity = fCurrentEntity.name == XMLEntity; - //close the reader - if(fCurrentEntity != null){ - //close the reader - try{ - fCurrentEntity.close(); - }catch(IOException ex){ - throw new XNIException(ex); - } - } - //set popped entity as current entity fCurrentEntity = entity; fEntityScanner.setCurrentEntity(fCurrentEntity); @@ -1536,15 +1510,6 @@ protected static final String PARSER_SETTINGS = } } - // copy declared entities - if (fDeclaredEntities != null) { - java.util.Enumeration keys = fDeclaredEntities.keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - Object value = fDeclaredEntities.get(key); - fEntities.put(key, value); - } - } fEntityHandler = null; // reset scanner diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java index 90deaa14b16..48a1c88a6b3 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java @@ -136,7 +136,9 @@ public class XMLEntityScanner implements XMLLocator { VALID_NAMES[58]=true; VALID_NAMES[95]=true; } - + // SAPJVM: Remember, that the XML version has explicitly been set, + // so that XMLStreamReader.getVersion() can find that out. + boolean xmlVersionSetExplicitly = false; // // Constructors // @@ -248,6 +250,7 @@ public class XMLEntityScanner implements XMLLocator { * @param xmlVersion the XML version of the current entity */ public final void setXMLVersion(String xmlVersion) { + xmlVersionSetExplicitly = true; // SAPJVM fCurrentEntity.xmlVersion = xmlVersion; } // setXMLVersion(String) diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java index a6f166b701c..a0c999df21f 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java @@ -447,7 +447,13 @@ public class XMLStreamReaderImpl implements javax.xml.stream.XMLStreamReader { /** Get the XML language version of the current document being parsed */ public String getVersion() { - return fEntityScanner.getXMLVersion(); + //apply SAP's patch: the default version in the scanner was set to 1.0 because of DOM and SAX + //so this patch is a workaround of the difference between StAX and DOM + // SAPJVM: Return null if the XML version has not been declared (as specified in the JavaDoc). + + String version = fEntityScanner.getXMLVersion(); + + return "1.0".equals(version) && !fEntityScanner.xmlVersionSetExplicitly ? null : version; } /** @@ -1045,11 +1051,10 @@ public class XMLStreamReaderImpl implements javax.xml.stream.XMLStreamReader { return fScanner.getCharacterData().toString(); XMLEntityStorage entityStore = fEntityManager.getEntityStore(); - Hashtable ht = entityStore.getDeclaredEntities(); - Entity en = (Entity)ht.get(name); - if(en == null) - return null; - if(en.isExternal()) + Entity en = entityStore.getEntity(name); + if(en == null) + return null; + if(en.isExternal()) return ((Entity.ExternalEntity)en).entityLocation.getExpandedSystemId(); else return ((Entity.InternalEntity)en).text; @@ -1176,8 +1181,7 @@ public class XMLStreamReaderImpl implements javax.xml.stream.XMLStreamReader { return true; XMLEntityStorage entityStore = fEntityManager.getEntityStore(); - Hashtable ht = entityStore.getDeclaredEntities(); - Entity en =(Entity)ht.get(name); + Entity en = entityStore.getEntity(name); if(en == null) return false; if(en.isExternal()){ @@ -1318,15 +1322,14 @@ public class XMLStreamReaderImpl implements javax.xml.stream.XMLStreamReader { protected List getEntityDecls(){ if(fEventType == XMLStreamConstants.DTD){ XMLEntityStorage entityStore = fEntityManager.getEntityStore(); - Hashtable ht = entityStore.getDeclaredEntities(); ArrayList list = null; - if(ht != null){ + if(entityStore.hasEntities()){ EntityDeclarationImpl decl = null; - list = new ArrayList(ht.size()); - Enumeration enu = ht.keys(); + list = new ArrayList(entityStore.getEntitySize()); + Enumeration enu = entityStore.getEntityKeys(); while(enu.hasMoreElements()){ String key = (String)enu.nextElement(); - Entity en = (Entity)ht.get(key); + Entity en = (Entity)entityStore.getEntity(key); decl = new EntityDeclarationImpl(); decl.setEntityName(key); if(en.isExternal()){ diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java index 5e13994db33..15afa2e1407 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory.java @@ -21,6 +21,7 @@ package com.sun.org.apache.xerces.internal.impl.dv; import java.util.Hashtable; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; /** * The factory to create and return DTD types. The implementation should @@ -31,6 +32,7 @@ import java.util.Hashtable; * * @author Sandy Gao, IBM * + * @version $Id: DTDDVFactory.java,v 1.6 2010-11-01 04:39:43 joehw Exp $ */ public abstract class DTDDVFactory { @@ -43,7 +45,7 @@ public abstract class DTDDVFactory { * @exception DVFactoryException cannot create an instance of the specified * class name or the default class name */ - public static synchronized final DTDDVFactory getInstance() throws DVFactoryException { + public static final DTDDVFactory getInstance() throws DVFactoryException { return getInstance(DEFAULT_FACTORY_CLASS); } @@ -55,19 +57,19 @@ public abstract class DTDDVFactory { * @exception DVFactoryException cannot create an instance of the specified * class name or the default class name */ - public static synchronized final DTDDVFactory getInstance(String factoryClass) throws DVFactoryException { - + public static final DTDDVFactory getInstance(String factoryClass) throws DVFactoryException { try { // if the class name is not specified, use the default one return (DTDDVFactory) - (ObjectFactory.newInstance(factoryClass, ObjectFactory.findClassLoader(), true)); - } catch (ClassCastException e) { + (ObjectFactory.newInstance(factoryClass, true)); + } + catch (ClassCastException e) { throw new DVFactoryException("DTD factory class " + factoryClass + " does not extend from DTDDVFactory."); } } // can't create a new object of this class - protected DTDDVFactory(){} + protected DTDDVFactory() {} /** * return a dtd type of the given name diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java deleted file mode 100644 index f6dd089af44..00000000000 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/ObjectFactory.java +++ /dev/null @@ -1,555 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2005 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.sun.org.apache.xerces.internal.impl.dv; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * - * @xerces.internal - * - */ -final class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = "xerces.properties"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** - * Default columns per line. - */ - private static final int DEFAULT_LINE_LENGTH = 80; - - /** cache the contents of the xerces.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXercesProperties = null; - - /*** - * Cache the time stamp of the xerces.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xerces.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - if (DEBUG) debugPrintln("debug is on"); - - SecuritySupport ss = SecuritySupport.getInstance(); - ClassLoader cl = findClassLoader(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return newInstance(systemProp, cl, true); - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // JAXP specific change - // always use fallback class to avoid the expense of constantly - // "stat"ing a non-existent "xerces.properties" and jar SPI entry - // see CR 6400863: Expensive creating of SAX parser in Mustang - if (true) { - if (fallbackClassName == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); - return newInstance(fallbackClassName, cl, true); - } - - // Try to read from propertiesFilename, or $java.home/lib/xerces.properties - String factoryClassName = null; - // no properties file name specified; use $JAVA_HOME/lib/xerces.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXercesProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXercesProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xerces.properties before (or it's outdeated) - fXercesProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXercesProperties.load(fis); - } - } catch (Exception x) { - fXercesProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXercesProperties != null) { - factoryClassName = fXercesProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" + factoryClassName); - return newInstance(factoryClassName, cl, true); - } - - // Try Jar Service Provider Mechanism - Object provider = findJarServiceProvider(factoryId); - if (provider != null) { - return provider; - } - - if (fallbackClassName == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); - return newInstance(fallbackClassName, cl, true); - } // createObject(String,String,String):Object - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xerces - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the package - //restrict the access to package as speicified in java.security policy - SecurityManager security = System.getSecurityManager(); - if (security != null) { - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /* - * Try to find provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static Object findJarServiceProvider(String factoryId) - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = "META-INF/services/" + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8"), DEFAULT_LINE_LENGTH); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is), DEFAULT_LINE_LENGTH); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return newInstance(factoryClassName, cl, false); - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static final class ConfigurationError - extends Error { - - /** Serialization version. */ - static final long serialVersionUID = 8521878292694272124L; - - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java index 3a04ae4f801..902d9d3fdea 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/SchemaDVFactory.java @@ -22,6 +22,7 @@ package com.sun.org.apache.xerces.internal.impl.dv; import com.sun.org.apache.xerces.internal.util.SymbolHash; import com.sun.org.apache.xerces.internal.xs.XSObjectList; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; /** * Defines a factory API that enables applications to

    @@ -39,6 +40,7 @@ import com.sun.org.apache.xerces.internal.xs.XSObjectList; * * @author Sandy Gao, IBM * + * @version $Id: SchemaDVFactory.java,v 1.6 2010-11-01 04:39:43 joehw Exp $ */ public abstract class SchemaDVFactory { @@ -68,8 +70,7 @@ public abstract class SchemaDVFactory { try { // if the class name is not specified, use the default one - return (SchemaDVFactory)(ObjectFactory.newInstance( - factoryClass, ObjectFactory.findClassLoader(), true)); + return (SchemaDVFactory)(ObjectFactory.newInstance(factoryClass, true)); } catch (ClassCastException e4) { throw new DVFactoryException("Schema factory class " + factoryClass + " does not extend from SchemaDVFactory."); } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties index 9605b7d9027..d2e847199ec 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages.properties @@ -289,3 +289,6 @@ TargetNamespace.2 = TargetNamespace.2: Expecting no namespace, but the schema document has a target namespace of ''{1}''. UndeclaredEntity = UndeclaredEntity: Entity ''{0}'' is not declared. UndeclaredPrefix = UndeclaredPrefix: Cannot resolve ''{0}'' as a QName: the prefix ''{1}'' is not declared. +null +null +null diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java index 3576ad28703..22e2a710c9b 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/ParserForXMLSchema.java @@ -383,16 +383,13 @@ class ParserForXMLSchema extends RegexParser { tok = Token.createRange(); setupRange(tok, DIGITS); - ranges.put("xml:isDigit", tok); - ranges2.put("xml:isDigit", Token.complementRanges(tok)); - - tok = Token.createRange(); - setupRange(tok, DIGITS); + setupRange(tok, DIGITS_INT); ranges.put("xml:isDigit", tok); ranges2.put("xml:isDigit", Token.complementRanges(tok)); tok = Token.createRange(); setupRange(tok, LETTERS); + setupRange(tok, LETTERS_INT); tok.mergeRanges((Token)ranges.get("xml:isDigit")); ranges.put("xml:isWord", tok); ranges2.put("xml:isWord", Token.complementRanges(tok)); @@ -420,6 +417,12 @@ class ParserForXMLSchema extends RegexParser { range.addRange(src.charAt(i), src.charAt(i+1)); } + static void setupRange(Token range, int[] src) { + int len = src.length; + for (int i = 0; i < len; i += 2) + range.addRange(src[i], src[i+1]); + } + private static final String SPACES = "\t\n\r\r "; private static final String NAMECHARS = "\u002d\u002e\u0030\u003a\u0041\u005a\u005f\u005f\u0061\u007a\u00b7\u00b7\u00c0\u00d6" @@ -466,7 +469,8 @@ class ParserForXMLSchema extends RegexParser { +""; private static final String LETTERS = "\u0041\u005a\u0061\u007a\u00c0\u00d6\u00d8\u00f6\u00f8\u0131\u0134\u013e\u0141\u0148" - +"\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1" + +"\u014a\u017e\u0180\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1" + +"\u02b0\u02d1" +"\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da" +"\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c" +"\u045e\u0481\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9" @@ -494,9 +498,15 @@ class ParserForXMLSchema extends RegexParser { +"\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3" +"\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2126\u2126\u212a\u212b\u212e\u212e" +"\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30a1\u30fa\u3105\u312c\u4e00\u9fa5" - +"\uac00\ud7a3"; + +"\uac00\ud7a3\uff66\uff9f"; + + private static final int[] LETTERS_INT = {0x1d790, 0x1d7a8, 0x1d7aa, 0x1d7c9, 0x2fa1b, 0x2fa1d}; + private static final String DIGITS = "\u0030\u0039\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF" +"\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9" +"\u0F20\u0F29\u1040\u1049\u1369\u1371\u17E0\u17E9\u1810\u1819\uFF10\uFF19"; + + private static final int[] DIGITS_INT = {0x1D7CE, 0x1D7FF}; + } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java index ff5b46b0005..4b7ba136685 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java @@ -154,6 +154,8 @@ XSLoader, DOMConfiguration { protected static final String SCHEMA_DV_FACTORY = Constants.XERCES_PROPERTY_PREFIX + Constants.SCHEMA_DV_FACTORY_PROPERTY; + protected static final String USE_SERVICE_MECHANISM = Constants.ORACLE_FEATURE_SERVICE_MECHANISM; + // recognized features: private static final String[] RECOGNIZED_FEATURES = { SCHEMA_FULL_CHECKING, @@ -166,7 +168,8 @@ XSLoader, DOMConfiguration { VALIDATE_ANNOTATIONS, HONOUR_ALL_SCHEMALOCATIONS, NAMESPACE_GROWTH, - TOLERATE_DUPLICATES + TOLERATE_DUPLICATES, + USE_SERVICE_MECHANISM }; // property identifiers @@ -1148,7 +1151,8 @@ XSLoader, DOMConfiguration { name.equals(GENERATE_SYNTHETIC_ANNOTATIONS) || name.equals(HONOUR_ALL_SCHEMALOCATIONS) || name.equals(NAMESPACE_GROWTH) || - name.equals(TOLERATE_DUPLICATES)) { + name.equals(TOLERATE_DUPLICATES) || + name.equals(USE_SERVICE_MECHANISM)) { return true; } @@ -1227,6 +1231,7 @@ XSLoader, DOMConfiguration { v.add(HONOUR_ALL_SCHEMALOCATIONS); v.add(NAMESPACE_GROWTH); v.add(TOLERATE_DUPLICATES); + v.add(USE_SERVICE_MECHANISM); fRecognizedParameters = new DOMStringListImpl(v); } return fRecognizedParameters; diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java index aa6dc744252..c14673ec26a 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java @@ -233,6 +233,8 @@ public class XMLSchemaValidator protected static final String SCHEMA_DV_FACTORY = Constants.XERCES_PROPERTY_PREFIX + Constants.SCHEMA_DV_FACTORY_PROPERTY; + protected static final String USE_SERVICE_MECHANISM = Constants.ORACLE_FEATURE_SERVICE_MECHANISM; + // recognized features and properties /** Recognized features. */ @@ -250,7 +252,8 @@ public class XMLSchemaValidator HONOUR_ALL_SCHEMALOCATIONS, USE_GRAMMAR_POOL_ONLY, NAMESPACE_GROWTH, - TOLERATE_DUPLICATES + TOLERATE_DUPLICATES, + USE_SERVICE_MECHANISM }; /** Feature defaults. */ @@ -272,7 +275,8 @@ public class XMLSchemaValidator null, null, null, - null + null, + Boolean.TRUE }; /** Recognized properties. */ @@ -3488,7 +3492,8 @@ public class XMLSchemaValidator if (fIdentityConstraint.getCategory() == IdentityConstraint.IC_KEY) { String code = "AbsentKeyValue"; String eName = fIdentityConstraint.getElementName(); - reportSchemaError(code, new Object[] { eName }); + String cName = fIdentityConstraint.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { eName, cName }); } return; } @@ -3503,9 +3508,9 @@ public class XMLSchemaValidator if (fIdentityConstraint.getCategory() == IdentityConstraint.IC_KEY) { String code = "KeyNotEnoughValues"; UniqueOrKey key = (UniqueOrKey) fIdentityConstraint; - String ename = fIdentityConstraint.getElementName(); - String kname = key.getIdentityConstraintName(); - reportSchemaError(code, new Object[] { ename, kname }); + String eName = fIdentityConstraint.getElementName(); + String cName = key.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { eName, cName }); } return; } @@ -3558,12 +3563,15 @@ public class XMLSchemaValidator // do we even know this field? if (i == -1) { String code = "UnknownField"; - reportSchemaError(code, new Object[] { field.toString()}); + String eName = fIdentityConstraint.getElementName(); + String cName = fIdentityConstraint.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { field.toString(), eName, cName }); return; } if (Boolean.TRUE != mayMatch(field)) { String code = "FieldMultipleMatch"; - reportSchemaError(code, new Object[] { field.toString()}); + String cName = fIdentityConstraint.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { field.toString(), cName }); } else { fValuesCount++; } @@ -3844,8 +3852,9 @@ public class XMLSchemaValidator if (contains()) { String code = "DuplicateUnique"; String value = toString(fLocalValues); - String ename = fIdentityConstraint.getElementName(); - reportSchemaError(code, new Object[] { value, ename }); + String eName = fIdentityConstraint.getElementName(); + String cName = fIdentityConstraint.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { value, eName, cName }); } } // duplicateValue(Hashtable) @@ -3880,8 +3889,9 @@ public class XMLSchemaValidator if (contains()) { String code = "DuplicateKey"; String value = toString(fLocalValues); - String ename = fIdentityConstraint.getElementName(); - reportSchemaError(code, new Object[] { value, ename }); + String eName = fIdentityConstraint.getElementName(); + String cName = fIdentityConstraint.getIdentityConstraintName(); + reportSchemaError(code, new Object[] { value, eName, cName }); } } // duplicateValue(Hashtable) diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java index ae1ae14e2ae..ca968f8d41e 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/identity/Field.java @@ -35,6 +35,7 @@ import com.sun.org.apache.xerces.internal.xs.XSTypeDefinition; * @xerces.internal * * @author Andy Clark, IBM + * @version $Id: Field.java,v 1.6 2010-11-01 04:39:57 joehw Exp $ */ public class Field { @@ -176,7 +177,8 @@ public class Field { super.matched(actualValue, valueType, itemValueType, isNil); if(isNil && (fIdentityConstraint.getCategory() == IdentityConstraint.IC_KEY)) { String code = "KeyMatchesNillable"; - fStore.reportError(code, new Object[]{fIdentityConstraint.getElementName()}); + fStore.reportError(code, + new Object[]{fIdentityConstraint.getElementName(), fIdentityConstraint.getIdentityConstraintName()}); } fStore.addValue(Field.this, actualValue, convertToPrimitiveKind(valueType), convertToPrimitiveKind(itemValueType)); // once we've stored the value for this field, we set the mayMatch diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java index 3322cd23820..dac7fbf09f2 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/datatype/XMLGregorianCalendarImpl.java @@ -39,7 +39,7 @@ import javax.xml.datatype.Duration; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; import com.sun.org.apache.xerces.internal.util.DatatypeMessageFormatter; - +import com.sun.org.apache.xerces.internal.utils.SecuritySupport; /** *

    Representation for W3C XML Schema 1.0 date/time datatypes. @@ -2394,7 +2394,10 @@ public class XMLGregorianCalendarImpl GregorianCalendar result = null; final int DEFAULT_TIMEZONE_OFFSET = DatatypeConstants.FIELD_UNDEFINED; TimeZone tz = getTimeZone(DEFAULT_TIMEZONE_OFFSET); - Locale locale = Locale.getDefault(); + /** Use the following instead for JDK7 only: + * Locale locale = Locale.getDefault(Locale.Category.FORMAT); + */ + Locale locale = getDefaultLocale(); result = new GregorianCalendar(tz, locale); result.clear(); @@ -2441,6 +2444,33 @@ public class XMLGregorianCalendarImpl return result; } + /** + * + * @return default locale + */ + private Locale getDefaultLocale() { + + String lang = SecuritySupport.getSystemProperty("user.language.format"); + String country = SecuritySupport.getSystemProperty("user.country.format"); + String variant = SecuritySupport.getSystemProperty("user.variant.format"); + Locale locale = null; + if (lang != null) { + if (country != null) { + if (variant != null) { + locale = new Locale(lang, country, variant); + } else { + locale = new Locale(lang, country); + } + } else { + locale = new Locale(lang); + } + } + if (locale == null) { + locale = Locale.getDefault(); + } + return locale; + } + /** *

    Convert this along with provided parameters * to java.util.GregorianCalendar instance.

    diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java index 5bdb1f27af1..4c69e70c0e4 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java @@ -37,6 +37,7 @@ import com.sun.org.apache.xerces.internal.impl.validation.EntityState; import com.sun.org.apache.xerces.internal.impl.validation.ValidationManager; import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator; import com.sun.org.apache.xerces.internal.impl.xs.util.SimpleLocator; +import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl; import com.sun.org.apache.xerces.internal.util.NamespaceSupport; import com.sun.org.apache.xerces.internal.util.SymbolTable; import com.sun.org.apache.xerces.internal.util.XMLAttributesImpl; @@ -62,7 +63,7 @@ import org.xml.sax.SAXException; *

    A validator helper for DOMSources.

    * * @author Michael Glavassevich, IBM - * @version $Id: DOMValidatorHelper.java,v 1.8 2010/07/23 02:09:26 joehw Exp $ + * @version $Id: DOMValidatorHelper.java,v 1.9 2010-11-01 04:40:08 joehw Exp $ */ final class DOMValidatorHelper implements ValidatorHelper, EntityState { @@ -381,7 +382,8 @@ final class DOMValidatorHelper implements ValidatorHelper, EntityState { } if (result.getNode() == null) { try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilderFactory factory = fComponentManager.getFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM) ? + DocumentBuilderFactory.newInstance() : new DocumentBuilderFactoryImpl(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); result.setNode(builder.newDocument()); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java index 84dddd6b099..f398e037d18 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java @@ -25,6 +25,7 @@ package com.sun.org.apache.xerces.internal.jaxp.validation; +import com.sun.org.apache.xerces.internal.impl.Constants; import java.io.IOException; import javax.xml.transform.Result; @@ -32,6 +33,7 @@ import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.SAXTransformerFactory; @@ -47,6 +49,7 @@ import org.xml.sax.SAXException; * @author Sunitha Reddy */ public final class StAXValidatorHelper implements ValidatorHelper { + private static final String DEFAULT_TRANSFORMER_IMPL = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"; /** Component manager. **/ private XMLSchemaValidatorComponentManager fComponentManager; @@ -67,7 +70,9 @@ public final class StAXValidatorHelper implements ValidatorHelper { if( identityTransformer1==null ) { try { - SAXTransformerFactory tf = (SAXTransformerFactory)SAXTransformerFactory.newInstance(); + SAXTransformerFactory tf = fComponentManager.getFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM) ? + (SAXTransformerFactory)SAXTransformerFactory.newInstance() + : (SAXTransformerFactory) TransformerFactory.newInstance(DEFAULT_TRANSFORMER_IMPL, StAXValidatorHelper.class.getClassLoader()); identityTransformer1 = tf.newTransformer(); identityTransformer2 = tf.newTransformerHandler(); } catch (TransformerConfigurationException e) { diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java index 58c8a8554ee..3919c0ca80f 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java @@ -30,7 +30,7 @@ import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import com.sun.org.apache.xerces.internal.impl.Constants; @@ -48,7 +48,7 @@ import org.xml.sax.SAXException; * * @author Michael Glavassevich, IBM * @author Sunitha Reddy - * @version $Id: StreamValidatorHelper.java,v 1.6 2010/07/23 02:09:26 joehw Exp $ + * @version $Id: StreamValidatorHelper.java,v 1.7 2010-11-01 04:40:08 joehw Exp $ */ final class StreamValidatorHelper implements ValidatorHelper { @@ -84,6 +84,7 @@ final class StreamValidatorHelper implements ValidatorHelper { private static final String VALIDATION_MANAGER = Constants.XERCES_PROPERTY_PREFIX + Constants.VALIDATION_MANAGER_PROPERTY; + private static final String DEFAULT_TRANSFORMER_IMPL = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"; // // Data // @@ -112,7 +113,9 @@ final class StreamValidatorHelper implements ValidatorHelper { if( result!=null ) { try { - SAXTransformerFactory tf = (SAXTransformerFactory)SAXTransformerFactory.newInstance(); + SAXTransformerFactory tf = fComponentManager.getFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM) ? + (SAXTransformerFactory)SAXTransformerFactory.newInstance() + : (SAXTransformerFactory) TransformerFactory.newInstance(DEFAULT_TRANSFORMER_IMPL, StreamValidatorHelper.class.getClassLoader()); identityTransformerHandler = tf.newTransformerHandler(); } catch (TransformerConfigurationException e) { throw new TransformerFactoryConfigurationError(e); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java index 529c6037fbe..2d9f2807910 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java @@ -43,6 +43,7 @@ import com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType; import com.sun.org.apache.xerces.internal.impl.validation.EntityState; import com.sun.org.apache.xerces.internal.impl.validation.ValidationManager; import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import com.sun.org.apache.xerces.internal.util.AttributesProxy; import com.sun.org.apache.xerces.internal.util.SAXLocatorWrapper; import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter; @@ -669,7 +670,8 @@ final class ValidatorHandlerImpl extends ValidatorHandler implements XMLReader reader = saxSource.getXMLReader(); if( reader==null ) { // create one now - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = fComponentManager.getFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM) ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(true); try { reader = spf.newSAXParser().getXMLReader(); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java index bffd8e8abf2..fece15d7697 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java @@ -107,7 +107,20 @@ public final class XMLSchemaFactory extends SchemaFactory { /** The container for the real grammar pool. */ private XMLGrammarPoolWrapper fXMLGrammarPoolWrapper; + /** + * Indicates whether implementation parts should use + * service loader (or similar). + * Note the default value (false) is the safe option.. + */ + private final boolean fUseServicesMechanism; public XMLSchemaFactory() { + this(true); + } + public static XMLSchemaFactory newXMLSchemaFactoryNoServiceLoader() { + return new XMLSchemaFactory(false); + } + private XMLSchemaFactory(boolean useServicesMechanism) { + fUseServicesMechanism = useServicesMechanism; fErrorHandlerWrapper = new ErrorHandlerWrapper(DraconianErrorHandler.getInstance()); fDOMEntityResolverWrapper = new DOMEntityResolverWrapper(); fXMLGrammarPoolWrapper = new XMLGrammarPoolWrapper(); @@ -338,6 +351,10 @@ public final class XMLSchemaFactory extends SchemaFactory { fSecurityManager = value ? new SecurityManager() : null; fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager); return; + } else if (name.equals(Constants.ORACLE_FEATURE_SERVICE_MECHANISM)) { + //in secure mode, let _useServicesMechanism be determined by the constructor + if (System.getSecurityManager() != null) + return; } try { fXMLSchemaLoader.setFeature(name, value); @@ -393,6 +410,7 @@ public final class XMLSchemaFactory extends SchemaFactory { private void propagateFeatures(AbstractXMLSchema schema) { schema.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, fSecurityManager != null); + schema.setFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM, fUseServicesMechanism); String[] features = fXMLSchemaLoader.getRecognizedFeatures(); for (int i = 0; i < features.length; ++i) { boolean state = fXMLSchemaLoader.getFeature(features[i]); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java index b42556661ec..88ea9518646 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java @@ -56,6 +56,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; import com.sun.org.apache.xerces.internal.xs.AttributePSVI; import com.sun.org.apache.xerces.internal.xs.ElementPSVI; import com.sun.org.apache.xerces.internal.xs.XSTypeDefinition; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; import org.w3c.dom.Attr; import org.w3c.dom.CDATASection; import org.w3c.dom.Comment; @@ -314,7 +315,7 @@ public class AbstractDOMParser extends AbstractXMLDocumentParser { } // (XMLParserConfiguration) /** - * This method retreives the name of current document class. + * This method retrieves the name of current document class. */ protected String getDocumentClassName () { return fDocumentClassName; @@ -345,8 +346,7 @@ public class AbstractDOMParser extends AbstractXMLDocumentParser { !documentClassName.equals(PSVI_DOCUMENT_CLASS_NAME)) { // verify that this class exists and is of the right type try { - Class _class = ObjectFactory.findProviderClass (documentClassName, - ObjectFactory.findClassLoader (), true); + Class _class = ObjectFactory.findProviderClass (documentClassName, true); //if (!_class.isAssignableFrom(Document.class)) { if (!Document.class.isAssignableFrom (_class)) { throw new IllegalArgumentException ( @@ -789,20 +789,16 @@ public class AbstractDOMParser extends AbstractXMLDocumentParser { else { // use specified document class try { - ClassLoader cl = ObjectFactory.findClassLoader(); - Class documentClass = ObjectFactory.findProviderClass (fDocumentClassName, - cl, true); + Class documentClass = ObjectFactory.findProviderClass (fDocumentClassName, true); fDocument = (Document)documentClass.newInstance (); // if subclass of our own class that's cool too Class defaultDocClass = - ObjectFactory.findProviderClass (CORE_DOCUMENT_CLASS_NAME, - cl, true); + ObjectFactory.findProviderClass (CORE_DOCUMENT_CLASS_NAME, true); if (defaultDocClass.isAssignableFrom (documentClass)) { fDocumentImpl = (CoreDocumentImpl)fDocument; - Class psviDocClass = ObjectFactory.findProviderClass (PSVI_DOCUMENT_CLASS_NAME, - cl, true); + Class psviDocClass = ObjectFactory.findProviderClass (PSVI_DOCUMENT_CLASS_NAME, true); if (psviDocClass.isAssignableFrom (documentClass)) { fStorePSVI = true; } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java index b259cfbb4bc..cfdab6b4024 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java @@ -135,10 +135,7 @@ public class DOMParser * grammar pool. */ public DOMParser(SymbolTable symbolTable, XMLGrammarPool grammarPool) { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); // set properties fConfiguration.addRecognizedProperties(RECOGNIZED_PROPERTIES); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java index df9c12a474f..614c826047e 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java @@ -55,6 +55,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLEntityResolver; import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; import com.sun.org.apache.xerces.internal.xni.parser.XMLParseException; import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; +import com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration; import org.w3c.dom.DOMConfiguration; import org.w3c.dom.DOMError; import org.w3c.dom.DOMErrorHandler; @@ -165,11 +166,8 @@ extends AbstractDOMParser implements LSParser, DOMConfiguration { /** * Constructs a DOM Builder using the standard parser configuration. */ - public DOMParserImpl (String configuration, String schemaType) { - this ( - (XMLParserConfiguration) ObjectFactory.createObject ( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - configuration)); + public DOMParserImpl (XMLParserConfiguration config, String schemaType) { + this (config); if (schemaType != null) { if (schemaType.equals (Constants.NS_DTD)) { //Schema validation is false by default and hence there is no @@ -261,10 +259,7 @@ extends AbstractDOMParser implements LSParser, DOMConfiguration { * Constructs a DOM Builder using the specified symbol table. */ public DOMParserImpl (SymbolTable symbolTable) { - this ( - (XMLParserConfiguration) ObjectFactory.createObject ( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration")); + this (new XIncludeAwareParserConfiguration()); fConfiguration.setProperty ( Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY, symbolTable); @@ -276,10 +271,7 @@ extends AbstractDOMParser implements LSParser, DOMConfiguration { * grammar pool. */ public DOMParserImpl (SymbolTable symbolTable, XMLGrammarPool grammarPool) { - this ( - (XMLParserConfiguration) ObjectFactory.createObject ( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration")); + this (new XIncludeAwareParserConfiguration()); fConfiguration.setProperty ( Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY, symbolTable); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java index 3a5a5d0ca54..d134454e8cc 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java @@ -33,7 +33,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; * @author Arnaud Le Hors, IBM * @author Andy Clark, IBM * - * @version $Id: SAXParser.java,v 1.5 2007/07/19 04:38:54 ofung Exp $ + * @version $Id: SAXParser.java,v 1.7 2010-11-01 04:40:09 joehw Exp $ */ public class SAXParser extends AbstractSAXParser { @@ -103,10 +103,7 @@ public class SAXParser * grammar pool. */ public SAXParser(SymbolTable symbolTable, XMLGrammarPool grammarPool) { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); // set features fConfiguration.addRecognizedFeatures(RECOGNIZED_FEATURES); diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java deleted file mode 100644 index e8148109d7d..00000000000 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecuritySupport.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002,2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.sun.org.apache.xerces.internal.parsers; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -/** - * This class is duplicated for each subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of any API. - * - * @xerces.internal - */ -final class SecuritySupport { - - private static final SecuritySupport securitySupport = new SecuritySupport(); - - /** - * Return an instance of this class. - */ - static SecuritySupport getInstance() { - return securitySupport; - } - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - - private SecuritySupport () {} -} diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java index 1b87b04bade..8a89e98f297 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLDocumentParser.java @@ -33,6 +33,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; * @author Arnaud Le Hors, IBM * @author Andy Clark, IBM * + * @version $Id: XMLDocumentParser.java,v 1.6 2010-11-01 04:40:10 joehw Exp $ */ public class XMLDocumentParser extends AbstractXMLDocumentParser { @@ -46,10 +47,7 @@ public class XMLDocumentParser * configuration. */ public XMLDocumentParser() { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); } // () /** @@ -63,10 +61,7 @@ public class XMLDocumentParser * Constructs a document parser using the specified symbol table. */ public XMLDocumentParser(SymbolTable symbolTable) { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); fConfiguration.setProperty(Constants.XERCES_PROPERTY_PREFIX+Constants.SYMBOL_TABLE_PROPERTY, symbolTable); } // (SymbolTable) @@ -76,10 +71,7 @@ public class XMLDocumentParser */ public XMLDocumentParser(SymbolTable symbolTable, XMLGrammarPool grammarPool) { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); fConfiguration.setProperty(Constants.XERCES_PROPERTY_PREFIX+Constants.SYMBOL_TABLE_PROPERTY, symbolTable); fConfiguration.setProperty(Constants.XERCES_PROPERTY_PREFIX+Constants.XMLGRAMMAR_POOL_PROPERTY, grammarPool); } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java index 966df3c9a13..7d88781e679 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarParser.java @@ -23,9 +23,9 @@ package com.sun.org.apache.xerces.internal.parsers; import com.sun.org.apache.xerces.internal.impl.Constants; import com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory; import com.sun.org.apache.xerces.internal.util.SymbolTable; -import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; /** + * @version $Id: XMLGrammarParser.java,v 1.6 2010-11-01 04:40:10 joehw Exp $ */ public abstract class XMLGrammarParser extends XMLParser { @@ -47,10 +47,7 @@ public abstract class XMLGrammarParser * @param symbolTable */ protected XMLGrammarParser(SymbolTable symbolTable) { - super((XMLParserConfiguration)ObjectFactory.createObject( - "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - "com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration" - )); + super(new XIncludeAwareParserConfiguration()); fConfiguration.setProperty(Constants.XERCES_PROPERTY_PREFIX+Constants.SYMBOL_TABLE_PROPERTY, symbolTable); } diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java index e4a67cbd143..6690922da71 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java @@ -37,6 +37,7 @@ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool; import com.sun.org.apache.xerces.internal.xni.parser.XMLEntityResolver; import com.sun.org.apache.xerces.internal.xni.parser.XMLErrorHandler; import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; /** *

    This class provides an easy way for a user to preparse grammars @@ -48,7 +49,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; * * @author Neil Graham, IBM * - * @version $Id: XMLGrammarPreparser.java,v 1.6 2010/07/23 02:09:28 joehw Exp $ + * @version $Id: XMLGrammarPreparser.java,v 1.7 2010-11-01 04:40:10 joehw Exp $ */ public class XMLGrammarPreparser { @@ -155,8 +156,7 @@ public class XMLGrammarPreparser { // got one; just instantiate it... String loaderName = (String)KNOWN_LOADERS.get(grammarType); try { - ClassLoader cl = ObjectFactory.findClassLoader(); - XMLGrammarLoader gl = (XMLGrammarLoader)(ObjectFactory.newInstance(loaderName, cl, true)); + XMLGrammarLoader gl = (XMLGrammarLoader)(ObjectFactory.newInstance(loaderName, true)); fLoaders.put(grammarType, gl); } catch (Exception e) { return false; diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java b/jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java index 13e12309db5..a13d8154c96 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings.java @@ -112,7 +112,16 @@ public class ParserConfigurationSettings * to be recognized. */ public void addRecognizedFeatures(String[] featureIds) { - fRecognizedFeatures.addAll(Arrays.asList(featureIds)); + + // add recognized features + int featureIdsCount = featureIds != null ? featureIds.length : 0; + for (int i = 0; i < featureIdsCount; i++) { + String featureId = featureIds[i]; + if (!fRecognizedFeatures.contains(featureId)) { + fRecognizedFeatures.add(featureId); + } + } + } // addRecognizedFeatures(String[]) /** diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java b/jaxp/src/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java new file mode 100644 index 00000000000..9cd86732f32 --- /dev/null +++ b/jaxp/src/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java @@ -0,0 +1,58 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.sun.org.apache.xerces.internal.utils; + +/** + * A configuration error. This was an internal class in ObjectFactory previously + */ +public final class ConfigurationError + extends Error { + + // + // Data + // + + /** Exception. */ + private Exception exception; + + // + // Constructors + // + + /** + * Construct a new instance with the specified detail string and + * exception. + */ + ConfigurationError(String msg, Exception x) { + super(msg); + this.exception = x; + } // (String,Exception) + + // + // methods + // + + /** Returns the exception associated to this error. */ + public Exception getException() { + return exception; + } // getException():Exception + +} // class ConfigurationError diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java similarity index 64% rename from jaxp/src/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java rename to jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java index b2cfbe906c6..afc0d45a5a1 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/parsers/ObjectFactory.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java @@ -18,7 +18,7 @@ * limitations under the License. */ -package com.sun.org.apache.xerces.internal.parsers; +package com.sun.org.apache.xerces.internal.utils; import java.io.InputStream; import java.io.IOException; @@ -41,8 +41,9 @@ import java.io.InputStreamReader; * when bundled as part of the JDK. *

    * + * @version $Id: ObjectFactory.java,v 1.6 2010/04/23 01:44:34 joehw Exp $ */ -final class ObjectFactory { +public final class ObjectFactory { // // Constants @@ -52,7 +53,7 @@ final class ObjectFactory { private static final String DEFAULT_PROPERTIES_FILENAME = "xerces.properties"; /** Set to true for debugging */ - private static final boolean DEBUG = false; + private static final boolean DEBUG = isDebugEnabled(); /** * Default columns per line. @@ -95,7 +96,7 @@ final class ObjectFactory { * * @exception ObjectFactory.ConfigurationError */ - static Object createObject(String factoryId, String fallbackClassName) + public static Object createObject(String factoryId, String fallbackClassName) throws ConfigurationError { return createObject(factoryId, null, fallbackClassName); } // createObject(String,String):Object @@ -122,20 +123,19 @@ final class ObjectFactory { * * @exception ObjectFactory.ConfigurationError */ - static Object createObject(String factoryId, + public static Object createObject(String factoryId, String propertiesFilename, String fallbackClassName) throws ConfigurationError { if (DEBUG) debugPrintln("debug is on"); - SecuritySupport ss = SecuritySupport.getInstance(); ClassLoader cl = findClassLoader(); // Use the system property first try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { + String systemProp = SecuritySupport.getSystemProperty(factoryId); + if (systemProp != null && systemProp.length() > 0) { if (DEBUG) debugPrintln("found system property, value=" + systemProp); return newInstance(systemProp, cl, true); } @@ -147,118 +147,6 @@ final class ObjectFactory { // always use fallback class to avoid the expense of constantly // "stat"ing a non-existent "xerces.properties" and jar SPI entry // see CR 6400863: Expensive creating of SAX parser in Mustang - if (true) { - if (fallbackClassName == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); - return newInstance(fallbackClassName, cl, true); - } - - // Try to read from propertiesFilename, or $java.home/lib/xerces.properties - String factoryClassName = null; - // no properties file name specified; use $JAVA_HOME/lib/xerces.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXercesProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXercesProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xerces.properties before (or it's outdeated) - fXercesProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXercesProperties.load(fis); - } - } catch (Exception x) { - fXercesProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXercesProperties != null) { - factoryClassName = fXercesProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" + factoryClassName); - return newInstance(factoryClassName, cl, true); - } - - // Try Jar Service Provider Mechanism - Object provider = findJarServiceProvider(factoryId); - if (provider != null) { - return provider; - } - if (fallbackClassName == null) { throw new ConfigurationError( "Provider for " + factoryId + " cannot be found", null); @@ -266,16 +154,28 @@ final class ObjectFactory { if (DEBUG) debugPrintln("using fallback, value=" + fallbackClassName); return newInstance(fallbackClassName, cl, true); + } // createObject(String,String,String):Object // // Private static methods // + /** Returns true if debug has been enabled. */ + private static boolean isDebugEnabled() { + try { + String val = SecuritySupport.getSystemProperty("xerces.debug"); + // Allow simply setting the prop to turn on debug + return (val != null && (!"false".equals(val))); + } + catch (SecurityException se) {} + return false; + } // isDebugEnabled() + /** Prints a message to standard error if debugging is enabled. */ private static void debugPrintln(String msg) { if (DEBUG) { - System.err.println("JAXP: " + msg); + System.err.println("XERCES: " + msg); } } // debugPrintln(String) @@ -283,15 +183,17 @@ final class ObjectFactory { * Figure out which ClassLoader to use. For JDK 1.2 and later use * the context ClassLoader. */ - static ClassLoader findClassLoader() + public static ClassLoader findClassLoader() throws ConfigurationError { - SecuritySupport ss = SecuritySupport.getInstance(); - + if (System.getSecurityManager()!=null) { + //this will ensure bootclassloader is used + return null; + } // Figure out which ClassLoader to use for loading the provider // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); + ClassLoader context = SecuritySupport.getContextClassLoader(); + ClassLoader system = SecuritySupport.getSystemClassLoader(); ClassLoader chain = system; while (true) { @@ -316,7 +218,7 @@ final class ObjectFactory { if (chain == null) { break; } - chain = ss.getParentClassLoader(chain); + chain = SecuritySupport.getParentClassLoader(chain); } // Assert: Current ClassLoader not in chain of @@ -331,7 +233,7 @@ final class ObjectFactory { // Check for any extension ClassLoaders in chain up to // boot ClassLoader - chain = ss.getParentClassLoader(chain); + chain = SecuritySupport.getParentClassLoader(chain); }; // Assert: Context ClassLoader not in chain of @@ -339,10 +241,25 @@ final class ObjectFactory { return context; } // findClassLoader():ClassLoader + /** + * Create an instance of a class using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static Object newInstance(String className, boolean doFallback) + throws ConfigurationError + { + if (System.getSecurityManager()!=null) { + return newInstance(className, null, doFallback); + } else { + return newInstance(className, + findClassLoader (), doFallback); + } + } + /** * Create an instance of a class using the specified ClassLoader */ - static Object newInstance(String className, ClassLoader cl, + public static Object newInstance(String className, ClassLoader cl, boolean doFallback) throws ConfigurationError { @@ -363,10 +280,24 @@ final class ObjectFactory { } } + /** + * Find a Class using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static Class findProviderClass(String className, boolean doFallback) + throws ClassNotFoundException, ConfigurationError + { + if (System.getSecurityManager()!=null) { + return Class.forName(className); + } else { + return findProviderClass (className, + findClassLoader (), doFallback); + } + } /** * Find a Class using the specified ClassLoader */ - static Class findProviderClass(String className, ClassLoader cl, + public static Class findProviderClass(String className, ClassLoader cl, boolean doFallback) throws ClassNotFoundException, ConfigurationError { @@ -381,15 +312,7 @@ final class ObjectFactory { } Class providerClass; if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. + //use the bootstrap ClassLoader. providerClass = Class.forName(className); } else { try { @@ -423,21 +346,20 @@ final class ObjectFactory { private static Object findJarServiceProvider(String factoryId) throws ConfigurationError { - SecuritySupport ss = SecuritySupport.getInstance(); String serviceId = "META-INF/services/" + factoryId; InputStream is = null; // First try the Context ClassLoader ClassLoader cl = findClassLoader(); - is = ss.getResourceAsStream(cl, serviceId); + is = SecuritySupport.getResourceAsStream(cl, serviceId); // If no provider found then try the current ClassLoader if (is == null) { ClassLoader current = ObjectFactory.class.getClassLoader(); if (cl != current) { cl = current; - is = ss.getResourceAsStream(cl, serviceId); + is = SecuritySupport.getResourceAsStream(cl, serviceId); } } @@ -506,48 +428,4 @@ final class ObjectFactory { return null; } - // - // Classes - // - - /** - * A configuration error. - */ - static final class ConfigurationError - extends Error { - - /** Serialization version. */ - static final long serialVersionUID = -7285495612271660427L; - - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - } // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java similarity index 77% rename from jaxp/src/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java rename to jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java index 4b1507bb8f8..42ca503a8cb 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/dom/SecuritySupport.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java @@ -18,7 +18,7 @@ * limitations under the License. */ -package com.sun.org.apache.xerces.internal.dom; +package com.sun.org.apache.xerces.internal.utils; import java.io.File; import java.io.FileInputStream; @@ -36,18 +36,18 @@ import java.security.PrivilegedExceptionAction; * * @xerces.internal */ -final class SecuritySupport { +public final class SecuritySupport { private static final SecuritySupport securitySupport = new SecuritySupport(); /** * Return an instance of this class. */ - static SecuritySupport getInstance() { + public static SecuritySupport getInstance() { return securitySupport; } - ClassLoader getContextClassLoader() { + static ClassLoader getContextClassLoader() { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -60,7 +60,7 @@ final class SecuritySupport { }); } - ClassLoader getSystemClassLoader() { + static ClassLoader getSystemClassLoader() { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -73,7 +73,7 @@ final class SecuritySupport { }); } - ClassLoader getParentClassLoader(final ClassLoader cl) { + static ClassLoader getParentClassLoader(final ClassLoader cl) { return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -89,7 +89,7 @@ final class SecuritySupport { }); } - String getSystemProperty(final String propName) { + public static String getSystemProperty(final String propName) { return (String) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -98,7 +98,7 @@ final class SecuritySupport { }); } - FileInputStream getFileInputStream(final File file) + static FileInputStream getFileInputStream(final File file) throws FileNotFoundException { try { @@ -112,8 +112,19 @@ final class SecuritySupport { throw (FileNotFoundException)e.getException(); } } + /** + * Return resource using the same classloader for the ObjectFactory by default + * or bootclassloader when Security Manager is in place + */ + public static InputStream getResourceAsStream(final String name) { + if (System.getSecurityManager()!=null) { + return getResourceAsStream(null, name); + } else { + return getResourceAsStream(ObjectFactory.findClassLoader(), name); + } + } - InputStream getResourceAsStream(final ClassLoader cl, + public static InputStream getResourceAsStream(final ClassLoader cl, final String name) { return (InputStream) @@ -121,7 +132,7 @@ final class SecuritySupport { public Object run() { InputStream ris; if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); + ris = Object.class.getResourceAsStream("/"+name); } else { ris = cl.getResourceAsStream(name); } @@ -130,16 +141,16 @@ final class SecuritySupport { }); } - boolean getFileExists(final File f) { + static boolean getFileExists(final File f) { return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { - return new Boolean(f.exists()); + return f.exists() ? Boolean.TRUE : Boolean.FALSE; } })).booleanValue(); } - long getLastModified(final File f) { + static long getLastModified(final File f) { return ((Long) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java index 08c0f4d073e..347ae24e446 100644 --- a/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java +++ b/jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java @@ -66,6 +66,7 @@ import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; import com.sun.org.apache.xerces.internal.xpointer.XPointerHandler; import com.sun.org.apache.xerces.internal.xpointer.XPointerProcessor; +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; /** *

    @@ -111,6 +112,7 @@ import com.sun.org.apache.xerces.internal.xpointer.XPointerProcessor; * @author Peter McCracken, IBM * @author Michael Glavassevich, IBM * + * @version $Id: XIncludeHandler.java,v 1.7 2010-11-01 04:40:18 joehw Exp $ * * @see XIncludeNamespaceSupport */ @@ -943,7 +945,8 @@ public class XIncludeHandler setState(STATE_IGNORE); } else { - reportFatalError("NoFallback"); + reportFatalError("NoFallback", + new Object[] { attributes.getValue(null, "href") }); } } else if (isFallbackElement(element)) { @@ -1001,7 +1004,8 @@ public class XIncludeHandler // we check to see if the children of this include element contained a fallback if (getState() == STATE_EXPECT_FALLBACK && !getSawFallback(fDepth + 1)) { - reportFatalError("NoFallback"); + reportFatalError("NoFallback", + new Object[] { "unknown" }); } } if (isFallbackElement(element)) { @@ -1567,7 +1571,6 @@ public class XIncludeHandler fChildConfig = (XMLParserConfiguration)ObjectFactory.newInstance( parserName, - ObjectFactory.findClassLoader(), true); // use the same symbol table, error reporter, entity resolver, security manager and buffer size. diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java index 84908f5eaaa..0c5c0866dcb 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java @@ -26,6 +26,7 @@ import com.sun.org.apache.xml.internal.res.XMLErrorResources; import com.sun.org.apache.xml.internal.res.XMLMessages; import com.sun.org.apache.xml.internal.utils.PrefixResolver; import com.sun.org.apache.xml.internal.utils.XMLStringFactory; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * A DTMManager instance can be used to create DTM and @@ -64,6 +65,7 @@ public abstract class DTMManager */ protected XMLStringFactory m_xsf = null; + private boolean _useServicesMechanism; /** * Default constructor is protected on purpose. */ @@ -132,14 +134,24 @@ public abstract class DTMManager */ public static DTMManager newInstance(XMLStringFactory xsf) throws DTMConfigurationException + { + return newInstance(xsf, true); + } + + public static DTMManager newInstance(XMLStringFactory xsf, boolean useServicesMechanism) + throws DTMConfigurationException { DTMManager factoryImpl = null; try { - factoryImpl = (DTMManager) ObjectFactory - .createObject(defaultPropName, defaultClassName); + if (useServicesMechanism) { + factoryImpl = (DTMManager) ObjectFactory + .createObject(defaultPropName, defaultClassName); + } else { + factoryImpl = new com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault(); + } } - catch (ObjectFactory.ConfigurationError e) + catch (ConfigurationError e) { throw new DTMConfigurationException(XMLMessages.createXMLMessage( XMLErrorResources.ER_NO_DEFAULT_IMPL, null), e.getException()); @@ -346,6 +358,19 @@ public abstract class DTMManager m_source_location = sourceLocation; } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return _useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + _useServicesMechanism = flag; + } // -------------------- private methods -------------------- @@ -429,4 +454,46 @@ public abstract class DTMManager return IDENT_NODE_DEFAULT; } + // + // Classes + // + + /** + * A configuration error. + * Originally in ObjectFactory. This is the only portion used in this package + */ + static class ConfigurationError + extends Error { + static final long serialVersionUID = 5122054096615067992L; + // + // Data + // + + /** Exception. */ + private Exception exception; + + // + // Constructors + // + + /** + * Construct a new instance with the specified detail string and + * exception. + */ + ConfigurationError(String msg, Exception x) { + super(msg); + this.exception = x; + } // (String,Exception) + + // + // Public methods + // + + /** Returns the exception associated to this error. */ + Exception getException() { + return exception; + } // getException():Exception + + } // class ConfigurationError + } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java deleted file mode 100644 index fc780c57a7f..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 08:14:55 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.7 2008/04/02 00:41:00 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 5122054096615067992L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java deleted file mode 100644 index 4cd35621e53..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/15 08:14:55 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java deleted file mode 100644 index c5c4c34e81e..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/15 08:14:56 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java index 82b9c263756..58fae690c92 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java @@ -844,12 +844,10 @@ public abstract class DTMDefaultBase implements DTM break; } - StringBuffer sb=new StringBuffer(); - sb.append("["+nodeHandle+": "+typestring+ - "(0x"+Integer.toHexString(getExpandedTypeID(nodeHandle))+") "+ - getNodeNameX(nodeHandle)+" {"+getNamespaceURI(nodeHandle)+"}"+ - "=\""+ getNodeValue(nodeHandle)+"\"]"); - return sb.toString(); + return "[" + nodeHandle + ": " + typestring + + "(0x" + Integer.toHexString(getExpandedTypeID(nodeHandle)) + ") " + + getNodeNameX(nodeHandle) + " {" + getNamespaceURI(nodeHandle) + "}" + + "=\"" + getNodeValue(nodeHandle) + "\"]"; } // ========= DTM Implementation Control Functions. ============== diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java index e83cd9452cb..9f93f802ae5 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java @@ -22,6 +22,7 @@ */ package com.sun.org.apache.xml.internal.dtm.ref; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Source; @@ -606,7 +607,7 @@ public class DTMManagerDefault extends DTMManager // If user did not supply a reader, ask for one from the reader manager if (null == reader) { if (m_readerManager == null) { - m_readerManager = XMLReaderManager.getInstance(); + m_readerManager = XMLReaderManager.getInstance(super.useServicesMechnism()); } reader = m_readerManager.getXMLReader(); @@ -765,8 +766,7 @@ public class DTMManagerDefault extends DTMManager try { - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - + DocumentBuilderFactory dbf = FactoryImpl.getDOMFactory(super.useServicesMechnism()); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java index ac5eba3313d..29881ebabcc 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java @@ -30,6 +30,7 @@ import java.lang.reflect.Method; import com.sun.org.apache.xerces.internal.parsers.SAXParser; import com.sun.org.apache.xml.internal.res.XMLErrorResources; import com.sun.org.apache.xml.internal.res.XMLMessages; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -101,7 +102,7 @@ public class IncrementalSAXSource_Xerces // If we can't get the magic constructor, no need to look further. Class xniConfigClass=ObjectFactory.findProviderClass( "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration", - ObjectFactory.findClassLoader(), true); + true); Class[] args1={xniConfigClass}; Constructor ctor=SAXParser.class.getConstructor(args1); @@ -110,7 +111,7 @@ public class IncrementalSAXSource_Xerces // we're going to want to use. Class xniStdConfigClass=ObjectFactory.findProviderClass( "com.sun.org.apache.xerces.internal.parsers.StandardParserConfiguration", - ObjectFactory.findClassLoader(), true); + true); fPullParserConfig=xniStdConfigClass.newInstance(); Object[] args2={fPullParserConfig}; fIncrementalParser = (SAXParser)ctor.newInstance(args2); @@ -120,7 +121,7 @@ public class IncrementalSAXSource_Xerces // API changes again. Class fXniInputSourceClass=ObjectFactory.findProviderClass( "com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource", - ObjectFactory.findClassLoader(), true); + true); Class[] args3={fXniInputSourceClass}; fConfigSetInput=xniStdConfigClass.getMethod("setInputSource",args3); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java deleted file mode 100644 index 3f89ec4c3f9..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/ObjectFactory.java +++ /dev/null @@ -1,663 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 08:15:08 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm.ref; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.7 2008/04/02 00:41:01 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 7772782876036961354L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java deleted file mode 100644 index 24b2971154a..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/15 08:15:09 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm.ref; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java deleted file mode 100644 index 372970f3fc8..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/15 08:15:09 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.dtm.ref; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java index cee8474d89f..0e871e071e4 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java @@ -1725,7 +1725,7 @@ public class DOM2DTM extends DTMDefaultBaseIterators try { Node node = getNode(nodeHandle); - treeWalker.traverse(node); + treeWalker.traverseFragment(node); } finally { diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java index c7ddc1f9e09..24a14b21f1d 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java @@ -23,6 +23,7 @@ package com.sun.org.apache.xml.internal.resolver; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import java.io.IOException; import java.io.FileNotFoundException; import java.io.InputStream; @@ -399,7 +400,8 @@ public class Catalog { * Setup readers. */ public void setupReaders() { - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(true); spf.setValidating(false); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java index 0b5a0f8d90b..166c0331a45 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java @@ -122,6 +122,7 @@ import com.sun.org.apache.xml.internal.resolver.Catalog; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class CatalogManager { @@ -197,6 +198,12 @@ public class CatalogManager { /** Current catalog class name. */ private String catalogClassName = null; + /** + * Indicates whether implementation parts should use + * service loader (or similar). + * Note the default value (false) is the safe option.. + */ + private boolean useServicesMechanism; /** The manager's debug object. Used for printing debugging messages. * @@ -207,26 +214,26 @@ public class CatalogManager { /** Constructor. */ public CatalogManager() { - debug = new Debug(); - // Note that we don't setDebug() here; we do that lazily. Either the - // user will set it explicitly, or we'll do it automagically if they - // read from the propertyFile for some other reason. That way, there's - // no attempt to read from the file before the caller has had a chance - // to avoid it. + init(); } /** Constructor that specifies an explicit property file. */ public CatalogManager(String propertyFile) { this.propertyFile = propertyFile; + init(); + } + private void init() { debug = new Debug(); // Note that we don't setDebug() here; we do that lazily. Either the // user will set it explicitly, or we'll do it automagically if they // read from the propertyFile for some other reason. That way, there's // no attempt to read from the file before the caller has had a chance // to avoid it. + if (System.getSecurityManager() == null) { + useServicesMechanism = true; + } } - /** Set the bootstrap resolver.*/ public void setBootstrapResolver(BootstrapResolver resolver) { bResolver = resolver; @@ -773,6 +780,9 @@ public class CatalogManager { return oasisXMLCatalogPI.booleanValue(); } + public boolean useServicesMechanism() { + return useServicesMechanism; + } /** * Set the XML Catalog PI setting */ diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java index aff09a6b08b..35a852fbf60 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java @@ -31,10 +31,11 @@ import java.util.Vector; import java.net.URL; import java.net.URLConnection; import java.net.MalformedURLException; +import javax.xml.parsers.SAXParserFactory; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader; import com.sun.org.apache.xml.internal.resolver.readers.OASISXMLCatalogReader; import com.sun.org.apache.xml.internal.resolver.readers.TR9401CatalogReader; -import javax.xml.parsers.SAXParserFactory; /** * An extension to OASIS Open Catalog files, this class supports @@ -45,6 +46,7 @@ import javax.xml.parsers.SAXParserFactory; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class Resolver extends Catalog { /** @@ -84,7 +86,8 @@ public class Resolver extends Catalog { * Setup readers. */ public void setupReaders() { - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(true); spf.setValidating(false); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java index 778e5a2a276..25951aa490b 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java @@ -23,6 +23,7 @@ package com.sun.org.apache.xml.internal.resolver.tools; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -61,6 +62,7 @@ import com.sun.org.apache.xml.internal.resolver.helpers.FileURL; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class CatalogResolver implements EntityResolver, URIResolver { /** Make the parser Namespace aware? */ @@ -302,7 +304,8 @@ public class CatalogResolver implements EntityResolver, URIResolver { private void setEntityResolver(SAXSource source) throws TransformerException { XMLReader reader = source.getXMLReader(); if (reader == null) { - SAXParserFactory spFactory = SAXParserFactory.newInstance(); + SAXParserFactory spFactory = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spFactory.setNamespaceAware(true); try { reader = spFactory.newSAXParser().getXMLReader(); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java index c4b72dc68b7..0d90d573a39 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java @@ -42,6 +42,7 @@ import org.xml.sax.SAXException; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.SAXParser; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import com.sun.org.apache.xml.internal.resolver.Catalog; import com.sun.org.apache.xml.internal.resolver.CatalogManager; import com.sun.org.apache.xml.internal.resolver.helpers.FileURL; @@ -62,6 +63,7 @@ import com.sun.org.apache.xml.internal.resolver.helpers.FileURL; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class ResolvingParser implements Parser, DTDHandler, DocumentHandler, EntityResolver { @@ -121,8 +123,8 @@ public class ResolvingParser /** Initialize the parser. */ private void initParser() { catalogResolver = new CatalogResolver(catalogManager); - - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(namespaceAware); spf.setValidating(validating); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java index 786f5bba565..660e4af6a13 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java @@ -53,6 +53,7 @@ import com.sun.org.apache.xml.internal.resolver.helpers.FileURL; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class ResolvingXMLFilter extends XMLFilterImpl { /** @@ -63,7 +64,7 @@ public class ResolvingXMLFilter extends XMLFilterImpl { public static boolean suppressExplanation = false; /** The manager for the underlying resolver. */ - private CatalogManager catalogManager = CatalogManager.getStaticManager(); + CatalogManager catalogManager = CatalogManager.getStaticManager(); /** The underlying catalog resolver. */ private CatalogResolver catalogResolver = null; diff --git a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java index e8dc595065b..0a98cd8dbe6 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java @@ -27,6 +27,7 @@ import org.xml.sax.*; import javax.xml.parsers.*; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import com.sun.org.apache.xml.internal.resolver.*; /** @@ -43,6 +44,7 @@ import com.sun.org.apache.xml.internal.resolver.*; * @author Norman Walsh * Norman.Walsh@Sun.COM * + * @version 1.0 */ public class ResolvingXMLReader extends ResolvingXMLFilter { /** Make the parser Namespace aware? */ @@ -60,7 +62,8 @@ public class ResolvingXMLReader extends ResolvingXMLFilter { */ public ResolvingXMLReader() { super(); - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(namespaceAware); spf.setValidating(validating); try { @@ -80,7 +83,8 @@ public class ResolvingXMLReader extends ResolvingXMLFilter { */ public ResolvingXMLReader(CatalogManager manager) { super(manager); - SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParserFactory spf = catalogManager.useServicesMechanism() ? + SAXParserFactory.newInstance() : new SAXParserFactoryImpl(); spf.setNamespaceAware(namespaceAware); spf.setValidating(validating); try { diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java index 477ff6d0a0d..22bcad610cb 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java @@ -21,7 +21,7 @@ package com.sun.org.apache.xml.internal.serialize; - +import com.sun.org.apache.xerces.internal.utils.ObjectFactory; import java.io.OutputStream; import java.io.Writer; import java.io.UnsupportedEncodingException; @@ -31,6 +31,7 @@ import java.util.StringTokenizer; /** * * + * @version $Revision: 1.6 $ $Date: 2010-11-01 04:40:36 $ * @author Scott Boag * @author Assaf Arkin */ @@ -69,8 +70,7 @@ public abstract class SerializerFactory while ( token.hasMoreTokens() ) { className = token.nextToken(); try { - factory = (SerializerFactory) ObjectFactory.newInstance( className, - SerializerFactory.class.getClassLoader(), true); + factory = (SerializerFactory) ObjectFactory.newInstance( className, true); if ( _factories.containsKey( factory.getSupportedMethod() ) ) _factories.put( factory.getSupportedMethod(), factory ); } catch ( Exception except ) { } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java index 4970e0b0f73..99c05b901bf 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java @@ -40,6 +40,7 @@ import com.sun.org.apache.xml.internal.serializer.utils.MsgKey; import com.sun.org.apache.xml.internal.serializer.utils.SystemIDResolver; import com.sun.org.apache.xml.internal.serializer.utils.Utils; import com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** * This class provides services that tell if a character should have @@ -54,7 +55,7 @@ import com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException; final class CharInfo { /** Given a character, lookup a String to output (e.g. a decorated entity reference). */ - private HashMap m_charToString = new HashMap(); + private HashMap m_charToString; /** * The name of the HTML entities file. @@ -71,42 +72,50 @@ final class CharInfo "com.sun.org.apache.xml.internal.serializer.XMLEntities"; /** The horizontal tab character, which the parser should always normalize. */ - public static final char S_HORIZONAL_TAB = 0x09; + static final char S_HORIZONAL_TAB = 0x09; /** The linefeed character, which the parser should always normalize. */ - public static final char S_LINEFEED = 0x0A; + static final char S_LINEFEED = 0x0A; /** The carriage return character, which the parser should always normalize. */ - public static final char S_CARRIAGERETURN = 0x0D; + static final char S_CARRIAGERETURN = 0x0D; + static final char S_SPACE = 0x20; + static final char S_QUOTE = 0x22; + static final char S_LT = 0x3C; + static final char S_GT = 0x3E; + static final char S_NEL = 0x85; + static final char S_LINE_SEPARATOR = 0x2028; /** This flag is an optimization for HTML entities. It false if entities * other than quot (34), amp (38), lt (60) and gt (62) are defined * in the range 0 to 127. * @xsl.usage internal */ - final boolean onlyQuotAmpLtGt; + boolean onlyQuotAmpLtGt; /** Copy the first 0,1 ... ASCII_MAX values into an array */ - private static final int ASCII_MAX = 128; + static final int ASCII_MAX = 128; /** Array of values is faster access than a set of bits - * to quickly check ASCII characters in attribute values. + * to quickly check ASCII characters in attribute values, + * the value is true if the character in an attribute value + * should be mapped to a String. */ - private boolean[] isSpecialAttrASCII = new boolean[ASCII_MAX]; + private final boolean[] shouldMapAttrChar_ASCII; /** Array of values is faster access than a set of bits - * to quickly check ASCII characters in text nodes. + * to quickly check ASCII characters in text nodes, + * the value is true if the character in a text node + * should be mapped to a String. */ - private boolean[] isSpecialTextASCII = new boolean[ASCII_MAX]; - - private boolean[] isCleanTextASCII = new boolean[ASCII_MAX]; + private final boolean[] shouldMapTextChar_ASCII; /** An array of bits to record if the character is in the set. * Although information in this array is complete, the * isSpecialAttrASCII array is used first because access to its values * is common and faster. */ - private int array_of_bits[] = createEmptySetOfIntegers(65535); + private final int array_of_bits[]; // 5 for 32 bit words, 6 for 64 bit words ... @@ -137,33 +146,38 @@ final class CharInfo /** - * Constructor that reads in a resource file that describes the mapping of - * characters to entity references. - * This constructor is private, just to force the use - * of the getCharInfo(entitiesResource) factory + * A base constructor just to explicitly create the fields, + * with the exception of m_charToString which is handled + * by the constructor that delegates base construction to this one. + *

    + * m_charToString is not created here only for performance reasons, + * to avoid creating a Hashtable that will be replaced when + * making a mutable copy, {@link #mutableCopyOf(CharInfo)}. * - * Resource files must be encoded in UTF-8 and can either be properties - * files with a .properties extension assumed. Alternatively, they can - * have the following form, with no particular extension assumed: - * - *

    -     * # First char # is a comment
    -     * Entity numericValue
    -     * quot 34
    -     * amp 38
    -     * 
    - * - * @param entitiesResource Name of properties or resource file that should - * be loaded, which describes that mapping of characters to entity - * references. */ - private CharInfo(String entitiesResource, String method) + private CharInfo() { - this(entitiesResource, method, false); + this.array_of_bits = createEmptySetOfIntegers(65535); + this.firstWordNotUsed = 0; + this.shouldMapAttrChar_ASCII = new boolean[ASCII_MAX]; + this.shouldMapTextChar_ASCII = new boolean[ASCII_MAX]; + this.m_charKey = new CharKey(); + + // Not set here, but in a constructor that uses this one + // this.m_charToString = new Hashtable(); + + this.onlyQuotAmpLtGt = true; + + + return; } private CharInfo(String entitiesResource, String method, boolean internal) { + // call the default constructor to create the fields + this(); + m_charToString = new HashMap(); + ResourceBundle entities = null; boolean noExtraEntities = true; @@ -189,12 +203,10 @@ final class CharInfo String name = (String) keys.nextElement(); String value = entities.getString(name); int code = Integer.parseInt(value); - defineEntity(name, (char) code); - if (extraEntity(code)) + boolean extra = defineEntity(name, (char) code); + if (extra) noExtraEntities = false; } - set(S_LINEFEED); - set(S_CARRIAGERETURN); } else { InputStream is = null; @@ -278,8 +290,8 @@ final class CharInfo int code = Integer.parseInt(value); - defineEntity(name, (char) code); - if (extraEntity(code)) + boolean extra = defineEntity(name, (char) code); + if (extra) noExtraEntities = false; } } @@ -288,8 +300,6 @@ final class CharInfo } is.close(); - set(S_LINEFEED); - set(S_CARRIAGERETURN); } catch (Exception e) { throw new RuntimeException( Utils.messages.createMessage( @@ -307,31 +317,8 @@ final class CharInfo } } - /* initialize the array isCleanTextASCII[] with a cache of values - * for use by ToStream.character(char[], int , int) - * and the array isSpecialTextASCII[] with the opposite values - * (all in the name of performance!) - */ - for (int ch = 0; ch Unlike internal entities, character references are a string to single * character mapping. They are used to map non-ASCII characters both on - * parsing and printing, primarily for HTML documents. '<amp;' is an + * parsing and printing, primarily for HTML documents. '&lt;' is an * example of a character reference.

    * * @param name The entity's name * @param value The entity's value + * @return true if the mapping is not one of: + *
      + *
    • '<' to "<" + *
    • '>' to ">" + *
    • '&' to "&" + *
    • '"' to """ + *
    */ - private void defineEntity(String name, char value) + private boolean defineEntity(String name, char value) { StringBuilder sb = new StringBuilder("&"); sb.append(name); sb.append(';'); String entityString = sb.toString(); - defineChar2StringMapping(entityString, value); + boolean extra = defineChar2StringMapping(entityString, value); + return extra; } + /** + * A utility object, just used to map characters to output Strings, + * needed because a HashMap needs to map an object as a key, not a + * Java primitive type, like a char, so this object gets around that + * and it is reusable. + */ + private final CharKey m_charKey; + /** * Map a character to a String. For example given * the character '>' this method would return the fully decorated @@ -399,21 +413,21 @@ final class CharInfo /** * Tell if the character argument that is from - * an attribute value should have special treatment. + * an attribute value has a mapping to a String. * * @param value the value of a character that is in an attribute value * @return true if the character should have any special treatment, * such as when writing out attribute values, - * or entity references. + * such as when writing out entity references. * @xsl.usage internal */ - final boolean isSpecialAttrChar(int value) + final boolean shouldMapAttrChar(int value) { // for performance try the values in the boolean array first, // this is faster access than the BitSet for common ASCII values if (value < ASCII_MAX) - return isSpecialAttrASCII[value]; + return shouldMapAttrChar_ASCII[value]; // rather than java.util.BitSet, our private // implementation is faster (and less general). @@ -422,48 +436,27 @@ final class CharInfo /** * Tell if the character argument that is from a - * text node should have special treatment. + * text node has a mapping to a String, for example + * to map '<' to "<". * * @param value the value of a character that is in a text node - * @return true if the character should have any special treatment, - * such as when writing out attribute values, - * or entity references. + * @return true if the character has a mapping to a String, + * such as when writing out entity references. * @xsl.usage internal */ - final boolean isSpecialTextChar(int value) + final boolean shouldMapTextChar(int value) { // for performance try the values in the boolean array first, // this is faster access than the BitSet for common ASCII values if (value < ASCII_MAX) - return isSpecialTextASCII[value]; + return shouldMapTextChar_ASCII[value]; // rather than java.util.BitSet, our private // implementation is faster (and less general). return get(value); } - /** - * This method is used to determine if an ASCII character in - * a text node (not an attribute value) is "clean". - * @param value the character to check (0 to 127). - * @return true if the character can go to the writer as-is - * @xsl.usage internal - */ - final boolean isTextASCIIClean(int value) - { - return isCleanTextASCII[value]; - } - -// In the future one might want to use the array directly and avoid -// the method call, but I think the JIT alreay inlines this well enough -// so don't do it (for now) - bjm -// public final boolean[] getASCIIClean() -// { -// return isCleanTextASCII; -// } - - private static CharInfo getCharInfoBasedOnPrivilege( final String entitiesFileName, final String method, final boolean internal){ @@ -498,15 +491,17 @@ final class CharInfo { CharInfo charInfo = (CharInfo) m_getCharInfoCache.get(entitiesFileName); if (charInfo != null) { - return charInfo; + return mutableCopyOf(charInfo); } // try to load it internally - cache try { charInfo = getCharInfoBasedOnPrivilege(entitiesFileName, method, true); + // Put the common copy of charInfo in the cache, but return + // a copy of it. m_getCharInfoCache.put(entitiesFileName, charInfo); - return charInfo; + return mutableCopyOf(charInfo); } catch (Exception e) {} // try to load it externally - do not cache @@ -533,7 +528,41 @@ final class CharInfo method, false); } - /** Table of user-specified char infos. */ + /** + * Create a mutable copy of the cached one. + * @param charInfo The cached one. + * @return + */ + private static CharInfo mutableCopyOf(CharInfo charInfo) { + CharInfo copy = new CharInfo(); + + int max = charInfo.array_of_bits.length; + System.arraycopy(charInfo.array_of_bits,0,copy.array_of_bits,0,max); + + copy.firstWordNotUsed = charInfo.firstWordNotUsed; + + max = charInfo.shouldMapAttrChar_ASCII.length; + System.arraycopy(charInfo.shouldMapAttrChar_ASCII,0,copy.shouldMapAttrChar_ASCII,0,max); + + max = charInfo.shouldMapTextChar_ASCII.length; + System.arraycopy(charInfo.shouldMapTextChar_ASCII,0,copy.shouldMapTextChar_ASCII,0,max); + + // utility field copy.m_charKey is already created in the default constructor + + copy.m_charToString = (HashMap) charInfo.m_charToString.clone(); + + copy.onlyQuotAmpLtGt = charInfo.onlyQuotAmpLtGt; + + return copy; + } + + /** + * Table of user-specified char infos. + * The table maps entify file names (the name of the + * property file without the .properties extension) + * to CharInfo objects populated with entities defined in + * corresponding property file. + */ private static HashMap m_getCharInfoCache = new HashMap(); /** @@ -575,7 +604,8 @@ final class CharInfo * the creation of the set. */ private final void set(int i) { - setASCIIdirty(i); + setASCIItextDirty(i); + setASCIIattrDirty(i); int j = (i >> SHIFT_PER_WORD); // this word is used int k = j + 1; @@ -610,24 +640,43 @@ final class CharInfo return in_the_set; } - // record if there are any entities other than - // quot, amp, lt, gt (probably user defined) /** - * @return true if the entity - * @param code The value of the character that has an entity defined - * for it. + * This method returns true if there are some non-standard mappings to + * entities other than quot, amp, lt, gt, and its only purpose is for + * performance. + * @param charToMap The value of the character that is mapped to a String + * @param outputString The String to which the character is mapped, usually + * an entity reference such as "<". + * @return true if the mapping is not one of: + *
      + *
    • '<' to "<" + *
    • '>' to ">" + *
    • '&' to "&" + *
    • '"' to """ + *
    */ - private boolean extraEntity(int entityValue) + private boolean extraEntity(String outputString, int charToMap) { boolean extra = false; - if (entityValue < 128) + if (charToMap < ASCII_MAX) { - switch (entityValue) + switch (charToMap) { - case 34 : // quot - case 38 : // amp - case 60 : // lt - case 62 : // gt + case '"' : // quot + if (!outputString.equals(""")) + extra = true; + break; + case '&' : // amp + if (!outputString.equals("&")) + extra = true; + break; + case '<' : // lt + if (!outputString.equals("<")) + extra = true; + break; + case '>' : // gt + if (!outputString.equals(">")) + extra = true; break; default : // other entity in range 0 to 127 extra = true; @@ -637,49 +686,61 @@ final class CharInfo } /** - * If the character is a printable ASCII character then - * mark it as not clean and needing replacement with - * a String on output. + * If the character is in the ASCII range then + * mark it as needing replacement with + * a String on output if it occurs in a text node. * @param ch */ - private void setASCIIdirty(int j) + private void setASCIItextDirty(int j) { if (0 <= j && j < ASCII_MAX) { - isCleanTextASCII[j] = false; - isSpecialTextASCII[j] = true; + shouldMapTextChar_ASCII[j] = true; } } /** - * If the character is a printable ASCII character then - * mark it as and not needing replacement with - * a String on output. + * If the character is in the ASCII range then + * mark it as needing replacement with + * a String on output if it occurs in a attribute value. * @param ch */ - private void setASCIIclean(int j) + private void setASCIIattrDirty(int j) { if (0 <= j && j < ASCII_MAX) { - isCleanTextASCII[j] = true; - isSpecialTextASCII[j] = false; + shouldMapAttrChar_ASCII[j] = true; } } - private void defineChar2StringMapping(String outputString, char inputChar) + /** + * Call this method to register a char to String mapping, for example + * to map '<' to "<". + * @param outputString The String to map to. + * @param inputChar The char to map from. + * @return true if the mapping is not one of: + *
      + *
    • '<' to "<" + *
    • '>' to ">" + *
    • '&' to "&" + *
    • '"' to """ + *
    + */ + boolean defineChar2StringMapping(String outputString, char inputChar) { CharKey character = new CharKey(inputChar); m_charToString.put(character, outputString); - set(inputChar); + set(inputChar); // mark the character has having a mapping to a String + + boolean extraMapping = extraEntity(outputString, inputChar); + return extraMapping; + } /** * Simple class for fast lookup of char values, when used with * hashtables. You can set the char, then use it as a key. * - * This class is a copy of the one in com.sun.org.apache.xml.internal.utils. - * It exists to cut the serializers dependancy on that package. - * * @xsl.usage internal */ private static class CharKey extends Object diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java index 26879702512..d14c2ea00f7 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java @@ -178,6 +178,13 @@ public class EmptySerializer implements SerializationHandler { aMethodIsCalled(); } + /** + * @see SerializationHandler#setIsStandalone(boolean) + */ + public void setIsStandalone(boolean isStandalone) + { + aMethodIsCalled(); + } /** * @see SerializationHandler#setOutputFormat(java.util.Properties) */ diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java index 59d1a8222f5..dcb6dc8e077 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java @@ -34,6 +34,7 @@ import java.util.HashMap; import java.util.Properties; import java.util.StringTokenizer; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; /** * Provides information about encodings. Depends on the Java runtime @@ -41,7 +42,7 @@ import java.util.StringTokenizer; * to override encoding names and provide the last printable character * for each encoding. * - * @version $Revision: 1.9 $ $Date: 2009/12/01 22:17:31 $ + * @version $Revision: 1.11 $ $Date: 2010-11-01 04:34:44 $ * @author Assaf Arkin */ @@ -324,9 +325,7 @@ public final class Encodings extends Object } if (is == null) { - SecuritySupport ss = SecuritySupport.getInstance(); - is = ss.getResourceAsStream(ObjectFactory.findClassLoader(), - ENCODINGS_FILE); + is = SecuritySupport.getResourceAsStream(ENCODINGS_FILE); } Properties props = new Properties(); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java deleted file mode 100644 index 5b1a591edf0..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ObjectFactory.java +++ /dev/null @@ -1,662 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 08:15:20 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.serializer; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.Properties; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @xsl.usage internal - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 8859254254255146542L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java index 72f79c6a777..3daff744064 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java @@ -175,6 +175,26 @@ public final class OutputPropertiesFactory public static final int S_BUILTIN_OLD_EXTENSIONS_UNIVERSAL_LEN = S_BUILTIN_OLD_EXTENSIONS_UNIVERSAL.length(); + /** + * This non-standard, Oracle-impl only property key is used as if OutputKeys.STANDALONE is specified but + * without writing it out in the declaration; It can be used to reverse the change by Xalan patch 1495. + * Since Xalan patch 1495 can cause incompatible behavior, this property is add for application to neutralize + * the effect of Xalan patch 1495 + */ + /** + *

    Is Standalone

    + * + *
      + *
    • + * yes to indicate the output is intended to be used as standalone + *
    • + *
    • + * no has no effect. + *
    • + *
    + */ + public static final String ORACLE_IS_STANDALONE = "http://www.oracle.com/xml/is-standalone"; + //************************************************************ //* PRIVATE CONSTANTS //************************************************************ diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java deleted file mode 100644 index a037d26a033..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/15 08:15:21 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.serializer; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java deleted file mode 100644 index 556948f5b4d..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SecuritySupport12.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/15 08:15:22 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.serializer; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java index a4d03791576..1e918553be7 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializationHandler.java @@ -124,5 +124,11 @@ public interface SerializationHandler */ public void setDTDEntityExpansion(boolean expand); + /** + * Specify if the output will be treated as a standalone property + * @param isStandalone true if the http://www.oracle.com/xml/is-standalone is set to yes + * @see OutputPropertiesFactory ORACLE_IS_STANDALONE + */ + public void setIsStandalone(boolean b); } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java index fd324fe8070..a47789037d9 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerBase.java @@ -142,6 +142,11 @@ public abstract class SerializerBase */ protected boolean m_standaloneWasSpecified = false; + /** + * Determine if the output is a standalone. + */ + protected boolean m_isStandalone = false; + /** * Flag to tell if indenting (pretty-printing) is on. */ @@ -739,6 +744,16 @@ public abstract class SerializerBase m_doIndent = doIndent; } + /** + * Sets the isStandalone property + * @param isStandalone true if the ORACLE_IS_STANDALONE is set to yes + * @see OutputPropertiesFactory ORACLE_IS_STANDALONE + */ + public void setIsStandalone(boolean isStandalone) + { + m_isStandalone = isStandalone; + } + /** * This method is used when a prefix/uri namespace mapping * is indicated after the element was started with a diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java index 4a8192b4497..358c4f25bb6 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java @@ -29,6 +29,7 @@ import javax.xml.transform.OutputKeys; import com.sun.org.apache.xml.internal.serializer.utils.MsgKey; import com.sun.org.apache.xml.internal.serializer.utils.Utils; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; import org.xml.sax.ContentHandler; /** @@ -126,9 +127,7 @@ public final class SerializerFactory - ClassLoader loader = ObjectFactory.findClassLoader(); - - Class cls = ObjectFactory.findProviderClass(className, loader, true); + Class cls = ObjectFactory.findProviderClass(className, true); // _serializers.put(method, cls); @@ -156,7 +155,7 @@ public final class SerializerFactory * SAX ContentHandler events to the users handler. */ className = SerializerConstants.DEFAULT_SAX_SERIALIZER; - cls = ObjectFactory.findProviderClass(className, loader, true); + cls = ObjectFactory.findProviderClass(className, true); SerializationHandler sh = (SerializationHandler) cls.newInstance(); sh.setContentHandler( (ContentHandler) obj); diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java index fd4801e7750..596a6418e53 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLSAXHandler.java @@ -56,7 +56,7 @@ public final class ToHTMLSAXHandler extends ToSAXHandler /** * Keeps track of whether output escaping is currently enabled */ - protected boolean m_escapeSetting = false; + protected boolean m_escapeSetting = true; /** * Returns null. @@ -742,6 +742,6 @@ public final class ToHTMLSAXHandler extends ToSAXHandler */ private void resetToHTMLSAXHandler() { - this.m_escapeSetting = false; + this.m_escapeSetting = true; } } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java index aa48eaed8b4..94fbce6d64e 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java @@ -58,7 +58,7 @@ public final class ToHTMLStream extends ToStream * Map that tells which XML characters should have special treatment, and it * provides character to entity name lookup. */ - private static final CharInfo m_htmlcharInfo = + private final CharInfo m_htmlcharInfo = // new CharInfo(CharInfo.HTML_ENTITIES_RESOURCE); CharInfo.getCharInfo(CharInfo.HTML_ENTITIES_RESOURCE, Method.HTML); @@ -1369,7 +1369,7 @@ public final class ToHTMLStream extends ToStream // System.out.println("ch: "+(int)ch); // System.out.println("m_maxCharacter: "+(int)m_maxCharacter); // System.out.println("m_attrCharsMap[ch]: "+(int)m_attrCharsMap[ch]); - if (escapingNotNeeded(ch) && (!m_charInfo.isSpecialAttrChar(ch))) + if (escapingNotNeeded(ch) && (!m_charInfo.shouldMapAttrChar(ch))) { cleanLength++; } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java index e09f6809555..cf07a695c83 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java @@ -919,7 +919,8 @@ abstract public class ToStream extends SerializerBase { // This is the old/fast code here, but is this // correct for all encodings? - if (ch >= 0x20 || (0x0A == ch || 0x0D == ch || 0x09 == ch)) + if (ch >= CharInfo.S_SPACE || (CharInfo.S_LINEFEED == ch || + CharInfo.S_CARRIAGERETURN == ch || CharInfo.S_HORIZONAL_TAB == ch)) ret= true; else ret = false; @@ -1028,7 +1029,7 @@ abstract public class ToStream extends SerializerBase * * @throws java.io.IOException */ - protected int accumDefaultEntity( + int accumDefaultEntity( java.io.Writer writer, char ch, int i, @@ -1047,7 +1048,7 @@ abstract public class ToStream extends SerializerBase { // if this is text node character and a special one of those, // or if this is a character from attribute value and a special one of those - if ((fromTextNode && m_charInfo.isSpecialTextChar(ch)) || (!fromTextNode && m_charInfo.isSpecialAttrChar(ch))) + if ((fromTextNode && m_charInfo.shouldMapTextChar(ch)) || (!fromTextNode && m_charInfo.shouldMapAttrChar(ch))) { String outputStringForChar = m_charInfo.getOutputStringForChar(ch); @@ -1398,7 +1399,6 @@ abstract public class ToStream extends SerializerBase if (m_cdataTagOpen) closeCDATA(); - // the check with _escaping is a bit of a hack for XLSTC if (m_disableOutputEscapingStates.peekOrFalse() || (!m_escaping)) { @@ -1421,82 +1421,173 @@ abstract public class ToStream extends SerializerBase try { int i; - char ch1; int startClean; // skip any leading whitspace // don't go off the end and use a hand inlined version // of isWhitespace(ch) final int end = start + length; - int lastDirty = start - 1; // last character that needed processing - for (i = start; - ((i < end) - && ((ch1 = chars[i]) == 0x20 - || (ch1 == 0xA && m_lineSepUse) - || ch1 == 0xD - || ch1 == 0x09)); - i++) - { - /* - * We are processing leading whitespace, but are doing the same - * processing for dirty characters here as for non-whitespace. - * - */ - if (!m_charInfo.isTextASCIIClean(ch1)) - { - lastDirty = processDirty(chars,end, i,ch1, lastDirty, true); - i = lastDirty; + int lastDirtyCharProcessed = start - 1; // last non-clean character that was processed + // that was processed + final Writer writer = m_writer; + boolean isAllWhitespace = true; + + // process any leading whitspace + i = start; + while (i < end && isAllWhitespace) { + char ch1 = chars[i]; + + if (m_charInfo.shouldMapTextChar(ch1)) { + // The character is supposed to be replaced by a String + // so write out the clean whitespace characters accumulated + // so far + // then the String. + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + String outputStringForChar = m_charInfo + .getOutputStringForChar(ch1); + writer.write(outputStringForChar); + // We can't say that everything we are writing out is + // all whitespace, we just wrote out a String. + isAllWhitespace = false; + lastDirtyCharProcessed = i; // mark the last non-clean + // character processed + i++; + } else { + // The character is clean, but is it a whitespace ? + switch (ch1) { + // TODO: Any other whitespace to consider? + case CharInfo.S_SPACE: + // Just accumulate the clean whitespace + i++; + break; + case CharInfo.S_LINEFEED: + lastDirtyCharProcessed = processLineFeed(chars, i, + lastDirtyCharProcessed, writer); + i++; + break; + case CharInfo.S_CARRIAGERETURN: + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write(" "); + lastDirtyCharProcessed = i; + i++; + break; + case CharInfo.S_HORIZONAL_TAB: + // Just accumulate the clean whitespace + i++; + break; + default: + // The character was clean, but not a whitespace + // so break the loop to continue with this character + // (we don't increment index i !!) + isAllWhitespace = false; + break; } } + } /* If there is some non-whitespace, mark that we may need * to preserve this. This is only important if we have indentation on. */ - if (i < end) + if (i < end || !isAllWhitespace) m_ispreserve = true; - -// int lengthClean; // number of clean characters in a row -// final boolean[] isAsciiClean = m_charInfo.getASCIIClean(); - - final boolean isXML10 = XMLVERSION10.equals(getVersion()); - // we've skipped the leading whitespace, now deal with the rest for (; i < end; i++) { - { - // A tight loop to skip over common clean chars - // This tight loop makes it easier for the JIT - // to optimize. - char ch2; - while (i "&" + // e.g. '<' --> "<" + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + String outputStringForChar = m_charInfo.getOutputStringForChar(ch); + writer.write(outputStringForChar); + lastDirtyCharProcessed = i; } - else - { - lastDirty = processDirty(chars,end, i, ch, lastDirty, true); - i = lastDirty; + else { + if (ch <= 0x1F) { + // Range 0x00 through 0x1F inclusive + // + // This covers the non-whitespace control characters + // in the range 0x1 to 0x1F inclusive. + // It also covers the whitespace control characters in the same way: + // 0x9 TAB + // 0xA NEW LINE + // 0xD CARRIAGE RETURN + // + // We also cover 0x0 ... It isn't valid + // but we will output "�" + + // The default will handle this just fine, but this + // is a little performance boost to handle the more + // common TAB, NEW-LINE, CARRIAGE-RETURN + switch (ch) { + + case CharInfo.S_HORIZONAL_TAB: + // Leave whitespace TAB as a real character + break; + case CharInfo.S_LINEFEED: + lastDirtyCharProcessed = processLineFeed(chars, i, lastDirtyCharProcessed, writer); + break; + case CharInfo.S_CARRIAGERETURN: + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write(" "); + lastDirtyCharProcessed = i; + // Leave whitespace carriage return as a real character + break; + default: + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + lastDirtyCharProcessed = i; + break; + + } + } + else if (ch < 0x7F) { + // Range 0x20 through 0x7E inclusive + // Normal ASCII chars, do nothing, just add it to + // the clean characters + + } + else if (ch <= 0x9F){ + // Range 0x7F through 0x9F inclusive + // More control characters, including NEL (0x85) + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + lastDirtyCharProcessed = i; + } + else if (ch == CharInfo.S_LINE_SEPARATOR) { + // LINE SEPARATOR + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write("
"); + lastDirtyCharProcessed = i; + } + else if (m_encodingInfo.isInEncoding(ch)) { + // If the character is in the encoding, and + // not in the normal ASCII range, we also + // just leave it get added on to the clean characters + + } + else { + // This is a fallback plan, we should never get here + // but if the character wasn't previously handled + // (i.e. isn't in the encoding, etc.) then what + // should we do? We choose to write out an entity + writeOutCleanChars(chars, i, lastDirtyCharProcessed); + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + lastDirtyCharProcessed = i; + } } } // we've reached the end. Any clean characters at the // end of the array than need to be written out? - startClean = lastDirty + 1; + startClean = lastDirtyCharProcessed + 1; if (i > startClean) { int lengthClean = i - startClean; @@ -1515,6 +1606,32 @@ abstract public class ToStream extends SerializerBase if (m_tracer != null) super.fireCharEvent(chars, start, length); } + + private int processLineFeed(final char[] chars, int i, int lastProcessed, final Writer writer) throws IOException { + if (!m_lineSepUse + || (m_lineSepLen ==1 && m_lineSep[0] == CharInfo.S_LINEFEED)){ + // We are leaving the new-line alone, and it is just + // being added to the 'clean' characters, + // so the last dirty character processed remains unchanged + } + else { + writeOutCleanChars(chars, i, lastProcessed); + writer.write(m_lineSep, 0, m_lineSepLen); + lastProcessed = i; + } + return lastProcessed; + } + + private void writeOutCleanChars(final char[] chars, int i, int lastProcessed) throws IOException { + int startClean; + startClean = lastProcessed + 1; + if (startClean < i) + { + int lengthClean = i - startClean; + m_writer.write(chars, startClean, lengthClean); + } + } + /** * This method checks if a given character is between C0 or C1 range * of Control characters. @@ -1634,7 +1751,7 @@ abstract public class ToStream extends SerializerBase * * @throws org.xml.sax.SAXException */ - protected int accumDefaultEscape( + private int accumDefaultEscape( Writer writer, char ch, int i, @@ -1698,16 +1815,15 @@ abstract public class ToStream extends SerializerBase * to write it out as Numeric Character Reference(NCR) regardless of XML Version * being used for output document. */ - if (isCharacterInC0orC1Range(ch) || - (XMLVERSION11.equals(getVersion()) && isNELorLSEPCharacter(ch))) + if (isCharacterInC0orC1Range(ch) || isNELorLSEPCharacter(ch)) { writer.write("&#"); writer.write(Integer.toString(ch)); writer.write(';'); } else if ((!escapingNotNeeded(ch) || - ( (fromTextNode && m_charInfo.isSpecialTextChar(ch)) - || (!fromTextNode && m_charInfo.isSpecialAttrChar(ch)))) + ( (fromTextNode && m_charInfo.shouldMapTextChar(ch)) + || (!fromTextNode && m_charInfo.shouldMapAttrChar(ch)))) && m_elemContext.m_currentElemDepth > 0) { writer.write("&#"); @@ -1971,28 +2087,86 @@ abstract public class ToStream extends SerializerBase string.getChars(0,len, m_attrBuff, 0); final char[] stringChars = m_attrBuff; - for (int i = 0; i < len; ) + for (int i = 0; i < len;) { char ch = stringChars[i]; - if (escapingNotNeeded(ch) && (!m_charInfo.isSpecialAttrChar(ch))) - { - writer.write(ch); - i++; - } - else - { // I guess the parser doesn't normalize cr/lf in attributes. -sb -// if ((CharInfo.S_CARRIAGERETURN == ch) -// && ((i + 1) < len) -// && (CharInfo.S_LINEFEED == stringChars[i + 1])) -// { -// i++; -// ch = CharInfo.S_LINEFEED; -// } + if (m_charInfo.shouldMapAttrChar(ch) || !(escapingNotNeeded(ch))) { + // The character is supposed to be replaced by a String + // e.g. '&' --> "&" + // e.g. '<' --> "<" i = accumDefaultEscape(writer, ch, i, stringChars, len, false, true); } - } + else { + i++; + if (0x0 <= ch && ch <= 0x1F) { + // Range 0x00 through 0x1F inclusive + // This covers the non-whitespace control characters + // in the range 0x1 to 0x1F inclusive. + // It also covers the whitespace control characters in the same way: + // 0x9 TAB + // 0xA NEW LINE + // 0xD CARRIAGE RETURN + // + // We also cover 0x0 ... It isn't valid + // but we will output "�" + // The default will handle this just fine, but this + // is a little performance boost to handle the more + // common TAB, NEW-LINE, CARRIAGE-RETURN + switch (ch) { + + case CharInfo.S_HORIZONAL_TAB: + writer.write(" "); + break; + case CharInfo.S_LINEFEED: + writer.write(" "); + break; + case CharInfo.S_CARRIAGERETURN: + writer.write(" "); + break; + default: + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + break; + + } + } + else if (ch < 0x7F) { + // Range 0x20 through 0x7E inclusive + // Normal ASCII chars + writer.write(ch); + } + else if (ch <= 0x9F){ + // Range 0x7F through 0x9F inclusive + // More control characters + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + } + else if (ch == CharInfo.S_LINE_SEPARATOR) { + // LINE SEPARATOR + writer.write("
"); + } + else if (m_encodingInfo.isInEncoding(ch)) { + // If the character is in the encoding, and + // not in the normal ASCII range, we also + // just write it out + writer.write(ch); + } + else { + // This is a fallback plan, we should never get here + // but if the character wasn't previously handled + // (i.e. isn't in the encoding, etc.) then what + // should we do? We choose to write out a character ref + writer.write("&#"); + writer.write(Integer.toString(ch)); + writer.write(';'); + } + + } + } } /** @@ -2219,13 +2393,17 @@ abstract public class ToStream extends SerializerBase try { - if (shouldIndent()) + if (shouldIndent() && m_isStandalone) indent(); final int limit = start + length; boolean wasDash = false; if (m_cdataTagOpen) closeCDATA(); + + if (shouldIndent() && !m_isStandalone) + indent(); + final java.io.Writer writer = m_writer; writer.write(COMMENT_BEGIN); // Detect occurrences of two consecutive dashes, handle as necessary. @@ -2258,6 +2436,15 @@ abstract public class ToStream extends SerializerBase throw new SAXException(e); } + /* + * Don't write out any indentation whitespace now, + * because there may be non-whitespace text after this. + * + * Simply mark that at this point if we do decide + * to indent that we should + * add a newline on the end of the current line before + * the indentation at the start of the next line. + */ m_startNewLine = true; // time to generate comment event if (m_tracer != null) @@ -2506,7 +2693,7 @@ abstract public class ToStream extends SerializerBase */ protected boolean shouldIndent() { - return m_doIndent && (!m_ispreserve && !m_isprevtext); + return m_doIndent && (!m_ispreserve && !m_isprevtext) && (m_elemContext.m_currentElemDepth > 0 || m_isStandalone); } /** @@ -2749,6 +2936,14 @@ abstract public class ToStream extends SerializerBase closeCDATA(); m_cdataTagOpen = false; } + if (m_writer != null) { + try { + m_writer.flush(); + } + catch(IOException e) { + // what? me worry? + } + } } public void setContentHandler(ContentHandler ch) diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java index 6cdb5917570..7b165e4116f 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLSAXHandler.java @@ -50,7 +50,7 @@ public final class ToXMLSAXHandler extends ToSAXHandler /** * Keeps track of whether output escaping is currently enabled */ - protected boolean m_escapeSetting = false; + protected boolean m_escapeSetting = true; public ToXMLSAXHandler() { @@ -772,7 +772,7 @@ public final class ToXMLSAXHandler extends ToSAXHandler */ private void resetToXMLSAXHandler() { - this.m_escapeSetting = false; + this.m_escapeSetting = true; } } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java index b70e9e38bc0..51e1331144a 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java @@ -56,7 +56,7 @@ public final class ToXMLStream extends ToStream * Map that tells which XML characters should have special treatment, and it * provides character to entity name lookup. */ - private static CharInfo m_xmlcharInfo = + private CharInfo m_xmlcharInfo = // new CharInfo(CharInfo.XML_ENTITIES_RESOURCE); CharInfo.getCharInfo(CharInfo.XML_ENTITIES_RESOURCE, Method.XML); @@ -160,8 +160,23 @@ public final class ToXMLStream extends ToStream writer.write('\"'); writer.write(standalone); writer.write("?>"); - if (m_doIndent) - writer.write(m_lineSep, 0, m_lineSepLen); + if (m_doIndent) { + if (m_standaloneWasSpecified + || getDoctypePublic() != null + || getDoctypeSystem() != null + || m_isStandalone) { + // We almost never put a newline after the XML + // header because this XML could be used as + // an extenal general parsed entity + // and we don't know the context into which it + // will be used in the future. Only when + // standalone, or a doctype system or public is + // specified are we free to insert a new line + // after the header. Is it even worth bothering + // in these rare cases? + writer.write(m_lineSep, 0, m_lineSepLen); + } + } } catch(IOException e) { @@ -312,12 +327,22 @@ public final class ToXMLStream extends ToStream writer.write('?'); writer.write('>'); - // Always output a newline char if not inside of an - // element. The whitespace is not significant in that - // case. - if (m_elemContext.m_currentElemDepth <= 0) + /** + * Before Xalan 1497, a newline char was printed out if not inside of an + * element. The whitespace is not significant if the output is standalone + */ + if (m_elemContext.m_currentElemDepth <= 0 && m_isStandalone) writer.write(m_lineSep, 0, m_lineSepLen); + /* + * Don't write out any indentation whitespace now, + * because there may be non-whitespace text after this. + * + * Simply mark that at this point if we do decide + * to indent that we should + * add a newline on the end of the current line before + * the indentation at the start of the next line. + */ m_startNewLine = true; } catch(IOException e) diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java index f6b8bd8460c..b9291ccdb10 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/WriterToUTF8Buffered.java @@ -204,10 +204,10 @@ final class WriterToUTF8Buffered extends Writer implements WriterChain */ int split = length/CHARS_MAX; final int chunks; - if (split > 1) - chunks = split; + if (length % CHARS_MAX > 0) + chunks = split + 1; else - chunks = 2; + chunks = split; int end_chunk = start; for (int chunk = 1; chunk <= chunks; chunk++) { @@ -339,10 +339,10 @@ final class WriterToUTF8Buffered extends Writer implements WriterChain final int start = 0; int split = length/CHARS_MAX; final int chunks; - if (split > 1) - chunks = split; + if (length % CHARS_MAX > 0) + chunks = split + 1; else - chunks = 2; + chunks = split; int end_chunk = 0; for (int chunk = 1; chunk <= chunks; chunk++) { diff --git a/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java index 0aa1307b620..8af2fd8a1b4 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/URI.java @@ -502,7 +502,7 @@ final class URI // if we get to this point, we need to resolve relative path // RFC 2396 5.2 #6 - String path = new String(); + String path = ""; String basePath = p_base.getPath(); // 6a - get all but the last segment of the base URI path diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java deleted file mode 100644 index 9628c5eb1f8..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectFactory.java +++ /dev/null @@ -1,658 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.3 2005/09/28 13:49:20 pvedula Exp $ - */ - -package com.sun.org.apache.xml.internal.utils; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.8 2008/04/02 00:41:01 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - FileInputStream fis = null; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - fis = ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - FileInputStream fis = null; - try { - fis = ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - finally { - // try to close the input stream if one was opened. - if (fis != null) { - try { - fis.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - try{ - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - }catch(SecurityException e){ - throw e; - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - } catch (IOException x) { - // No provider found - return null; - } - finally { - try { - // try to close the reader. - rd.close(); - } - // Ignore the exception. - catch (IOException exc) {} - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - static final long serialVersionUID = 2036619216663421552L; - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java index 09a2c2b34f1..fb75bc46dc1 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/ObjectPool.java @@ -22,10 +22,11 @@ */ package com.sun.org.apache.xml.internal.utils; -import java.util.Vector; +import java.util.ArrayList; import com.sun.org.apache.xml.internal.res.XMLErrorResources; import com.sun.org.apache.xml.internal.res.XMLMessages; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; /** @@ -40,9 +41,9 @@ public class ObjectPool implements java.io.Serializable * @serial */ private final Class objectType; - /** Vector of given objects this points to. + /** Stack of given objects this points to. * @serial */ - private final Vector freeStack; + private final ArrayList freeStack; /** * Constructor ObjectPool @@ -52,7 +53,7 @@ public class ObjectPool implements java.io.Serializable public ObjectPool(Class type) { objectType = type; - freeStack = new Vector(); + freeStack = new ArrayList(); } /** @@ -64,14 +65,13 @@ public class ObjectPool implements java.io.Serializable { try { - objectType = ObjectFactory.findProviderClass( - className, ObjectFactory.findClassLoader(), true); + objectType = ObjectFactory.findProviderClass(className, true); } catch(ClassNotFoundException cnfe) { throw new WrappedRuntimeException(cnfe); } - freeStack = new Vector(); + freeStack = new ArrayList(); } @@ -85,7 +85,7 @@ public class ObjectPool implements java.io.Serializable public ObjectPool(Class type, int size) { objectType = type; - freeStack = new Vector(size); + freeStack = new ArrayList(size); } /** @@ -95,7 +95,7 @@ public class ObjectPool implements java.io.Serializable public ObjectPool() { objectType = null; - freeStack = new Vector(); + freeStack = new ArrayList(); } /** @@ -112,10 +112,7 @@ public class ObjectPool implements java.io.Serializable { // Remove object from end of free pool. - Object result = freeStack.lastElement(); - - freeStack.setSize(freeStack.size() - 1); - + Object result = freeStack.remove(freeStack.size() - 1); return result; } @@ -150,10 +147,7 @@ public class ObjectPool implements java.io.Serializable { // Remove object from end of free pool. - Object result = freeStack.lastElement(); - - freeStack.setSize(freeStack.size() - 1); - + Object result = freeStack.remove(freeStack.size() - 1); return result; } } @@ -171,7 +165,7 @@ public class ObjectPool implements java.io.Serializable // Remove safety. -sb // if (objectType.isInstance(obj)) // { - freeStack.addElement(obj); + freeStack.add(obj); // } // else // { diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java deleted file mode 100644 index e66f70ac21c..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.2.4.1 2005/09/15 08:15:53 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.utils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java deleted file mode 100644 index 0d2be96e398..00000000000 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.2.4.1 2005/09/15 08:15:53 suresh_emailid Exp $ - */ - -package com.sun.org.apache.xml.internal.utils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java index 3bfc1be10b5..a26a00684ba 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java @@ -153,9 +153,25 @@ public class TreeWalker */ public void traverse(Node pos) throws org.xml.sax.SAXException { - this.m_contentHandler.startDocument(); + traverseFragment(pos); + + this.m_contentHandler.endDocument(); + } + + /** + * Perform a pre-order traversal non-recursive style. + * + * In contrast to the traverse() method this method will not issue + * startDocument() and endDocument() events to the SAX listener. + * + * @param pos Node in the tree where to start traversal + * + * @throws TransformerException + */ + public void traverseFragment(Node pos) throws org.xml.sax.SAXException + { Node top = pos; while (null != pos) @@ -191,7 +207,6 @@ public class TreeWalker pos = nextNode; } - this.m_contentHandler.endDocument(); } /** diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java index 7ae25793667..b2606a7134e 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/URI.java @@ -522,7 +522,7 @@ public class URI implements Serializable // if we get to this point, we need to resolve relative path // RFC 2396 5.2 #6 - String path = new String(); + String path = ""; String basePath = p_base.getPath(); // 6a - get all but the last segment of the base URI path diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java index 4778d9aec6b..20ed918f909 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java @@ -22,6 +22,8 @@ */ package com.sun.org.apache.xml.internal.utils; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import java.util.HashMap; import javax.xml.parsers.FactoryConfigurationError; @@ -60,6 +62,7 @@ public class XMLReaderManager { */ private HashMap m_inUse; + private boolean m_useServicesMechanism = true; /** * Hidden constructor */ @@ -69,7 +72,8 @@ public class XMLReaderManager { /** * Retrieves the singleton reader manager */ - public static XMLReaderManager getInstance() { + public static XMLReaderManager getInstance(boolean useServicesMechanism) { + m_singletonManager.setServicesMechnism(useServicesMechanism); return m_singletonManager; } @@ -97,7 +101,7 @@ public class XMLReaderManager { // instance of the class set in the 'org.xml.sax.driver' property reader = (XMLReader) m_readers.get(); boolean threadHasReader = (reader != null); - String factory = SecuritySupport.getInstance().getSystemProperty(property); + String factory = SecuritySupport.getSystemProperty(property); if (threadHasReader && m_inUse.get(reader) != Boolean.TRUE && ( factory == null || reader.getClass().getName().equals(factory))) { m_inUse.put(reader, Boolean.TRUE); @@ -115,7 +119,7 @@ public class XMLReaderManager { // If unable to create an instance, let's try to use // the XMLReader from JAXP if (m_parserFactory == null) { - m_parserFactory = SAXParserFactory.newInstance(); + m_parserFactory = FactoryImpl.getSAXFactory(m_useServicesMechanism); m_parserFactory.setNamespaceAware(true); } @@ -163,4 +167,18 @@ public class XMLReaderManager { m_inUse.remove(reader); } } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return m_useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + m_useServicesMechanism = flag; + } + } diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java index ac96a6b936e..e8de6f35191 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLString.java @@ -127,7 +127,7 @@ public interface XMLString /** * Compares this string to the specified object. * The result is true if and only if the argument is not - * null and is a String object that represents + * null and is an XMLString object that represents * the same sequence of characters as this object. * * @param anObject the object to compare this String @@ -139,6 +139,20 @@ public interface XMLString */ public abstract boolean equals(XMLString anObject); + /** + * Compares this string to the specified String. + * The result is true if and only if the argument is not + * null and is a String object that represents + * the same sequence of characters as this object. + * + * @param anotherString the object to compare this String + * against. + * @return true if the Strings are equal; + * false otherwise. + * @see java.lang.String#compareTo(java.lang.String) + * @see java.lang.String#equalsIgnoreCase(java.lang.String) + */ + public abstract boolean equals(String anotherString); /** * Compares this string to the specified object. diff --git a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java index e681aeacea9..3953c863cc4 100644 --- a/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java +++ b/jaxp/src/com/sun/org/apache/xml/internal/utils/XMLStringDefault.java @@ -152,6 +152,22 @@ public class XMLStringDefault implements XMLString } } + /** + * Compares this string to the specified String. + * The result is true if and only if the argument is not + * null and is a String object that represents + * the same sequence of characters as this object. + * + * @param obj2 the object to compare this String against. + * @return true if the Strings are equal; + * false otherwise. + * @see java.lang.String#compareTo(java.lang.String) + * @see java.lang.String#equalsIgnoreCase(java.lang.String) + */ + public boolean equals(String obj2) { + return m_str.equals(obj2); + } + /** * Compares this string to the specified object. * The result is true if and only if the argument is not diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java b/jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java index eef7347d87f..dc1063e8f3d 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java @@ -96,6 +96,8 @@ public class XPathContext extends DTMManager // implements ExpressionContext */ private boolean m_isSecureProcessing = false; + private boolean m_useServicesMechanism = true; + /** * Though XPathContext context extends * the DTMManager, it really is a proxy for this object, which @@ -308,13 +310,14 @@ public class XPathContext extends DTMManager // implements ExpressionContext */ public XPathContext() { - m_prefixResolvers.push(null); - m_currentNodes.push(DTM.NULL); - m_currentExpressionNodes.push(DTM.NULL); - m_saxLocations.push(null); + this(true); } + public XPathContext(boolean useServicesMechanism) { + init(useServicesMechanism); + } /** + **This constructor doesn't seem to be used anywhere -- huizhe wang** * Create an XPathContext instance. * @param owner Value that can be retrieved via the getOwnerObject() method. * @see #getOwnerObject @@ -326,10 +329,18 @@ public class XPathContext extends DTMManager // implements ExpressionContext m_ownerGetErrorListener = m_owner.getClass().getMethod("getErrorListener", new Class[] {}); } catch (NoSuchMethodException nsme) {} + init(true); + } + + private void init(boolean useServicesMechanism) { m_prefixResolvers.push(null); m_currentNodes.push(DTM.NULL); m_currentExpressionNodes.push(DTM.NULL); m_saxLocations.push(null); + m_useServicesMechanism = useServicesMechanism; + m_dtmManager = DTMManager.newInstance( + com.sun.org.apache.xpath.internal.objects.XMLStringFactoryImpl.getFactory(), + m_useServicesMechanism); } /** @@ -352,7 +363,8 @@ public class XPathContext extends DTMManager // implements ExpressionContext m_dtmManager = DTMManager.newInstance( - com.sun.org.apache.xpath.internal.objects.XMLStringFactoryImpl.getFactory()); + com.sun.org.apache.xpath.internal.objects.XMLStringFactoryImpl.getFactory(), + m_useServicesMechanism); m_saxLocations.removeAllElements(); m_axesIteratorStack.removeAllElements(); @@ -1098,6 +1110,19 @@ public class XPathContext extends DTMManager // implements ExpressionContext { return XPathContext.this.getErrorListener(); } + /** + * Return the state of the services mechanism feature. + */ + public boolean useServicesMechnism() { + return m_useServicesMechanism; + } + + /** + * Set the state of the services mechanism feature. + */ + public void setServicesMechnism(boolean flag) { + m_useServicesMechanism = flag; + } /** * Get the value of a node as a number. diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java index 0369779b9f4..1834264de50 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/AxesWalker.java @@ -427,7 +427,7 @@ public class AxesWalker extends PredicatedNodeTest return -1; } - walker.setPredicateCount(walker.getPredicateCount() - 1); + walker.setPredicateCount(m_predicateIndex); walker.setNextWalker(null); walker.setPrevWalker(null); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java index 5740affe42f..cbea6db7e0b 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/BasicTestIterator.java @@ -27,6 +27,7 @@ import com.sun.org.apache.xml.internal.dtm.DTMFilter; import com.sun.org.apache.xml.internal.dtm.DTMIterator; import com.sun.org.apache.xml.internal.utils.PrefixResolver; import com.sun.org.apache.xpath.internal.compiler.Compiler; +import com.sun.org.apache.xpath.internal.compiler.OpMap; /** * Base for iterators that handle predicates. Does the basic next @@ -76,7 +77,7 @@ public abstract class BasicTestIterator extends LocPathIterator { super(compiler, opPos, analysis, false); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); int whatToShow = compiler.getWhatToShow(firstStepPos); if ((0 == (whatToShow diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java index d8990af21ac..729f89d629f 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/DescendantIterator.java @@ -31,7 +31,9 @@ import com.sun.org.apache.xpath.internal.Expression; import com.sun.org.apache.xpath.internal.XPathContext; import com.sun.org.apache.xpath.internal.compiler.Compiler; import com.sun.org.apache.xpath.internal.compiler.OpCodes; +import com.sun.org.apache.xpath.internal.compiler.OpMap; import com.sun.org.apache.xpath.internal.patterns.NodeTest; +import org.w3c.dom.DOMException; /** * This class implements an optimized iterator for @@ -57,7 +59,7 @@ public class DescendantIterator extends LocPathIterator super(compiler, opPos, analysis, false); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); int stepType = compiler.getOp(firstStepPos); boolean orSelf = (OpCodes.FROM_DESCENDANTS_OR_SELF == stepType); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java index 4c8094dc7fc..ccaca31daef 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/IteratorPool.java @@ -22,7 +22,7 @@ */ package com.sun.org.apache.xpath.internal.axes; -import java.util.Vector; +import java.util.ArrayList; import com.sun.org.apache.xml.internal.dtm.DTMIterator; import com.sun.org.apache.xml.internal.utils.WrappedRuntimeException; @@ -31,17 +31,19 @@ import com.sun.org.apache.xml.internal.utils.WrappedRuntimeException; * Pool of object of a given type to pick from to help memory usage * @xsl.usage internal */ -public class IteratorPool implements java.io.Serializable +public final class IteratorPool implements java.io.Serializable { static final long serialVersionUID = -460927331149566998L; - /** Type of objects in this pool. - * @serial */ + /** + * Type of objects in this pool. + */ private final DTMIterator m_orig; - /** Vector of given objects this points to. - * @serial */ - private final Vector m_freeStack; + /** + * Stack of given objects this points to. + */ + private final ArrayList m_freeStack; /** * Constructor IteratorPool @@ -51,7 +53,7 @@ public class IteratorPool implements java.io.Serializable public IteratorPool(DTMIterator original) { m_orig = original; - m_freeStack = new Vector(); + m_freeStack = new ArrayList(); } /** @@ -72,10 +74,7 @@ public class IteratorPool implements java.io.Serializable else { // Remove object from end of free pool. - DTMIterator result = (DTMIterator)m_freeStack.lastElement(); - - m_freeStack.setSize(m_freeStack.size() - 1); - + DTMIterator result = (DTMIterator)m_freeStack.remove(m_freeStack.size() - 1); return result; } } @@ -104,10 +103,7 @@ public class IteratorPool implements java.io.Serializable else { // Remove object from end of free pool. - DTMIterator result = (DTMIterator)m_freeStack.lastElement(); - - m_freeStack.setSize(m_freeStack.size() - 1); - + DTMIterator result = (DTMIterator)m_freeStack.remove(m_freeStack.size() - 1); return result; } } @@ -120,6 +116,6 @@ public class IteratorPool implements java.io.Serializable */ public synchronized void freeInstance(DTMIterator obj) { - m_freeStack.addElement(obj); + m_freeStack.add(obj); } } diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java index b7e36493afb..edba3a272a4 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java @@ -28,6 +28,7 @@ import com.sun.org.apache.xml.internal.dtm.DTMAxisTraverser; import com.sun.org.apache.xml.internal.dtm.DTMIterator; import com.sun.org.apache.xpath.internal.XPathContext; import com.sun.org.apache.xpath.internal.compiler.Compiler; +import com.sun.org.apache.xpath.internal.compiler.OpMap; import com.sun.org.apache.xpath.internal.objects.XObject; import com.sun.org.apache.xpath.internal.patterns.NodeTest; import com.sun.org.apache.xpath.internal.patterns.StepPattern; @@ -78,7 +79,7 @@ public class MatchPatternIterator extends LocPathIterator super(compiler, opPos, analysis, false); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); m_pattern = WalkerFactory.loadSteps(this, compiler, firstStepPos, 0); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java index 9ec79e873e8..539068498dc 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIterator.java @@ -29,6 +29,7 @@ import com.sun.org.apache.xml.internal.dtm.DTMIterator; import com.sun.org.apache.xpath.internal.Expression; import com.sun.org.apache.xpath.internal.XPathContext; import com.sun.org.apache.xpath.internal.compiler.Compiler; +import com.sun.org.apache.xpath.internal.compiler.OpMap; /** * This class implements a general iterator for @@ -58,7 +59,7 @@ public class OneStepIterator extends ChildTestIterator throws javax.xml.transform.TransformerException { super(compiler, opPos, analysis); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); m_axis = WalkerFactory.getAxisFromStep(compiler, firstStepPos); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java index eb78eee6591..ea1a8291414 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/OneStepIteratorForward.java @@ -26,6 +26,7 @@ import com.sun.org.apache.xml.internal.dtm.DTM; import com.sun.org.apache.xml.internal.dtm.DTMFilter; import com.sun.org.apache.xpath.internal.Expression; import com.sun.org.apache.xpath.internal.compiler.Compiler; +import com.sun.org.apache.xpath.internal.compiler.OpMap; /** * This class implements a general iterator for @@ -54,7 +55,7 @@ public class OneStepIteratorForward extends ChildTestIterator throws javax.xml.transform.TransformerException { super(compiler, opPos, analysis); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); m_axis = WalkerFactory.getAxisFromStep(compiler, firstStepPos); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java index ee448b06bed..c83f4e5ed7b 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java @@ -30,6 +30,7 @@ import com.sun.org.apache.xpath.internal.ExpressionOwner; import com.sun.org.apache.xpath.internal.XPathVisitor; import com.sun.org.apache.xpath.internal.compiler.Compiler; import com.sun.org.apache.xpath.internal.compiler.OpCodes; +import com.sun.org.apache.xpath.internal.compiler.OpMap; /** * This class extends NodeSetDTM, which implements DTMIterator, @@ -160,7 +161,7 @@ public class UnionPathIterator extends LocPathIterator super(); - opPos = compiler.getFirstChildPos(opPos); + opPos = OpMap.getFirstChildPos(opPos); loadLocationPaths(compiler, opPos, 0); } diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java index d4066908635..2f055354618 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java @@ -30,6 +30,7 @@ import com.sun.org.apache.xpath.internal.Expression; import com.sun.org.apache.xpath.internal.compiler.Compiler; import com.sun.org.apache.xpath.internal.compiler.FunctionTable; import com.sun.org.apache.xpath.internal.compiler.OpCodes; +import com.sun.org.apache.xpath.internal.compiler.OpMap; import com.sun.org.apache.xpath.internal.objects.XNumber; import com.sun.org.apache.xpath.internal.patterns.ContextMatchStepPattern; import com.sun.org.apache.xpath.internal.patterns.FunctionPattern; @@ -162,7 +163,7 @@ public class WalkerFactory throws javax.xml.transform.TransformerException { - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); int analysis = analyze(compiler, firstStepPos, 0); boolean isOneStep = isOneStep(analysis); DTMIterator iter; @@ -402,7 +403,7 @@ public class WalkerFactory int opPos) { int endFunc = opPos + compiler.getOp(opPos + 1) - 1; - opPos = compiler.getFirstChildPos(opPos); + opPos = OpMap.getFirstChildPos(opPos); int funcID = compiler.getOp(opPos); // System.out.println("funcID: "+funcID); // System.out.println("opPos: "+opPos); @@ -453,7 +454,7 @@ public class WalkerFactory case OpCodes.OP_LT: case OpCodes.OP_LTE: case OpCodes.OP_EQUALS: - int leftPos = compiler.getFirstChildPos(op); + int leftPos = OpMap.getFirstChildPos(op); int rightPos = compiler.getNextOpPos(leftPos); isProx = isProximateInnerExpr(compiler, leftPos); if(isProx) @@ -521,7 +522,7 @@ public class WalkerFactory case OpCodes.OP_LT: case OpCodes.OP_LTE: case OpCodes.OP_EQUALS: - int leftPos = compiler.getFirstChildPos(innerExprOpPos); + int leftPos = OpMap.getFirstChildPos(innerExprOpPos); int rightPos = compiler.getNextOpPos(leftPos); isProx = isProximateInnerExpr(compiler, leftPos); if(isProx) @@ -984,9 +985,7 @@ public class WalkerFactory int stepType = compiler.getOp(opPos); boolean simpleInit = false; - int totalNumberWalkers = (analysis & BITS_COUNT); boolean prevIsOneStepDown = true; - int firstStepPos = compiler.getFirstChildPos(opPos); int whatToShow = compiler.getWhatToShow(opPos); StepPattern ai = null; @@ -1286,7 +1285,7 @@ public class WalkerFactory public static String getAnalysisString(int analysis) { StringBuffer buf = new StringBuffer(); - buf.append("count: "+getStepCount(analysis)+" "); + buf.append("count: ").append(getStepCount(analysis)).append(' '); if((analysis & BIT_NODETEST_ANY) != 0) { buf.append("NTANY|"); diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java index c78fc96bc9b..08502fe68d2 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java @@ -29,6 +29,7 @@ import com.sun.org.apache.xpath.internal.ExpressionOwner; import com.sun.org.apache.xpath.internal.VariableStack; import com.sun.org.apache.xpath.internal.XPathVisitor; import com.sun.org.apache.xpath.internal.compiler.Compiler; +import com.sun.org.apache.xpath.internal.compiler.OpMap; /** * Location path iterator that uses Walkers. @@ -58,7 +59,7 @@ public class WalkingIterator extends LocPathIterator implements ExpressionOwner { super(compiler, opPos, analysis, shouldLoadWalkers); - int firstStepPos = compiler.getFirstChildPos(opPos); + int firstStepPos = OpMap.getFirstChildPos(opPos); if (shouldLoadWalkers) { diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java index 9fa85a59670..683472a423a 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/FuncLoader.java @@ -25,6 +25,8 @@ package com.sun.org.apache.xpath.internal.compiler; import javax.xml.transform.TransformerException; import com.sun.org.apache.xpath.internal.functions.Function; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; +import com.sun.org.apache.xalan.internal.utils.ConfigurationError; /** * Lazy load of functions into the function table as needed, so we don't @@ -96,11 +98,10 @@ public class FuncLoader throw new TransformerException("Application can't install his own xpath function."); } - return (Function) ObjectFactory.newInstance( - className, ObjectFactory.findClassLoader(), true); + return (Function) ObjectFactory.newInstance(className, true); } - catch (ObjectFactory.ConfigurationError e) + catch (ConfigurationError e) { throw new TransformerException(e.getException()); } diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java deleted file mode 100644 index 306d7f3b632..00000000000 --- a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/ObjectFactory.java +++ /dev/null @@ -1,635 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: ObjectFactory.java,v 1.1.2.1 2005/08/01 01:30:35 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xpath.internal.compiler; - -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; -import java.io.BufferedReader; -import java.io.InputStreamReader; - -/** - * This class is duplicated for each JAXP subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the JAXP - * API. - *

    - * This code is designed to implement the JAXP 1.1 spec pluggability - * feature and is designed to run on JDK version 1.1 and - * later, and to compile on JDK 1.2 and onward. - * The code also runs both as part of an unbundled jar file and - * when bundled as part of the JDK. - *

    - * This class was moved from the javax.xml.parsers.ObjectFactory - * class and modified to be used as a general utility for creating objects - * dynamically. - * - * @version $Id: ObjectFactory.java,v 1.6 2008/04/02 00:41:02 joehw Exp $ - */ -class ObjectFactory { - - // - // Constants - // - - // name of default properties file to look for in JDK's jre/lib directory - private static final String DEFAULT_PROPERTIES_FILENAME = - "xalan.properties"; - - private static final String SERVICES_PATH = "META-INF/services/"; - - /** Set to true for debugging */ - private static final boolean DEBUG = false; - - /** cache the contents of the xalan.properties file. - * Until an attempt has been made to read this file, this will - * be null; if the file does not exist or we encounter some other error - * during the read, this will be empty. - */ - private static Properties fXalanProperties = null; - - /*** - * Cache the time stamp of the xalan.properties file so - * that we know if it's been modified and can invalidate - * the cache when necessary. - */ - private static long fLastModified = -1; - - // - // Public static methods - // - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *

      - *
    1. query the system property using System.getProperty - *
    2. read META-INF/services/factoryId file - *
    3. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, String fallbackClassName) - throws ConfigurationError { - return createObject(factoryId, null, fallbackClassName); - } // createObject(String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return instance of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Object createObject(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - Class factoryClass = lookUpFactoryClass(factoryId, - propertiesFilename, - fallbackClassName); - - if (factoryClass == null) { - throw new ConfigurationError( - "Provider for " + factoryId + " cannot be found", null); - } - - try{ - Object instance = factoryClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of factory " + factoryId); - return instance; - } catch (Exception x) { - throw new ConfigurationError( - "Provider for factory " + factoryId - + " could not be instantiated: " + x, x); - } - } // createObject(String,String,String):Object - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object of factory, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId) - throws ConfigurationError - { - return lookUpFactoryClass(factoryId, null, null); - } // lookUpFactoryClass(String):Class - - /** - * Finds the implementation Class object in the specified order. The - * specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return Class object that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static Class lookUpFactoryClass(String factoryId, - String propertiesFilename, - String fallbackClassName) - throws ConfigurationError - { - String factoryClassName = lookUpFactoryClassName(factoryId, - propertiesFilename, - fallbackClassName); - ClassLoader cl = findClassLoader(); - - if (factoryClassName == null) { - factoryClassName = fallbackClassName; - } - - // assert(className != null); - try{ - Class providerClass = findProviderClass(factoryClassName, - cl, - true); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return providerClass; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + factoryClassName + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider "+factoryClassName+" could not be instantiated: "+x, - x); - } - } // lookUpFactoryClass(String,String,String):Class - - /** - * Finds the name of the required implementation class in the specified - * order. The specified order is the following: - *
      - *
    1. query the system property using System.getProperty - *
    2. read $java.home/lib/propertiesFilename file - *
    3. read META-INF/services/factoryId file - *
    4. use fallback classname - *
    - * - * @return name of class that provides factory service, never null - * - * @param factoryId Name of the factory to find, same as - * a property name - * @param propertiesFilename The filename in the $java.home/lib directory - * of the properties file. If none specified, - * ${java.home}/lib/xalan.properties will be used. - * @param fallbackClassName Implementation class name, if nothing else - * is found. Use null to mean no fallback. - * - * @exception ObjectFactory.ConfigurationError - */ - static String lookUpFactoryClassName(String factoryId, - String propertiesFilename, - String fallbackClassName) - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Use the system property first - try { - String systemProp = ss.getSystemProperty(factoryId); - if (systemProp != null) { - if (DEBUG) debugPrintln("found system property, value=" + systemProp); - return systemProp; - } - } catch (SecurityException se) { - // Ignore and continue w/ next location - } - - // Try to read from propertiesFilename, or - // $java.home/lib/xalan.properties - String factoryClassName = null; - // no properties file name specified; use - // $JAVA_HOME/lib/xalan.properties: - if (propertiesFilename == null) { - File propertiesFile = null; - boolean propertiesFileExists = false; - try { - String javah = ss.getSystemProperty("java.home"); - propertiesFilename = javah + File.separator + - "lib" + File.separator + DEFAULT_PROPERTIES_FILENAME; - propertiesFile = new File(propertiesFilename); - propertiesFileExists = ss.getFileExists(propertiesFile); - } catch (SecurityException e) { - // try again... - fLastModified = -1; - fXalanProperties = null; - } - - synchronized (ObjectFactory.class) { - boolean loadProperties = false; - try { - // file existed last time - if(fLastModified >= 0) { - if(propertiesFileExists && - (fLastModified < (fLastModified = ss.getLastModified(propertiesFile)))) { - loadProperties = true; - } else { - // file has stopped existing... - if(!propertiesFileExists) { - fLastModified = -1; - fXalanProperties = null; - } // else, file wasn't modified! - } - } else { - // file has started to exist: - if(propertiesFileExists) { - loadProperties = true; - fLastModified = ss.getLastModified(propertiesFile); - } // else, nothing's changed - } - if(loadProperties) { - // must never have attempted to read xalan.properties - // before (or it's outdeated) - fXalanProperties = new Properties(); - FileInputStream fis = - ss.getFileInputStream(propertiesFile); - fXalanProperties.load(fis); - fis.close(); - } - } catch (Exception x) { - fXalanProperties = null; - fLastModified = -1; - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - } - if(fXalanProperties != null) { - factoryClassName = fXalanProperties.getProperty(factoryId); - } - } else { - try { - FileInputStream fis = - ss.getFileInputStream(new File(propertiesFilename)); - Properties props = new Properties(); - props.load(fis); - fis.close(); - factoryClassName = props.getProperty(factoryId); - } catch (Exception x) { - // assert(x instanceof FileNotFoundException - // || x instanceof SecurityException) - // In both cases, ignore and continue w/ next location - } - } - if (factoryClassName != null) { - if (DEBUG) debugPrintln("found in " + propertiesFilename + ", value=" - + factoryClassName); - return factoryClassName; - } - - // Try Jar Service Provider Mechanism - return findJarServiceProviderName(factoryId); - } // lookUpFactoryClass(String,String):String - - // - // Private static methods - // - - /** Prints a message to standard error if debugging is enabled. */ - private static void debugPrintln(String msg) { - if (DEBUG) { - System.err.println("JAXP: " + msg); - } - } // debugPrintln(String) - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader findClassLoader() - throws ConfigurationError - { - SecuritySupport ss = SecuritySupport.getInstance(); - - // Figure out which ClassLoader to use for loading the provider - // class. If there is a Context ClassLoader then use it. - ClassLoader context = ss.getContextClassLoader(); - ClassLoader system = ss.getSystemClassLoader(); - - ClassLoader chain = system; - while (true) { - if (context == chain) { - // Assert: we are on JDK 1.1 or we have no Context ClassLoader - // or any Context ClassLoader in chain of system classloader - // (including extension ClassLoader) so extend to widest - // ClassLoader (always look in system ClassLoader if Xalan - // is in boot/extension/system classpath and in current - // ClassLoader otherwise); normal classloaders delegate - // back to system ClassLoader first so this widening doesn't - // change the fact that context ClassLoader will be consulted - ClassLoader current = ObjectFactory.class.getClassLoader(); - - chain = system; - while (true) { - if (current == chain) { - // Assert: Current ClassLoader in chain of - // boot/extension/system ClassLoaders - return system; - } - if (chain == null) { - break; - } - chain = ss.getParentClassLoader(chain); - } - - // Assert: Current ClassLoader not in chain of - // boot/extension/system ClassLoaders - return current; - } - - if (chain == null) { - // boot ClassLoader reached - break; - } - - // Check for any extension ClassLoaders in chain up to - // boot ClassLoader - chain = ss.getParentClassLoader(chain); - }; - - // Assert: Context ClassLoader not in chain of - // boot/extension/system ClassLoaders - return context; - } // findClassLoader():ClassLoader - - /** - * Create an instance of a class using the specified ClassLoader - */ - static Object newInstance(String className, ClassLoader cl, - boolean doFallback) - throws ConfigurationError - { - // assert(className != null); - try{ - Class providerClass = findProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); - if (DEBUG) debugPrintln("created new instance of " + providerClass + - " using ClassLoader: " + cl); - return instance; - } catch (ClassNotFoundException x) { - throw new ConfigurationError( - "Provider " + className + " not found", x); - } catch (Exception x) { - throw new ConfigurationError( - "Provider " + className + " could not be instantiated: " + x, - x); - } - } - - /** - * Find a Class using the specified ClassLoader - */ - static Class findProviderClass(String className, ClassLoader cl, - boolean doFallback) - throws ClassNotFoundException, ConfigurationError - { - //throw security exception if the calling thread is not allowed to access the - //class. Restrict the access to the package classes as specified in java.security policy. - SecurityManager security = System.getSecurityManager(); - if (security != null){ - final int lastDot = className.lastIndexOf("."); - String packageName = className; - if (lastDot != -1) - packageName = className.substring(0, lastDot); - security.checkPackageAccess(packageName); - } - - Class providerClass; - if (cl == null) { - // XXX Use the bootstrap ClassLoader. There is no way to - // load a class using the bootstrap ClassLoader that works - // in both JDK 1.1 and Java 2. However, this should still - // work b/c the following should be true: - // - // (cl == null) iff current ClassLoader == null - // - // Thus Class.forName(String) will use the current - // ClassLoader which will be the bootstrap ClassLoader. - providerClass = Class.forName(className); - } else { - try { - providerClass = cl.loadClass(className); - } catch (ClassNotFoundException x) { - if (doFallback) { - // Fall back to current classloader - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (current == null) { - providerClass = Class.forName(className); - } else if (cl != current) { - cl = current; - providerClass = cl.loadClass(className); - } else { - throw x; - } - } else { - throw x; - } - } - } - - return providerClass; - } - - /** - * Find the name of service provider using Jar Service Provider Mechanism - * - * @return instance of provider class if found or null - */ - private static String findJarServiceProviderName(String factoryId) - { - SecuritySupport ss = SecuritySupport.getInstance(); - String serviceId = SERVICES_PATH + factoryId; - InputStream is = null; - - // First try the Context ClassLoader - ClassLoader cl = findClassLoader(); - - is = ss.getResourceAsStream(cl, serviceId); - - // If no provider found then try the current ClassLoader - if (is == null) { - ClassLoader current = ObjectFactory.class.getClassLoader(); - if (cl != current) { - cl = current; - is = ss.getResourceAsStream(cl, serviceId); - } - } - - if (is == null) { - // No provider found - return null; - } - - if (DEBUG) debugPrintln("found jar resource=" + serviceId + - " using ClassLoader: " + cl); - - // Read the service provider name in UTF-8 as specified in - // the jar spec. Unfortunately this fails in Microsoft - // VJ++, which does not implement the UTF-8 - // encoding. Theoretically, we should simply let it fail in - // that case, since the JVM is obviously broken if it - // doesn't support such a basic standard. But since there - // are still some users attempting to use VJ++ for - // development, we have dropped in a fallback which makes a - // second attempt using the platform's default encoding. In - // VJ++ this is apparently ASCII, which is a subset of - // UTF-8... and since the strings we'll be reading here are - // also primarily limited to the 7-bit ASCII range (at - // least, in English versions), this should work well - // enough to keep us on the air until we're ready to - // officially decommit from VJ++. [Edited comment from - // jkesselm] - BufferedReader rd; - try { - rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); - } catch (java.io.UnsupportedEncodingException e) { - rd = new BufferedReader(new InputStreamReader(is)); - } - - String factoryClassName = null; - try { - // XXX Does not handle all possible input as specified by the - // Jar Service Provider specification - factoryClassName = rd.readLine(); - rd.close(); - } catch (IOException x) { - // No provider found - return null; - } - - if (factoryClassName != null && - ! "".equals(factoryClassName)) { - if (DEBUG) debugPrintln("found in resource, value=" - + factoryClassName); - - // Note: here we do not want to fall back to the current - // ClassLoader because we want to avoid the case where the - // resource file was found using one ClassLoader and the - // provider class was instantiated using a different one. - return factoryClassName; - } - - // No provider found - return null; - } - - // - // Classes - // - - /** - * A configuration error. - */ - static class ConfigurationError - extends Error { - - // - // Data - // - - /** Exception. */ - private Exception exception; - - // - // Constructors - // - - /** - * Construct a new instance with the specified detail string and - * exception. - */ - ConfigurationError(String msg, Exception x) { - super(msg); - this.exception = x; - } // (String,Exception) - - // - // Public methods - // - - /** Returns the exception associated to this error. */ - Exception getException() { - return exception; - } // getException():Exception - - } // class ConfigurationError - -} // class ObjectFactory diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java index 88b4c8bbf3f..f0cfa94c20c 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/OpMap.java @@ -242,7 +242,7 @@ public class OpMap else { throw new RuntimeException( - XSLMessages.createXPATHMessage(XPATHErrorResources.ER_UNKNOWN_STEP, new Object[]{new Integer(stepType).toString()})); + XSLMessages.createXPATHMessage(XPATHErrorResources.ER_UNKNOWN_STEP, new Object[]{String.valueOf(stepType)})); //"Programmer's assertion in getNextStepPos: unknown stepType: " + stepType); } } diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java deleted file mode 100644 index d5fbd61e07e..00000000000 --- a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.1.2.1 2005/08/01 01:30:35 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xpath.internal.compiler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java deleted file mode 100644 index 29dfefc8c0b..00000000000 --- a/jaxp/src/com/sun/org/apache/xpath/internal/compiler/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.1.2.1 2005/08/01 01:30:31 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xpath.internal.compiler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java index cd0ce3bd1a1..316e2a1b3af 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java @@ -31,6 +31,8 @@ import com.sun.org.apache.xpath.internal.objects.XNumber; import com.sun.org.apache.xpath.internal.objects.XObject; import com.sun.org.apache.xpath.internal.objects.XString; import com.sun.org.apache.xpath.internal.res.XPATHErrorResources; +import com.sun.org.apache.xalan.internal.utils.ObjectFactory; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; /** * Execute the SystemProperty() function. @@ -168,9 +170,8 @@ public class FuncSystemProperty extends FunctionOneArg try { // Use SecuritySupport class to provide priveleged access to property file - SecuritySupport ss = SecuritySupport.getInstance(); - InputStream is = ss.getResourceAsStream(ObjectFactory.findClassLoader(), + InputStream is = SecuritySupport.getResourceAsStream(ObjectFactory.findClassLoader(), file); // get a buffered version diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java deleted file mode 100644 index 1f6b1e70849..00000000000 --- a/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport.java,v 1.1.2.1 2005/08/01 01:29:39 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xpath.internal.functions; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Base class with security related methods that work on JDK 1.1. - */ -class SecuritySupport { - - /* - * Make this of type Object so that the verifier won't try to - * prove its type, thus possibly trying to load the SecuritySupport12 - * class. - */ - private static final Object securitySupport; - - static { - SecuritySupport ss = null; - try { - Class c = Class.forName("java.security.AccessController"); - // if that worked, we're on 1.2. - /* - // don't reference the class explicitly so it doesn't - // get dragged in accidentally. - c = Class.forName("javax.mail.SecuritySupport12"); - Constructor cons = c.getConstructor(new Class[] { }); - ss = (SecuritySupport)cons.newInstance(new Object[] { }); - */ - /* - * Unfortunately, we can't load the class using reflection - * because the class is package private. And the class has - * to be package private so the APIs aren't exposed to other - * code that could use them to circumvent security. Thus, - * we accept the risk that the direct reference might fail - * on some JDK 1.1 JVMs, even though we would never execute - * this code in such a case. Sigh... - */ - ss = new SecuritySupport12(); - } catch (Exception ex) { - // ignore it - } finally { - if (ss == null) - ss = new SecuritySupport(); - securitySupport = ss; - } - } - - /** - * Return an appropriate instance of this class, depending on whether - * we're on a JDK 1.1 or J2SE 1.2 (or later) system. - */ - static SecuritySupport getInstance() { - return (SecuritySupport)securitySupport; - } - - ClassLoader getContextClassLoader() { - return null; - } - - ClassLoader getSystemClassLoader() { - return null; - } - - ClassLoader getParentClassLoader(ClassLoader cl) { - return null; - } - - String getSystemProperty(String propName) { - return System.getProperty(propName); - } - - FileInputStream getFileInputStream(File file) - throws FileNotFoundException - { - return new FileInputStream(file); - } - - InputStream getResourceAsStream(ClassLoader cl, String name) { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - - boolean getFileExists(File f) { - return f.exists(); - } - - long getLastModified(File f) { - return f.lastModified(); - } -} diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java b/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java deleted file mode 100644 index 81a55feb4bc..00000000000 --- a/jaxp/src/com/sun/org/apache/xpath/internal/functions/SecuritySupport12.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2002-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: SecuritySupport12.java,v 1.1.2.1 2005/08/01 01:29:45 jeffsuttor Exp $ - */ - -package com.sun.org.apache.xpath.internal.functions; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; - -import java.util.Properties; - -/** - * This class is duplicated for each Xalan-Java subpackage so keep it in sync. - * It is package private and therefore is not exposed as part of the Xalan-Java - * API. - * - * Security related methods that only work on J2SE 1.2 and newer. - */ -class SecuritySupport12 extends SecuritySupport { - - ClassLoader getContextClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = Thread.currentThread().getContextClassLoader(); - } catch (SecurityException ex) { } - return cl; - } - }); - } - - ClassLoader getSystemClassLoader() { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader cl = null; - try { - cl = ClassLoader.getSystemClassLoader(); - } catch (SecurityException ex) {} - return cl; - } - }); - } - - ClassLoader getParentClassLoader(final ClassLoader cl) { - return (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - ClassLoader parent = null; - try { - parent = cl.getParent(); - } catch (SecurityException ex) {} - - // eliminate loops in case of the boot - // ClassLoader returning itself as a parent - return (parent == cl) ? null : parent; - } - }); - } - - String getSystemProperty(final String propName) { - return (String) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return System.getProperty(propName); - } - }); - } - - FileInputStream getFileInputStream(final File file) - throws FileNotFoundException - { - try { - return (FileInputStream) - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws FileNotFoundException { - return new FileInputStream(file); - } - }); - } catch (PrivilegedActionException e) { - throw (FileNotFoundException)e.getException(); - } - } - - InputStream getResourceAsStream(final ClassLoader cl, - final String name) - { - return (InputStream) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - InputStream ris; - if (cl == null) { - ris = ClassLoader.getSystemResourceAsStream(name); - } else { - ris = cl.getResourceAsStream(name); - } - return ris; - } - }); - } - - boolean getFileExists(final File f) { - return ((Boolean) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Boolean(f.exists()); - } - })).booleanValue(); - } - - long getLastModified(final File f) { - return ((Long) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new Long(f.lastModified()); - } - })).longValue(); - } - -} diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java index 2168f5057c9..2d7671ee8c7 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java @@ -29,6 +29,7 @@ import com.sun.org.apache.xml.internal.dtm.DTM; import com.sun.org.apache.xml.internal.utils.PrefixResolver; import com.sun.org.apache.xpath.internal.res.XPATHErrorResources; import com.sun.org.apache.xalan.internal.res.XSLMessages; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; @@ -50,6 +51,7 @@ import org.xml.sax.InputSource; /** * The XPathExpression interface encapsulates a (compiled) XPath expression. * + * @version $Revision: 1.10 $ * @author Ramesh Mandava */ public class XPathExpressionImpl implements javax.xml.xpath.XPathExpression{ @@ -64,6 +66,7 @@ public class XPathExpressionImpl implements javax.xml.xpath.XPathExpression{ // extensions function need to throw XPathFunctionException private boolean featureSecureProcessing = false; + private boolean useServicesMechanism = true; /** Protected constructor to prevent direct instantiation; use compile() * from the context. */ @@ -84,12 +87,13 @@ public class XPathExpressionImpl implements javax.xml.xpath.XPathExpression{ JAXPPrefixResolver prefixResolver, XPathFunctionResolver functionResolver, XPathVariableResolver variableResolver, - boolean featureSecureProcessing ) { + boolean featureSecureProcessing, boolean useServicesMechanism ) { this.xpath = xpath; this.prefixResolver = prefixResolver; this.functionResolver = functionResolver; this.variableResolver = variableResolver; this.featureSecureProcessing = featureSecureProcessing; + this.useServicesMechanism = useServicesMechanism; }; public void setXPath (com.sun.org.apache.xpath.internal.XPath xpath ) { @@ -286,7 +290,7 @@ public class XPathExpressionImpl implements javax.xml.xpath.XPathExpression{ } try { if ( dbf == null ) { - dbf = DocumentBuilderFactory.newInstance(); + dbf = FactoryImpl.getDOMFactory(useServicesMechanism); dbf.setNamespaceAware( true ); dbf.setValidating( false ); } diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java index dfe9a5ed448..7159896c27d 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java @@ -21,6 +21,7 @@ package com.sun.org.apache.xpath.internal.jaxp; +import com.sun.org.apache.xalan.internal.XalanConstants; import com.sun.org.apache.xpath.internal.res.XPATHErrorResources; import com.sun.org.apache.xalan.internal.res.XSLMessages; @@ -33,7 +34,7 @@ import javax.xml.xpath.XPathVariableResolver; /** * The XPathFactory builds XPaths. * - * @version $Revision: 1.9 $ + * @version $Revision: 1.11 $ * @author Ramesh Mandava */ public class XPathFactoryImpl extends XPathFactory { @@ -64,13 +65,24 @@ public class XPathFactoryImpl extends XPathFactory { /** * javax.xml.xpath.XPathFactory implementation. */ + + private boolean _useServicesMechanism = true; + public XPathFactoryImpl() { + this(true); + } + + public static XPathFactory newXPathFactoryNoServiceLoader() { + return new XPathFactoryImpl(false); + } + + public XPathFactoryImpl(boolean useServicesMechanism) { if (System.getSecurityManager() != null) { _isSecureMode = true; _isNotSecureProcessing = false; } + this._useServicesMechanism = useServicesMechanism; } - /** *

    Is specified object model supported by this * XPathFactory?

    @@ -119,7 +131,7 @@ public class XPathFactoryImpl extends XPathFactory { public javax.xml.xpath.XPath newXPath() { return new com.sun.org.apache.xpath.internal.jaxp.XPathImpl( xPathVariableResolver, xPathFunctionResolver, - !_isNotSecureProcessing ); + !_isNotSecureProcessing, _useServicesMechanism ); } /** @@ -173,6 +185,12 @@ public class XPathFactoryImpl extends XPathFactory { // all done processing feature return; } + if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) { + //in secure mode, let _useServicesMechanism be determined by the constructor + if (!_isSecureMode) + _useServicesMechanism = value; + return; + } // unknown feature String fmsg = XSLMessages.createXPATHMessage( @@ -219,7 +237,9 @@ public class XPathFactoryImpl extends XPathFactory { if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) { return !_isNotSecureProcessing; } - + if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) { + return _useServicesMechanism; + } // unknown feature String fmsg = XSLMessages.createXPATHMessage( XPATHErrorResources.ER_GETTING_UNKNOWN_FEATURE, diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java index 914062bbad8..6b8082586b0 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java @@ -34,9 +34,9 @@ import com.sun.org.apache.xpath.internal.*; import com.sun.org.apache.xpath.internal.objects.XObject; import com.sun.org.apache.xpath.internal.res.XPATHErrorResources; import com.sun.org.apache.xalan.internal.res.XSLMessages; +import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import org.w3c.dom.Node; -import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.traversal.NodeIterator; @@ -53,6 +53,7 @@ import java.io.IOException; * of an XPath expression. * * + * @version $Revision: 1.10 $ * @author Ramesh Mandava */ public class XPathImpl implements javax.xml.xpath.XPath { @@ -68,6 +69,7 @@ public class XPathImpl implements javax.xml.xpath.XPath { // Secure Processing Feature is set on XPathFactory then the invocation of // extensions function need to throw XPathFunctionException private boolean featureSecureProcessing = false; + private boolean useServiceMechanism = true; XPathImpl( XPathVariableResolver vr, XPathFunctionResolver fr ) { this.origVariableResolver = this.variableResolver = vr; @@ -75,10 +77,11 @@ public class XPathImpl implements javax.xml.xpath.XPath { } XPathImpl( XPathVariableResolver vr, XPathFunctionResolver fr, - boolean featureSecureProcessing ) { + boolean featureSecureProcessing, boolean useServiceMechanism ) { this.origVariableResolver = this.variableResolver = vr; this.origFunctionResolver = this.functionResolver = fr; this.featureSecureProcessing = featureSecureProcessing; + this.useServiceMechanism = useServiceMechanism; } /** @@ -156,7 +159,7 @@ public class XPathImpl implements javax.xml.xpath.XPath { private static Document d = null; - private static DocumentBuilder getParser() { + private DocumentBuilder getParser() { try { // we'd really like to cache those DocumentBuilders, but we can't because: // 1. thread safety. parsers are not thread-safe, so at least @@ -169,7 +172,7 @@ public class XPathImpl implements javax.xml.xpath.XPath { // // so we really have to create a fresh DocumentBuilder every time we need one // - KK - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilderFactory dbf = FactoryImpl.getDOMFactory(useServiceMechanism); dbf.setNamespaceAware( true ); dbf.setValidating( false ); return dbf.newDocumentBuilder(); @@ -179,17 +182,6 @@ public class XPathImpl implements javax.xml.xpath.XPath { } } - private static Document getDummyDocument( ) { - // we don't need synchronization here; even if two threads - // enter this code at the same time, we just waste a little time - if(d==null) { - DOMImplementation dim = getParser().getDOMImplementation(); - d = dim.createDocument("http://java.sun.com/jaxp/xpath", - "dummyroot", null); - } - return d; - } - private XObject eval(String expression, Object contextItem) throws javax.xml.transform.TransformerException { @@ -399,7 +391,7 @@ public class XPathImpl implements javax.xml.xpath.XPath { // Can have errorListener XPathExpressionImpl ximpl = new XPathExpressionImpl (xpath, prefixResolver, functionResolver, variableResolver, - featureSecureProcessing ); + featureSecureProcessing, useServiceMechanism ); return ximpl; } catch ( javax.xml.transform.TransformerException te ) { throw new XPathExpressionException ( te ) ; diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java index 19db24a6084..0ff2b553eb4 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XString.java @@ -321,6 +321,22 @@ public class XString extends XObject implements XMLString return xstr().equals(obj2.xstr()); } + /** + * Compares this string to the specified String. + * The result is true if and only if the argument is not + * null and is a String object that represents + * the same sequence of characters as this object. + * + * @param obj2 the object to compare this String against. + * @return true if the Strings are equal; + * false otherwise. + * @see java.lang.String#compareTo(java.lang.String) + * @see java.lang.String#equalsIgnoreCase(java.lang.String) + */ + public boolean equals(String obj2) { + return str().equals(obj2); + } + /** * Compares this string to the specified object. * The result is true if and only if the argument is not @@ -336,11 +352,14 @@ public class XString extends XObject implements XMLString */ public boolean equals(XMLString obj2) { - - if (!obj2.hasString()) - return obj2.equals(this); - else - return str().equals(obj2.toString()); + if (obj2 != null) { + if (!obj2.hasString()) { + return obj2.equals(str()); + } else { + return str().equals(obj2.toString()); + } + } + return false; } /** diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java index 34535d798c2..d631064576a 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/objects/XStringForFSB.java @@ -979,7 +979,7 @@ public class XStringForFSB extends XString return Double.NaN; try { - return new Double(valueString).doubleValue(); + return Double.parseDouble(valueString); } catch (NumberFormatException nfe) { // This should catch double periods, empty strings. return Double.NaN; diff --git a/jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java index 1290859b8e5..ce4b3af293a 100644 --- a/jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java +++ b/jaxp/src/com/sun/org/apache/xpath/internal/patterns/StepPattern.java @@ -857,7 +857,7 @@ public class StepPattern extends NodeTest implements SubContextList, ExpressionO } else { - buf.append("?" + Integer.toHexString(pat.m_whatToShow)); + buf.append('?').append(Integer.toHexString(pat.m_whatToShow)); } if (null != pat.m_predicates) diff --git a/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java b/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java index fd85c30fdd2..8343d9bba85 100644 --- a/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java +++ b/jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java @@ -36,6 +36,7 @@ import com.sun.org.apache.xerces.internal.impl.XMLEntityManager; import com.sun.org.apache.xerces.internal.impl.PropertyManager; import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter; import com.sun.org.apache.xerces.internal.impl.Constants; +import java.util.Enumeration; /** * @@ -129,19 +130,27 @@ public class XMLEntityStorage { } // reset(XMLComponentManager) /** - * Returns the hashtable of declared entities. - *

    - * REVISIT: - * This should be done the "right" way by designing a better way to - * enumerate the declared entities. For now, this method is needed - * by the constructor that takes an XMLEntityManager parameter. - * XXX Making this method public, return all the declared entities. - * @return Hashtable hastable containing all the declared entities. + * Returns entity declaration. + * + * @param name The name of the entity. + * + * @see SymbolTable */ - public Hashtable getDeclaredEntities() { - return fEntities; - } // getDeclaredEntities():Hashtable + public Entity getEntity(String name) { + return (Entity)fEntities.get(name); + } // getEntity(String) + public boolean hasEntities() { + return (fEntities!=null); + } // getEntity(String) + + public int getEntitySize() { + return fEntities.size(); + } // getEntity(String) + + public Enumeration getEntityKeys() { + return fEntities.keys(); + } /** * Adds an internal entity declaration. *

    diff --git a/jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java b/jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java index 1aaf5191610..30bee23582c 100644 --- a/jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java +++ b/jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java @@ -233,6 +233,7 @@ public final class XMLStreamWriterImpl extends AbstractMap implements XMLStreamW fPrefixGen = new Random(); fAttributeCache = new ArrayList(); fInternalNamespaceContext = new NamespaceSupport(); + fInternalNamespaceContext.reset(); fNamespaceContext = new NamespaceContextImpl(); fNamespaceContext.internalContext = fInternalNamespaceContext; @@ -383,6 +384,8 @@ public final class XMLStreamWriterImpl extends AbstractMap implements XMLStreamW fElementStack.clear(); fInternalNamespaceContext.reset(); fReuse = true; + fStartTagOpened = false; + fNamespaceContext.userContext = null; } /** diff --git a/jaxp/src/javax/xml/datatype/FactoryFinder.java b/jaxp/src/javax/xml/datatype/FactoryFinder.java index 82bdabf1260..37811e6fad9 100644 --- a/jaxp/src/javax/xml/datatype/FactoryFinder.java +++ b/jaxp/src/javax/xml/datatype/FactoryFinder.java @@ -59,7 +59,7 @@ class FactoryFinder { * Flag indicating if properties from java.home/lib/jaxp.properties * have been cached. */ - static boolean firstTime = true; + static volatile boolean firstTime = true; /** * Security support class use to check access control before diff --git a/jaxp/src/javax/xml/parsers/FactoryFinder.java b/jaxp/src/javax/xml/parsers/FactoryFinder.java index 8076ad86564..43a6e020ac7 100644 --- a/jaxp/src/javax/xml/parsers/FactoryFinder.java +++ b/jaxp/src/javax/xml/parsers/FactoryFinder.java @@ -25,15 +25,12 @@ package javax.xml.parsers; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.URL; +import java.util.Properties; /** *

    Implements pluggable Datatypes.

    @@ -42,6 +39,7 @@ import java.net.URL; * sync. It is package private for secure class loading.

    * * @author Santiago.PericasGeertsen@sun.com + * @author Huizhe.Wang@oracle.com */ class FactoryFinder { @@ -59,7 +57,7 @@ class FactoryFinder { * Flag indicating if properties from java.home/lib/jaxp.properties * have been cached. */ - static boolean firstTime = true; + static volatile boolean firstTime = true; /** * Security support class use to check access control before @@ -95,18 +93,24 @@ class FactoryFinder { * If the class loader supplied is null, first try using the * context class loader followed by the current (i.e. bootstrap) class * loader. + * + * Use bootstrap classLoader if cl = null and useBSClsLoader is true */ static private Class getProviderClass(String className, ClassLoader cl, - boolean doFallback) throws ClassNotFoundException + boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException { try { if (cl == null) { - cl = ss.getContextClassLoader(); - if (cl == null) { - throw new ClassNotFoundException(); - } - else { - return cl.loadClass(className); + if (useBSClsLoader) { + return Class.forName(className, true, FactoryFinder.class.getClassLoader()); + } else { + cl = ss.getContextClassLoader(); + if (cl == null) { + throw new ClassNotFoundException(); + } + else { + return cl.loadClass(className); + } } } else { @@ -131,17 +135,39 @@ class FactoryFinder { * @param className Name of the concrete class corresponding to the * service provider * - * @param cl ClassLoader to use to load the class, null means to use - * the bootstrap ClassLoader + * @param cl ClassLoader used to load the factory class. If null + * current Thread's context classLoader is used to load the factory class. * * @param doFallback True if the current ClassLoader should be tried as * a fallback if the class is not found using cl */ static Object newInstance(String className, ClassLoader cl, boolean doFallback) throws ConfigurationError + { + return newInstance(className, cl, doFallback, false); + } + + /** + * Create an instance of a class. Delegates to method + * getProviderClass() in order to load the class. + * + * @param className Name of the concrete class corresponding to the + * service provider + * + * @param cl ClassLoader used to load the factory class. If null + * current Thread's context classLoader is used to load the factory class. + * + * @param doFallback True if the current ClassLoader should be tried as + * a fallback if the class is not found using cl + * + * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter + * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader. + */ + static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) + throws ConfigurationError { try { - Class providerClass = getProviderClass(className, cl, doFallback); + Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); Object instance = providerClass.newInstance(); if (debug) { // Extra check to avoid computing cl strings dPrint("created new instance of " + providerClass + @@ -244,6 +270,7 @@ class FactoryFinder { // First try the Context ClassLoader ClassLoader cl = ss.getContextClassLoader(); + boolean useBSClsLoader = false; if (cl != null) { is = ss.getResourceAsStream(cl, serviceId); @@ -251,11 +278,13 @@ class FactoryFinder { if (is == null) { cl = FactoryFinder.class.getClassLoader(); is = ss.getResourceAsStream(cl, serviceId); + useBSClsLoader = true; } } else { // No Context ClassLoader, try the current ClassLoader cl = FactoryFinder.class.getClassLoader(); is = ss.getResourceAsStream(cl, serviceId); + useBSClsLoader = true; } if (is == null) { @@ -293,7 +322,7 @@ class FactoryFinder { // ClassLoader because we want to avoid the case where the // resource file was found using one ClassLoader and the // provider class was instantiated using a different one. - return newInstance(factoryClassName, cl, false); + return newInstance(factoryClassName, cl, false, useBSClsLoader); } // No provider found diff --git a/jaxp/src/javax/xml/stream/FactoryFinder.java b/jaxp/src/javax/xml/stream/FactoryFinder.java index b35eef8dbe9..a2491ac8c59 100644 --- a/jaxp/src/javax/xml/stream/FactoryFinder.java +++ b/jaxp/src/javax/xml/stream/FactoryFinder.java @@ -58,7 +58,7 @@ class FactoryFinder { * Flag indicating if properties from java.home/lib/jaxp.properties * have been cached. */ - static boolean firstTime = true; + static volatile boolean firstTime = true; /** * Security support class use to check access control before diff --git a/jaxp/src/javax/xml/transform/FactoryFinder.java b/jaxp/src/javax/xml/transform/FactoryFinder.java index bf3b48d9624..b0c6d9a1e9b 100644 --- a/jaxp/src/javax/xml/transform/FactoryFinder.java +++ b/jaxp/src/javax/xml/transform/FactoryFinder.java @@ -25,15 +25,13 @@ package javax.xml.transform; -import java.io.File; -import java.io.FileInputStream; - -import java.util.Properties; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.URL; +import java.lang.reflect.Method; +import java.util.Properties; /** *

    Implements pluggable Datatypes.

    @@ -42,6 +40,7 @@ import java.net.URL; * sync. It is package private for secure class loading.

    * * @author Santiago.PericasGeertsen@sun.com + * @author Huizhe.Wang@oracle.com */ class FactoryFinder { @@ -59,7 +58,7 @@ class FactoryFinder { * Flag indicating if properties from java.home/lib/jaxp.properties * have been cached. */ - static boolean firstTime = true; + static volatile boolean firstTime = true; /** * Security support class use to check access control before @@ -95,18 +94,24 @@ class FactoryFinder { * If the class loader supplied is null, first try using the * context class loader followed by the current (i.e. bootstrap) class * loader. + * + * Use bootstrap classLoader if cl = null and useBSClsLoader is true */ static private Class getProviderClass(String className, ClassLoader cl, - boolean doFallback) throws ClassNotFoundException + boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException { try { if (cl == null) { - cl = ss.getContextClassLoader(); - if (cl == null) { - throw new ClassNotFoundException(); - } - else { - return cl.loadClass(className); + if (useBSClsLoader) { + return Class.forName(className, true, FactoryFinder.class.getClassLoader()); + } else { + cl = ss.getContextClassLoader(); + if (cl == null) { + throw new ClassNotFoundException(); + } + else { + return cl.loadClass(className); + } } } else { @@ -131,18 +136,48 @@ class FactoryFinder { * @param className Name of the concrete class corresponding to the * service provider * - * @param cl ClassLoader to use to load the class, null means to use - * the bootstrap ClassLoader + * @param cl ClassLoader used to load the factory class. If null + * current Thread's context classLoader is used to load the factory class. * * @param doFallback True if the current ClassLoader should be tried as * a fallback if the class is not found using cl */ static Object newInstance(String className, ClassLoader cl, boolean doFallback) throws ConfigurationError + { + return newInstance(className, cl, doFallback, false, false); + } + + /** + * Create an instance of a class. Delegates to method + * getProviderClass() in order to load the class. + * + * @param className Name of the concrete class corresponding to the + * service provider + * + * @param cl ClassLoader used to load the factory class. If null + * current Thread's context classLoader is used to load the factory class. + * + * @param doFallback True if the current ClassLoader should be tried as + * a fallback if the class is not found using cl + * + * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter + * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader. + * + * @param useServicesMechanism True use services mechanism + */ + static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader, boolean useServicesMechanism) + throws ConfigurationError { try { - Class providerClass = getProviderClass(className, cl, doFallback); - Object instance = providerClass.newInstance(); + Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); + Object instance = null; + if (!useServicesMechanism) { + instance = newInstanceNoServiceLoader(providerClass); + } + if (instance == null) { + instance = providerClass.newInstance(); + } if (debug) { // Extra check to avoid computing cl strings dPrint("created new instance of " + providerClass + " using ClassLoader: " + cl); @@ -159,7 +194,29 @@ class FactoryFinder { x); } } - + /** + * Try to construct using newTransformerFactoryNoServiceLoader + * method if available. + */ + private static Object newInstanceNoServiceLoader( + Class providerClass + ) { + // Retain maximum compatibility if no security manager. + if (System.getSecurityManager() == null) { + return null; + } + try { + Method creationMethod = + providerClass.getDeclaredMethod( + "newTransformerFactoryNoServiceLoader" + ); + return creationMethod.invoke(null, null); + } catch (NoSuchMethodException exc) { + return null; + } catch (Exception exc) { + return null; + } + } /** * Finds the implementation Class object in the specified order. Main * entry point. @@ -176,13 +233,12 @@ class FactoryFinder { throws ConfigurationError { dPrint("find factoryId =" + factoryId); - // Use the system property first try { String systemProp = ss.getSystemProperty(factoryId); if (systemProp != null) { dPrint("found system property, value=" + systemProp); - return newInstance(systemProp, null, true); + return newInstance(systemProp, null, true, false, true); } } catch (SecurityException se) { @@ -210,7 +266,7 @@ class FactoryFinder { if (factoryClassName != null) { dPrint("found in $java.home/jaxp.properties, value=" + factoryClassName); - return newInstance(factoryClassName, null, true); + return newInstance(factoryClassName, null, true, false, true); } } catch (Exception ex) { @@ -228,7 +284,7 @@ class FactoryFinder { } dPrint("loaded from fallback value: " + fallbackClassName); - return newInstance(fallbackClassName, null, true); + return newInstance(fallbackClassName, null, true, false, true); } /* @@ -244,6 +300,7 @@ class FactoryFinder { // First try the Context ClassLoader ClassLoader cl = ss.getContextClassLoader(); + boolean useBSClsLoader = false; if (cl != null) { is = ss.getResourceAsStream(cl, serviceId); @@ -251,11 +308,13 @@ class FactoryFinder { if (is == null) { cl = FactoryFinder.class.getClassLoader(); is = ss.getResourceAsStream(cl, serviceId); - } + useBSClsLoader = true; + } } else { // No Context ClassLoader, try the current ClassLoader cl = FactoryFinder.class.getClassLoader(); is = ss.getResourceAsStream(cl, serviceId); + useBSClsLoader = true; } if (is == null) { @@ -293,7 +352,7 @@ class FactoryFinder { // ClassLoader because we want to avoid the case where the // resource file was found using one ClassLoader and the // provider class was instantiated using a different one. - return newInstance(factoryClassName, cl, false); + return newInstance(factoryClassName, cl, false, useBSClsLoader, true); } // No provider found diff --git a/jaxp/src/javax/xml/validation/SchemaFactoryFinder.java b/jaxp/src/javax/xml/validation/SchemaFactoryFinder.java index e30f22c9373..8157b6bd8dd 100644 --- a/jaxp/src/javax/xml/validation/SchemaFactoryFinder.java +++ b/jaxp/src/javax/xml/validation/SchemaFactoryFinder.java @@ -43,6 +43,7 @@ import java.util.Properties; * Implementation of {@link SchemaFactory#newInstance(String)}. * * @author Kohsuke Kawaguchi + * @version $Revision: 1.8 $, $Date: 2010-11-01 04:36:13 $ * @since 1.5 */ class SchemaFactoryFinder { @@ -61,7 +62,7 @@ class SchemaFactoryFinder { /** *

    First time requires initialization overhead.

    */ - private static boolean firstTime = true; + private static volatile boolean firstTime = true; static { // Use try/catch block to support applets @@ -166,7 +167,7 @@ class SchemaFactoryFinder { String r = ss.getSystemProperty(propertyName); if(r!=null) { debugPrintln("The value is '"+r+"'"); - sf = createInstance(r); + sf = createInstance(r, true); if(sf!=null) return sf; } else debugPrintln("The property is undefined."); @@ -201,7 +202,7 @@ class SchemaFactoryFinder { debugPrintln("found " + factoryClassName + " in $java.home/jaxp.properties"); if (factoryClassName != null) { - sf = createInstance(factoryClassName); + sf = createInstance(factoryClassName, true); if(sf != null){ return sf; } @@ -254,7 +255,7 @@ class SchemaFactoryFinder { // platform default if(schemaLanguage.equals("http://www.w3.org/2001/XMLSchema")) { debugPrintln("attempting to use the platform default XML Schema validator"); - return createInstance("com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory"); + return createInstance("com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory", true); } debugPrintln("all things were tried, but none was found. bailing out."); @@ -294,6 +295,10 @@ class SchemaFactoryFinder { * if it fails. Error messages will be printed by this method. */ SchemaFactory createInstance( String className ) { + return createInstance( className, false ); + } + + SchemaFactory createInstance( String className, boolean useServicesMechanism ) { SchemaFactory schemaFactory = null; debugPrintln("createInstance(" + className + ")"); @@ -308,7 +313,12 @@ class SchemaFactoryFinder { // instantiate Class as a SchemaFactory try { - schemaFactory = (SchemaFactory) clazz.newInstance(); + if (!useServicesMechanism) { + schemaFactory = (SchemaFactory) newInstanceNoServiceLoader(clazz); + } + if (schemaFactory == null) { + schemaFactory = (SchemaFactory) clazz.newInstance(); + } } catch (ClassCastException classCastException) { debugPrintln("could not instantiate " + clazz.getName()); if (debug) { @@ -331,6 +341,29 @@ class SchemaFactoryFinder { return schemaFactory; } + /** + * Try to construct using newTransformerFactoryNoServiceLoader + * method if available. + */ + private static Object newInstanceNoServiceLoader( + Class providerClass + ) { + // Retain maximum compatibility if no security manager. + if (System.getSecurityManager() == null) { + return null; + } + try { + Method creationMethod = + providerClass.getDeclaredMethod( + "newXMLSchemaFactoryNoServiceLoader" + ); + return creationMethod.invoke(null, null); + } catch (NoSuchMethodException exc) { + return null; + } catch (Exception exc) { + return null; + } + } /** Iterator that lazily computes one value and returns it. */ private static abstract class SingleIterator implements Iterator { diff --git a/jaxp/src/javax/xml/xpath/XPathFactoryFinder.java b/jaxp/src/javax/xml/xpath/XPathFactoryFinder.java index debe4271d2c..2833a58804b 100644 --- a/jaxp/src/javax/xml/xpath/XPathFactoryFinder.java +++ b/jaxp/src/javax/xml/xpath/XPathFactoryFinder.java @@ -44,6 +44,7 @@ import java.util.Properties; * Implementation of {@link XPathFactory#newInstance(String)}. * * @author Kohsuke Kawaguchi + * @version $Revision: 1.7 $, $Date: 2010-11-01 04:36:14 $ * @since 1.5 */ class XPathFactoryFinder { @@ -68,7 +69,7 @@ class XPathFactoryFinder { /** *

    First time requires initialization overhead.

    */ - private static boolean firstTime = true; + private volatile static boolean firstTime = true; /** *

    Conditional debug printing.

    @@ -163,7 +164,7 @@ class XPathFactoryFinder { String r = ss.getSystemProperty(propertyName); if(r!=null) { debugPrintln("The value is '"+r+"'"); - xpathFactory = createInstance(r); + xpathFactory = createInstance(r, true); if(xpathFactory != null) return xpathFactory; } else debugPrintln("The property is undefined."); @@ -198,7 +199,7 @@ class XPathFactoryFinder { debugPrintln("found " + factoryClassName + " in $java.home/jaxp.properties"); if (factoryClassName != null) { - xpathFactory = createInstance(factoryClassName); + xpathFactory = createInstance(factoryClassName, true); if(xpathFactory != null){ return xpathFactory; } @@ -231,7 +232,7 @@ class XPathFactoryFinder { // platform default if(uri.equals(XPathFactory.DEFAULT_OBJECT_MODEL_URI)) { debugPrintln("attempting to use the platform default W3C DOM XPath lib"); - return createInstance("com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"); + return createInstance("com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl", true); } debugPrintln("all things were tried, but none was found. bailing out."); @@ -271,6 +272,9 @@ class XPathFactoryFinder { * if it fails. Error messages will be printed by this method. */ XPathFactory createInstance( String className ) { + return createInstance( className, false ); + } + XPathFactory createInstance( String className, boolean useServicesMechanism ) { XPathFactory xPathFactory = null; debugPrintln("createInstance(" + className + ")"); @@ -285,7 +289,12 @@ class XPathFactoryFinder { // instantiate Class as a XPathFactory try { + if (!useServicesMechanism) { + xPathFactory = (XPathFactory) newInstanceNoServiceLoader(clazz); + } + if (xPathFactory == null) { xPathFactory = (XPathFactory) clazz.newInstance(); + } } catch (ClassCastException classCastException) { debugPrintln("could not instantiate " + clazz.getName()); if (debug) { @@ -308,6 +317,29 @@ class XPathFactoryFinder { return xPathFactory; } + /** + * Try to construct using newXPathFactoryNoServiceLoader + * method if available. + */ + private static Object newInstanceNoServiceLoader( + Class providerClass + ) { + // Retain maximum compatibility if no security manager. + if (System.getSecurityManager() == null) { + return null; + } + try { + Method creationMethod = + providerClass.getDeclaredMethod( + "newXPathFactoryNoServiceLoader" + ); + return creationMethod.invoke(null, null); + } catch (NoSuchMethodException exc) { + return null; + } catch (Exception exc) { + return null; + } + } /** *

    Look up a value in a property file.

    @@ -432,7 +464,7 @@ class XPathFactoryFinder { String factoryClassName = props.getProperty(keyName); if(factoryClassName != null){ debugPrintln("found "+keyName+" = " + factoryClassName); - return createInstance(factoryClassName); + return createInstance(factoryClassName, true); } else { debugPrintln(keyName+" is not in the property file"); return null; From 87e24367ff479f38135013f3753a57d52b5bdce6 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Tue, 17 Apr 2012 11:21:35 -0700 Subject: [PATCH 65/82] 7160380: Sync JDK8 with JAXP 1.4.5 Bring JDK8 up to date to what we have in 7u4 Reviewed-by: lancea, mullan --- jdk/src/share/lib/security/java.security | 2 +- .../share/lib/security/java.security-macosx | 2 +- .../share/lib/security/java.security-solaris | 2 +- .../share/lib/security/java.security-windows | 2 +- .../SecurityManager/CheckPackageAccess.java | 47 +++++++++++++++++++ 5 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 jdk/test/java/lang/SecurityManager/CheckPackageAccess.java diff --git a/jdk/src/share/lib/security/java.security b/jdk/src/share/lib/security/java.security index a89d40e194b..fc48b9e2520 100644 --- a/jdk/src/share/lib/security/java.security +++ b/jdk/src/share/lib/security/java.security @@ -123,7 +123,7 @@ keystore.type=jks # passed to checkPackageAccess unless the # corresponding RuntimePermission ("accessClassInPackage."+package) has # been granted. -package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio. +package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils. # # List of comma-separated packages that start with or equal this string diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx index 42f9d3a8a63..65be54c6db4 100644 --- a/jdk/src/share/lib/security/java.security-macosx +++ b/jdk/src/share/lib/security/java.security-macosx @@ -124,7 +124,7 @@ keystore.type=jks # passed to checkPackageAccess unless the # corresponding RuntimePermission ("accessClassInPackage."+package) has # been granted. -package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple. +package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils. # # List of comma-separated packages that start with or equal this string diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris index d01cfdafa1c..1abd2f4f1cd 100644 --- a/jdk/src/share/lib/security/java.security-solaris +++ b/jdk/src/share/lib/security/java.security-solaris @@ -125,7 +125,7 @@ keystore.type=jks # passed to checkPackageAccess unless the # corresponding RuntimePermission ("accessClassInPackage."+package) has # been granted. -package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio. +package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils. # # List of comma-separated packages that start with or equal this string diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows index 3db627a4f32..8091e4a2464 100644 --- a/jdk/src/share/lib/security/java.security-windows +++ b/jdk/src/share/lib/security/java.security-windows @@ -124,7 +124,7 @@ keystore.type=jks # passed to checkPackageAccess unless the # corresponding RuntimePermission ("accessClassInPackage."+package) has # been granted. -package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio. +package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils. # # List of comma-separated packages that start with or equal this string diff --git a/jdk/test/java/lang/SecurityManager/CheckPackageAccess.java b/jdk/test/java/lang/SecurityManager/CheckPackageAccess.java new file mode 100644 index 00000000000..6db95eb3261 --- /dev/null +++ b/jdk/test/java/lang/SecurityManager/CheckPackageAccess.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2012, 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 7146431 + * @summary Test that internal JAXP packages cannot be accessed + */ + +public class CheckPackageAccess { + + public static void main(String[] args) throws Exception { + + String[] pkgs = new String[] { + "com.sun.org.apache.xerces.internal.utils.", + "com.sun.org.apache.xalan.internal.utils." }; + SecurityManager sm = new SecurityManager(); + System.setSecurityManager(sm); + for (String pkg : pkgs) { + System.out.println("Checking package access for " + pkg); + try { + sm.checkPackageAccess(pkg); + throw new Exception("Expected SecurityException not thrown"); + } catch (SecurityException se) { } + } + } +} From 4869b7a5a72b9953d194aecd29268c48db7391ff Mon Sep 17 00:00:00 2001 From: Kurchi Subhra Hazra Date: Tue, 17 Apr 2012 11:59:12 -0700 Subject: [PATCH 66/82] 7152856: TEST_BUG: sun/net/www/protocol/jar/B4957695.java failing on Windows Remove usage of HTTP Server at test/sun/net/www/httptest Reviewed-by: chegar, alanb --- .../sun/net/www/protocol/jar/B4957695.java | 85 ++++++++++++------- 1 file changed, 55 insertions(+), 30 deletions(-) diff --git a/jdk/test/sun/net/www/protocol/jar/B4957695.java b/jdk/test/sun/net/www/protocol/jar/B4957695.java index da1ee0e51f0..0d25825f0cc 100644 --- a/jdk/test/sun/net/www/protocol/jar/B4957695.java +++ b/jdk/test/sun/net/www/protocol/jar/B4957695.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, 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 @@ -24,8 +24,6 @@ /** * @test * @bug 4957695 - * @library ../../httptest/ - * @build HttpCallback HttpServer ClosedChannelList HttpTransaction AbstractCallback * @summary URLJarFile.retrieve does not delete tmpFile on IOException */ @@ -34,8 +32,56 @@ import java.net.*; public class B4957695 { - static int count = 0; - static boolean error = false; + static Server server; + + static class Server extends Thread { + final ServerSocket srv; + static final byte[] requestEnd = new byte[] {'\r', '\n', '\r', '\n'}; + + Server(ServerSocket s) { + srv = s; + } + + void readOneRequest(InputStream is) throws IOException { + int requestEndCount = 0, r; + while ((r = is.read()) != -1) { + if (r == requestEnd[requestEndCount]) { + requestEndCount++; + if (requestEndCount == 4) { + break; + } + } else { + requestEndCount = 0; + } + } + } + + public void run() { + try (Socket s = srv.accept()) { + // read HTTP request from client + readOneRequest(s.getInputStream()); + try (OutputStreamWriter ow = + new OutputStreamWriter((s.getOutputStream()))) { + FileInputStream fin = new FileInputStream("foo1.jar"); + int length = fin.available(); + byte[] b = new byte[length-10]; + fin.read(b, 0, length-10); + ow.write("HTTP/1.0 200 OK\r\n"); + + // Note: The client expects length bytes. + ow.write("Content-Length: " + length + "\r\n"); + ow.write("Content-Type: text/html\r\n"); + ow.write("\r\n"); + + // Note: The (buggy) server only sends length-10 bytes. + ow.write(new String(b)); + ow.flush(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } static void read (InputStream is) throws IOException { int c,len=0; @@ -45,32 +91,13 @@ public class B4957695 { System.out.println ("read " + len + " bytes"); } - static class CallBack extends AbstractCallback { - - public void request (HttpTransaction req, int count) { - try { - System.out.println ("Request received"); - req.setResponseEntityBody (new FileInputStream ("foo1.jar")); - System.out.println ("content length " + req.getResponseHeader ( - "Content-length" - )); - req.sendPartialResponse (200, "Ok"); - req.abortiveClose(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - }; - - static HttpServer server; - public static void main (String[] args) throws Exception { String tmpdir = System.getProperty("java.io.tmpdir"); String[] list1 = listTmpFiles(tmpdir); - //server = new HttpServer (new CallBack(), 10, 1, 0); - server = new HttpServer (new CallBack(), 1, 5, 0); - int port = server.getLocalPort(); + ServerSocket serverSocket = new ServerSocket(0); + server = new Server(serverSocket); + server.start(); + int port = serverSocket.getLocalPort(); System.out.println ("Server: listening on port: " + port); URL url = new URL ("jar:http://localhost:"+port+"!/COPYRIGHT"); try { @@ -81,14 +108,12 @@ public class B4957695 { } catch (IOException e) { System.out.println ("Received IOException as expected"); } - server.terminate(); String[] list2 = listTmpFiles(tmpdir); if (!sameList (list1, list2)) { throw new RuntimeException ("some jar_cache files left behind"); } } - static String[] listTmpFiles (String d) { File dir = new File (d); return dir.list (new FilenameFilter () { From 00ef83a6ab532f7d327ddac16c74551e241cb072 Mon Sep 17 00:00:00 2001 From: Remi Forax Date: Tue, 17 Apr 2012 12:21:56 -0700 Subject: [PATCH 67/82] 7157893: Warnings Cleanup in java.util.* Minor code changes to cleanup warnings in java.util.* Reviewed-by: mduigou, naoto, smarks --- .../classes/java/util/AbstractCollection.java | 2 + .../share/classes/java/util/AbstractList.java | 2 +- .../share/classes/java/util/AbstractMap.java | 8 +- .../share/classes/java/util/AbstractSet.java | 2 +- .../share/classes/java/util/ArrayDeque.java | 4 +- .../share/classes/java/util/ArrayList.java | 3 +- jdk/src/share/classes/java/util/Arrays.java | 17 +- jdk/src/share/classes/java/util/Calendar.java | 4 +- .../share/classes/java/util/Collections.java | 42 +++-- .../classes/java/util/ComparableTimSort.java | 13 +- jdk/src/share/classes/java/util/Currency.java | 2 +- jdk/src/share/classes/java/util/EnumMap.java | 36 +++-- jdk/src/share/classes/java/util/EnumSet.java | 18 ++- jdk/src/share/classes/java/util/HashMap.java | 92 ++++++----- jdk/src/share/classes/java/util/HashSet.java | 6 +- .../share/classes/java/util/Hashtable.java | 125 ++++++++------- .../classes/java/util/IdentityHashMap.java | 34 ++-- .../IllegalFormatConversionException.java | 2 +- .../share/classes/java/util/JumboEnumSet.java | 19 +-- .../classes/java/util/LinkedHashMap.java | 10 +- .../share/classes/java/util/Observable.java | 4 +- .../classes/java/util/PriorityQueue.java | 20 ++- .../share/classes/java/util/Properties.java | 22 +-- .../classes/java/util/PropertyPermission.java | 27 ++-- .../classes/java/util/RegularEnumSet.java | 21 +-- .../classes/java/util/ResourceBundle.java | 7 +- .../classes/java/util/ServiceLoader.java | 10 +- jdk/src/share/classes/java/util/TimeZone.java | 6 +- jdk/src/share/classes/java/util/TreeMap.java | 149 +++++++++--------- jdk/src/share/classes/java/util/TreeSet.java | 14 +- .../share/classes/java/util/WeakHashMap.java | 2 +- 31 files changed, 410 insertions(+), 313 deletions(-) diff --git a/jdk/src/share/classes/java/util/AbstractCollection.java b/jdk/src/share/classes/java/util/AbstractCollection.java index a32d41156a3..3824f390463 100644 --- a/jdk/src/share/classes/java/util/AbstractCollection.java +++ b/jdk/src/share/classes/java/util/AbstractCollection.java @@ -170,6 +170,7 @@ public abstract class AbstractCollection implements Collection { * @throws ArrayStoreException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ + @SuppressWarnings("unchecked") public T[] toArray(T[] a) { // Estimate size of array; be prepared to see more or fewer elements int size = size(); @@ -216,6 +217,7 @@ public abstract class AbstractCollection implements Collection { * @return array containing the elements in the given array, plus any * further elements returned by the iterator, trimmed to size */ + @SuppressWarnings("unchecked") private static T[] finishToArray(T[] r, Iterator it) { int i = r.length; while (it.hasNext()) { diff --git a/jdk/src/share/classes/java/util/AbstractList.java b/jdk/src/share/classes/java/util/AbstractList.java index 4492166111b..0b605150679 100644 --- a/jdk/src/share/classes/java/util/AbstractList.java +++ b/jdk/src/share/classes/java/util/AbstractList.java @@ -516,7 +516,7 @@ public abstract class AbstractList extends AbstractCollection implements L return false; ListIterator e1 = listIterator(); - ListIterator e2 = ((List) o).listIterator(); + ListIterator e2 = ((List) o).listIterator(); while (e1.hasNext() && e2.hasNext()) { E o1 = e1.next(); Object o2 = e2.next(); diff --git a/jdk/src/share/classes/java/util/AbstractMap.java b/jdk/src/share/classes/java/util/AbstractMap.java index a3ad3d3497a..aba5048becd 100644 --- a/jdk/src/share/classes/java/util/AbstractMap.java +++ b/jdk/src/share/classes/java/util/AbstractMap.java @@ -443,7 +443,7 @@ public abstract class AbstractMap implements Map { if (!(o instanceof Map)) return false; - Map m = (Map) o; + Map m = (Map) o; if (m.size() != size()) return false; @@ -534,7 +534,7 @@ public abstract class AbstractMap implements Map { * @return a shallow copy of this map */ protected Object clone() throws CloneNotSupportedException { - AbstractMap result = (AbstractMap)super.clone(); + AbstractMap result = (AbstractMap)super.clone(); result.keySet = null; result.values = null; return result; @@ -652,7 +652,7 @@ public abstract class AbstractMap implements Map { public boolean equals(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; return eq(key, e.getKey()) && eq(value, e.getValue()); } @@ -783,7 +783,7 @@ public abstract class AbstractMap implements Map { public boolean equals(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; return eq(key, e.getKey()) && eq(value, e.getValue()); } diff --git a/jdk/src/share/classes/java/util/AbstractSet.java b/jdk/src/share/classes/java/util/AbstractSet.java index 1f1a49c250e..03e45ba38c0 100644 --- a/jdk/src/share/classes/java/util/AbstractSet.java +++ b/jdk/src/share/classes/java/util/AbstractSet.java @@ -88,7 +88,7 @@ public abstract class AbstractSet extends AbstractCollection implements Se if (!(o instanceof Set)) return false; - Collection c = (Collection) o; + Collection c = (Collection) o; if (c.size() != size()) return false; try { diff --git a/jdk/src/share/classes/java/util/ArrayDeque.java b/jdk/src/share/classes/java/util/ArrayDeque.java index eb70aaa59cc..8a9a0ee7b8b 100644 --- a/jdk/src/share/classes/java/util/ArrayDeque.java +++ b/jdk/src/share/classes/java/util/ArrayDeque.java @@ -813,7 +813,8 @@ public class ArrayDeque extends AbstractCollection */ public ArrayDeque clone() { try { - ArrayDeque result = (ArrayDeque) super.clone(); + @SuppressWarnings("unchecked") + ArrayDeque result = (ArrayDeque) super.clone(); result.elements = Arrays.copyOf(elements, elements.length); return result; @@ -849,6 +850,7 @@ public class ArrayDeque extends AbstractCollection /** * Deserialize this deque. */ + @SuppressWarnings("unchecked") private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); diff --git a/jdk/src/share/classes/java/util/ArrayList.java b/jdk/src/share/classes/java/util/ArrayList.java index 3b029272753..eb44bd959ee 100644 --- a/jdk/src/share/classes/java/util/ArrayList.java +++ b/jdk/src/share/classes/java/util/ArrayList.java @@ -300,8 +300,7 @@ public class ArrayList extends AbstractList */ public Object clone() { try { - @SuppressWarnings("unchecked") - ArrayList v = (ArrayList) super.clone(); + ArrayList v = (ArrayList) super.clone(); v.elementData = Arrays.copyOf(elementData, size); v.modCount = 0; return v; diff --git a/jdk/src/share/classes/java/util/Arrays.java b/jdk/src/share/classes/java/util/Arrays.java index fd408e27b60..d0c3a60a05a 100644 --- a/jdk/src/share/classes/java/util/Arrays.java +++ b/jdk/src/share/classes/java/util/Arrays.java @@ -560,6 +560,7 @@ public class Arrays { * off is the offset to generate corresponding low, high in src * To be removed in a future release. */ + @SuppressWarnings({ "unchecked", "rawtypes" }) private static void mergeSort(Object[] src, Object[] dest, int low, @@ -746,6 +747,7 @@ public class Arrays { * off is the offset into src corresponding to low in dest * To be removed in a future release. */ + @SuppressWarnings({ "rawtypes", "unchecked" }) private static void mergeSort(Object[] src, Object[] dest, int low, int high, int off, @@ -1477,8 +1479,10 @@ public class Arrays { while (low <= high) { int mid = (low + high) >>> 1; - Comparable midVal = (Comparable)a[mid]; - int cmp = midVal.compareTo(key); + @SuppressWarnings("rawtypes") + Comparable midVal = (Comparable)a[mid]; + @SuppressWarnings("unchecked") + int cmp = midVal.compareTo(key); if (cmp < 0) low = mid + 1; @@ -2215,6 +2219,7 @@ public class Arrays { * @throws NullPointerException if original is null * @since 1.6 */ + @SuppressWarnings("unchecked") public static T[] copyOf(T[] original, int newLength) { return (T[]) copyOf(original, newLength, original.getClass()); } @@ -2242,6 +2247,7 @@ public class Arrays { * @since 1.6 */ public static T[] copyOf(U[] original, int newLength, Class newType) { + @SuppressWarnings("unchecked") T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] : (T[]) Array.newInstance(newType.getComponentType(), newLength); @@ -2470,8 +2476,9 @@ public class Arrays { * @throws NullPointerException if original is null * @since 1.6 */ + @SuppressWarnings("unchecked") public static T[] copyOfRange(T[] original, int from, int to) { - return copyOfRange(original, from, to, (Class) original.getClass()); + return copyOfRange(original, from, to, (Class) original.getClass()); } /** @@ -2509,6 +2516,7 @@ public class Arrays { int newLength = to - from; if (newLength < 0) throw new IllegalArgumentException(from + " > " + to); + @SuppressWarnings("unchecked") T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] : (T[]) Array.newInstance(newType.getComponentType(), newLength); @@ -2851,6 +2859,7 @@ public class Arrays { return a.clone(); } + @SuppressWarnings("unchecked") public T[] toArray(T[] a) { int size = size(); if (a.length < size) @@ -3634,7 +3643,7 @@ public class Arrays { if (element == null) { buf.append("null"); } else { - Class eClass = element.getClass(); + Class eClass = element.getClass(); if (eClass.isArray()) { if (eClass == byte[].class) diff --git a/jdk/src/share/classes/java/util/Calendar.java b/jdk/src/share/classes/java/util/Calendar.java index 21de73437a4..0e04b22fab3 100644 --- a/jdk/src/share/classes/java/util/Calendar.java +++ b/jdk/src/share/classes/java/util/Calendar.java @@ -840,7 +840,7 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable cachedLocaleData - = new ConcurrentHashMap(3); + = new ConcurrentHashMap<>(3); // Special values of stamp[] /** @@ -1499,7 +1499,7 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable names = new HashMap(); + Map names = new HashMap<>(); for (int i = 0; i < strings.length; i++) { if (strings[i].length() == 0) { continue; diff --git a/jdk/src/share/classes/java/util/Collections.java b/jdk/src/share/classes/java/util/Collections.java index d18d5682336..53326032680 100644 --- a/jdk/src/share/classes/java/util/Collections.java +++ b/jdk/src/share/classes/java/util/Collections.java @@ -150,6 +150,7 @@ public class Collections { * detects that the natural ordering of the list elements is * found to violate the {@link Comparable} contract */ + @SuppressWarnings("unchecked") public static > void sort(List list) { Object[] a = list.toArray(); Arrays.sort(a); @@ -212,13 +213,14 @@ public class Collections { * @throws IllegalArgumentException (optional) if the comparator is * found to violate the {@link Comparator} contract */ + @SuppressWarnings({ "unchecked", "rawtypes" }) public static void sort(List list, Comparator c) { Object[] a = list.toArray(); Arrays.sort(a, (Comparator)c); - ListIterator i = list.listIterator(); + ListIterator i = list.listIterator(); for (int j=0; j int binarySearch(List list, T key, Comparator c) { if (c==null) - return binarySearch((List) list, key); + return binarySearch((List>) list, key); if (list instanceof RandomAccess || list.size() {} - - /** * Reverses the order of the elements in the specified list.

    * @@ -418,12 +418,16 @@ public class Collections { * @throws UnsupportedOperationException if the specified list or * its list-iterator does not support the set operation. */ + @SuppressWarnings({ "rawtypes", "unchecked" }) public static void reverse(List list) { int size = list.size(); if (size < REVERSE_THRESHOLD || list instanceof RandomAccess) { for (int i=0, mid=size>>1, j=size-1; i>1; iset operation. */ + @SuppressWarnings({ "rawtypes", "unchecked" }) public static void shuffle(List list, Random rnd) { int size = list.size(); if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) { @@ -506,6 +511,9 @@ public class Collections { swap(arr, i-1, rnd.nextInt(i)); // Dump array back into list + // instead of using a raw type here, it's possible to capture + // the wildcard but it will require a call to a supplementary + // private method ListIterator it = list.listIterator(); for (int i=0; i list, int i, int j) { + // instead of using a raw type here, it's possible to capture + // the wildcard but it will require a call to a supplementary + // private method final List l = list; l.set(i, l.set(j, l.get(i))); } @@ -657,9 +669,10 @@ public class Collections { * @throws NoSuchElementException if the collection is empty. * @see Comparable */ + @SuppressWarnings({ "unchecked", "rawtypes" }) public static T min(Collection coll, Comparator comp) { if (comp==null) - return (T)min((Collection) (Collection) coll); + return (T)min((Collection) coll); Iterator i = coll.iterator(); T candidate = i.next(); @@ -727,9 +740,10 @@ public class Collections { * @throws NoSuchElementException if the collection is empty. * @see Comparable */ + @SuppressWarnings({ "unchecked", "rawtypes" }) public static T max(Collection coll, Comparator comp) { if (comp==null) - return (T)max((Collection) (Collection) coll); + return (T)max((Collection) coll); Iterator i = coll.iterator(); T candidate = i.next(); @@ -1389,7 +1403,9 @@ public class Collections { extends UnmodifiableSet> { private static final long serialVersionUID = 7854390611657943733L; + @SuppressWarnings({ "unchecked", "rawtypes" }) UnmodifiableEntrySet(Set> s) { + // Need to cast to raw in order to work around a limitation in the type system super((Set)s); } public Iterator> iterator() { @@ -1408,13 +1424,15 @@ public class Collections { }; } + @SuppressWarnings("unchecked") public Object[] toArray() { Object[] a = c.toArray(); for (int i=0; i((Map.Entry)a[i]); + a[i] = new UnmodifiableEntry<>((Map.Entry)a[i]); return a; } + @SuppressWarnings("unchecked") public T[] toArray(T[] a) { // We don't pass a to c.toArray, to avoid window of // vulnerability wherein an unscrupulous multithreaded client @@ -1422,7 +1440,7 @@ public class Collections { Object[] arr = c.toArray(a.length==0 ? a : Arrays.copyOf(a, 0)); for (int i=0; i((Map.Entry)arr[i]); + arr[i] = new UnmodifiableEntry<>((Map.Entry)arr[i]); if (arr.length > a.length) return (T[])arr; @@ -1464,7 +1482,7 @@ public class Collections { if (!(o instanceof Set)) return false; - Set s = (Set) o; + Set s = (Set) o; if (s.size() != c.size()) return false; return containsAll(s); // Invokes safe containsAll() above @@ -1493,7 +1511,7 @@ public class Collections { return true; if (!(o instanceof Map.Entry)) return false; - Map.Entry t = (Map.Entry)o; + Map.Entry t = (Map.Entry)o; return eq(e.getKey(), t.getKey()) && eq(e.getValue(), t.getValue()); } diff --git a/jdk/src/share/classes/java/util/ComparableTimSort.java b/jdk/src/share/classes/java/util/ComparableTimSort.java index 22427a2d353..ae1ab6a1e81 100644 --- a/jdk/src/share/classes/java/util/ComparableTimSort.java +++ b/jdk/src/share/classes/java/util/ComparableTimSort.java @@ -114,7 +114,6 @@ class ComparableTimSort { // Allocate temp storage (which may be increased later if necessary) int len = a.length; - @SuppressWarnings({"unchecked", "UnnecessaryLocalVariable"}) Object[] newArray = new Object[len < 2 * INITIAL_TMP_STORAGE_LENGTH ? len >>> 1 : INITIAL_TMP_STORAGE_LENGTH]; tmp = newArray; @@ -209,14 +208,13 @@ class ComparableTimSort { * @param start the index of the first element in the range that is * not already known to be sorted ({@code lo <= start <= hi}) */ - @SuppressWarnings("fallthrough") + @SuppressWarnings({ "fallthrough", "rawtypes", "unchecked" }) private static void binarySort(Object[] a, int lo, int hi, int start) { assert lo <= start && start <= hi; if (start == lo) start++; for ( ; start < hi; start++) { - @SuppressWarnings("unchecked") - Comparable pivot = (Comparable) a[start]; + Comparable pivot = (Comparable) a[start]; // Set left (and right) to the index where a[start] (pivot) belongs int left = lo; @@ -279,7 +277,7 @@ class ComparableTimSort { * @return the length of the run beginning at the specified position in * the specified array */ - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "rawtypes" }) private static int countRunAndMakeAscending(Object[] a, int lo, int hi) { assert lo < hi; int runHi = lo + 1; @@ -614,7 +612,7 @@ class ComparableTimSort { * (must be aBase + aLen) * @param len2 length of second run to be merged (must be > 0) */ - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "rawtypes" }) private void mergeLo(int base1, int len1, int base2, int len2) { assert len1 > 0 && len2 > 0 && base1 + len1 == base2; @@ -731,7 +729,7 @@ class ComparableTimSort { * (must be aBase + aLen) * @param len2 length of second run to be merged (must be > 0) */ - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "rawtypes" }) private void mergeHi(int base1, int len1, int base2, int len2) { assert len1 > 0 && len2 > 0 && base1 + len1 == base2; @@ -865,7 +863,6 @@ class ComparableTimSort { else newSize = Math.min(newSize, a.length >>> 1); - @SuppressWarnings({"unchecked", "UnnecessaryLocalVariable"}) Object[] newArray = new Object[newSize]; tmp = newArray; } diff --git a/jdk/src/share/classes/java/util/Currency.java b/jdk/src/share/classes/java/util/Currency.java index ad241c8ee27..1fbdad42cb9 100644 --- a/jdk/src/share/classes/java/util/Currency.java +++ b/jdk/src/share/classes/java/util/Currency.java @@ -404,7 +404,7 @@ public final class Currency implements Serializable { public static Set getAvailableCurrencies() { synchronized(Currency.class) { if (available == null) { - available = new HashSet(256); + available = new HashSet<>(256); // Add simple currencies first for (char c1 = 'A'; c1 <= 'Z'; c1 ++) { diff --git a/jdk/src/share/classes/java/util/EnumMap.java b/jdk/src/share/classes/java/util/EnumMap.java index a7c248f6167..90046abcfa6 100644 --- a/jdk/src/share/classes/java/util/EnumMap.java +++ b/jdk/src/share/classes/java/util/EnumMap.java @@ -120,11 +120,12 @@ public class EnumMap, V> extends AbstractMap return (value == null ? NULL : value); } + @SuppressWarnings("unchecked") private V unmaskNull(Object value) { - return (V) (value == NULL ? null : value); + return (V)(value == NULL ? null : value); } - private static final Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; + private static final Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; /** * Creates an empty enum map with the specified key type. @@ -218,12 +219,12 @@ public class EnumMap, V> extends AbstractMap * key */ public boolean containsKey(Object key) { - return isValidKey(key) && vals[((Enum)key).ordinal()] != null; + return isValidKey(key) && vals[((Enum)key).ordinal()] != null; } private boolean containsMapping(Object key, Object value) { return isValidKey(key) && - maskNull(value).equals(vals[((Enum)key).ordinal()]); + maskNull(value).equals(vals[((Enum)key).ordinal()]); } /** @@ -243,7 +244,7 @@ public class EnumMap, V> extends AbstractMap */ public V get(Object key) { return (isValidKey(key) ? - unmaskNull(vals[((Enum)key).ordinal()]) : null); + unmaskNull(vals[((Enum)key).ordinal()]) : null); } // Modification Operations @@ -285,7 +286,7 @@ public class EnumMap, V> extends AbstractMap public V remove(Object key) { if (!isValidKey(key)) return null; - int index = ((Enum)key).ordinal(); + int index = ((Enum)key).ordinal(); Object oldValue = vals[index]; vals[index] = null; if (oldValue != null) @@ -296,7 +297,7 @@ public class EnumMap, V> extends AbstractMap private boolean removeMapping(Object key, Object value) { if (!isValidKey(key)) return false; - int index = ((Enum)key).ordinal(); + int index = ((Enum)key).ordinal(); if (maskNull(value).equals(vals[index])) { vals[index] = null; size--; @@ -314,7 +315,7 @@ public class EnumMap, V> extends AbstractMap return false; // Cheaper than instanceof Enum followed by getDeclaringClass - Class keyClass = key.getClass(); + Class keyClass = key.getClass(); return keyClass == keyType || keyClass.getSuperclass() == keyType; } @@ -331,8 +332,7 @@ public class EnumMap, V> extends AbstractMap */ public void putAll(Map m) { if (m instanceof EnumMap) { - EnumMap em = - (EnumMap)m; + EnumMap em = (EnumMap)m; if (em.keyType != keyType) { if (em.isEmpty()) return; @@ -476,13 +476,13 @@ public class EnumMap, V> extends AbstractMap public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry)o; + Map.Entry entry = (Map.Entry)o; return containsMapping(entry.getKey(), entry.getValue()); } public boolean remove(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry)o; + Map.Entry entry = (Map.Entry)o; return removeMapping(entry.getKey(), entry.getValue()); } public int size() { @@ -610,7 +610,7 @@ public class EnumMap, V> extends AbstractMap if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; V ourValue = unmaskNull(vals[index]); Object hisValue = e.getValue(); return (e.getKey() == keyUniverse[index] && @@ -655,11 +655,11 @@ public class EnumMap, V> extends AbstractMap if (this == o) return true; if (o instanceof EnumMap) - return equals((EnumMap)o); + return equals((EnumMap)o); if (!(o instanceof Map)) return false; - Map m = (Map)o; + Map m = (Map)o; if (size != m.size()) return false; @@ -680,7 +680,7 @@ public class EnumMap, V> extends AbstractMap return true; } - private boolean equals(EnumMap em) { + private boolean equals(EnumMap em) { if (em.keyType != keyType) return size == 0 && em.size == 0; @@ -721,6 +721,7 @@ public class EnumMap, V> extends AbstractMap * * @return a shallow copy of this enum map */ + @SuppressWarnings("unchecked") public EnumMap clone() { EnumMap result = null; try { @@ -736,7 +737,7 @@ public class EnumMap, V> extends AbstractMap * Throws an exception if e is not of the correct type for this enum set. */ private void typeCheck(K key) { - Class keyClass = key.getClass(); + Class keyClass = key.getClass(); if (keyClass != keyType && keyClass.getSuperclass() != keyType) throw new ClassCastException(keyClass + " != " + keyType); } @@ -785,6 +786,7 @@ public class EnumMap, V> extends AbstractMap * Reconstitute the EnumMap instance from a stream (i.e., * deserialize it). */ + @SuppressWarnings("unchecked") private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { diff --git a/jdk/src/share/classes/java/util/EnumSet.java b/jdk/src/share/classes/java/util/EnumSet.java index 2c6a52ab907..dab4bd73e1d 100644 --- a/jdk/src/share/classes/java/util/EnumSet.java +++ b/jdk/src/share/classes/java/util/EnumSet.java @@ -88,11 +88,11 @@ public abstract class EnumSet> extends AbstractSet /** * All of the values comprising T. (Cached for performance.) */ - final Enum[] universe; + final Enum[] universe; - private static Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; + private static Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; - EnumSet(ClasselementType, Enum[] universe) { + EnumSet(ClasselementType, Enum[] universe) { this.elementType = elementType; this.universe = universe; } @@ -105,7 +105,7 @@ public abstract class EnumSet> extends AbstractSet * @throws NullPointerException if elementType is null */ public static > EnumSet noneOf(Class elementType) { - Enum[] universe = getUniverse(elementType); + Enum[] universe = getUniverse(elementType); if (universe == null) throw new ClassCastException(elementType + " not an enum"); @@ -358,6 +358,7 @@ public abstract class EnumSet> extends AbstractSet * * @return a copy of this set */ + @SuppressWarnings("unchecked") public EnumSet clone() { try { return (EnumSet) super.clone(); @@ -375,7 +376,7 @@ public abstract class EnumSet> extends AbstractSet * Throws an exception if e is not of the correct type for this enum set. */ final void typeCheck(E e) { - Class eClass = e.getClass(); + Class eClass = e.getClass(); if (eClass != elementType && eClass.getSuperclass() != elementType) throw new ClassCastException(eClass + " != " + elementType); } @@ -413,16 +414,19 @@ public abstract class EnumSet> extends AbstractSet * * @serial */ - private final Enum[] elements; + private final Enum[] elements; SerializationProxy(EnumSet set) { elementType = set.elementType; elements = set.toArray(ZERO_LENGTH_ENUM_ARRAY); } + // instead of cast to E, we should perhaps use elementType.cast() + // to avoid injection of forged stream, but it will slow the implementation + @SuppressWarnings("unchecked") private Object readResolve() { EnumSet result = EnumSet.noneOf(elementType); - for (Enum e : elements) + for (Enum e : elements) result.add((E)e); return result; } diff --git a/jdk/src/share/classes/java/util/HashMap.java b/jdk/src/share/classes/java/util/HashMap.java index 916d6951ec2..efc707fa28c 100644 --- a/jdk/src/share/classes/java/util/HashMap.java +++ b/jdk/src/share/classes/java/util/HashMap.java @@ -146,7 +146,7 @@ public class HashMap /** * The table, resized as necessary. Length MUST Always be a power of two. */ - transient Entry[] table; + transient Entry[] table; /** * The number of key-value mappings contained in this map. @@ -311,16 +311,17 @@ public class HashMap * * @see #put(Object, Object) */ + @SuppressWarnings("unchecked") public V get(Object key) { if (key == null) - return getForNullKey(); + return (V)getForNullKey(); int hash = hash(key.hashCode()); - for (Entry e = table[indexFor(hash, table.length)]; + for (Entry e = table[indexFor(hash, table.length)]; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || key.equals(k))) - return e.value; + return (V)e.value; } return null; } @@ -332,8 +333,8 @@ public class HashMap * operations (get and put), but incorporated with conditionals in * others. */ - private V getForNullKey() { - for (Entry e = table[0]; e != null; e = e.next) { + private Object getForNullKey() { + for (Entry e = table[0]; e != null; e = e.next) { if (e.key == null) return e.value; } @@ -357,15 +358,16 @@ public class HashMap * HashMap. Returns null if the HashMap contains no mapping * for the key. */ + @SuppressWarnings("unchecked") final Entry getEntry(Object key) { int hash = (key == null) ? 0 : hash(key.hashCode()); - for (Entry e = table[indexFor(hash, table.length)]; + for (Entry e = table[indexFor(hash, table.length)]; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k)))) - return e; + return (Entry)e; } return null; } @@ -388,7 +390,9 @@ public class HashMap return putForNullKey(value); int hash = hash(key.hashCode()); int i = indexFor(hash, table.length); - for (Entry e = table[i]; e != null; e = e.next) { + @SuppressWarnings("unchecked") + Entry e = (Entry)table[i]; + for(; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || key.equals(k))) { V oldValue = e.value; @@ -407,7 +411,9 @@ public class HashMap * Offloaded version of put for null keys */ private V putForNullKey(V value) { - for (Entry e = table[0]; e != null; e = e.next) { + @SuppressWarnings("unchecked") + Entry e = (Entry)table[0]; + for(; e != null; e = e.next) { if (e.key == null) { V oldValue = e.value; e.value = value; @@ -435,7 +441,8 @@ public class HashMap * clone or deserialize. It will only happen for construction if the * input Map is a sorted map whose ordering is inconsistent w/ equals. */ - for (Entry e = table[i]; e != null; e = e.next) { + for (@SuppressWarnings("unchecked") + Entry e = (Entry)table[i]; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k)))) { @@ -467,14 +474,14 @@ public class HashMap * is irrelevant). */ void resize(int newCapacity) { - Entry[] oldTable = table; + Entry[] oldTable = table; int oldCapacity = oldTable.length; if (oldCapacity == MAXIMUM_CAPACITY) { threshold = Integer.MAX_VALUE; return; } - Entry[] newTable = new Entry[newCapacity]; + Entry[] newTable = new Entry[newCapacity]; transfer(newTable); table = newTable; threshold = (int)(newCapacity * loadFactor); @@ -483,17 +490,18 @@ public class HashMap /** * Transfers all entries from current table to newTable. */ - void transfer(Entry[] newTable) { - Entry[] src = table; + @SuppressWarnings("unchecked") + void transfer(Entry[] newTable) { + Entry[] src = table; int newCapacity = newTable.length; for (int j = 0; j < src.length; j++) { - Entry e = src[j]; + Entry e = (Entry)src[j]; if (e != null) { src[j] = null; do { Entry next = e.next; int i = indexFor(e.hash, newCapacity); - e.next = newTable[i]; + e.next = (Entry)newTable[i]; newTable[i] = e; e = next; } while (e != null); @@ -560,7 +568,8 @@ public class HashMap final Entry removeEntryForKey(Object key) { int hash = (key == null) ? 0 : hash(key.hashCode()); int i = indexFor(hash, table.length); - Entry prev = table[i]; + @SuppressWarnings("unchecked") + Entry prev = (Entry)table[i]; Entry e = prev; while (e != null) { @@ -591,11 +600,12 @@ public class HashMap if (!(o instanceof Map.Entry)) return null; - Map.Entry entry = (Map.Entry) o; + Map.Entry entry = (Map.Entry) o; Object key = entry.getKey(); int hash = (key == null) ? 0 : hash(key.hashCode()); int i = indexFor(hash, table.length); - Entry prev = table[i]; + @SuppressWarnings("unchecked") + Entry prev = (Entry)table[i]; Entry e = prev; while (e != null) { @@ -623,7 +633,7 @@ public class HashMap */ public void clear() { modCount++; - Entry[] tab = table; + Entry[] tab = table; for (int i = 0; i < tab.length; i++) tab[i] = null; size = 0; @@ -641,9 +651,9 @@ public class HashMap if (value == null) return containsNullValue(); - Entry[] tab = table; + Entry[] tab = table; for (int i = 0; i < tab.length ; i++) - for (Entry e = tab[i] ; e != null ; e = e.next) + for (Entry e = tab[i] ; e != null ; e = e.next) if (value.equals(e.value)) return true; return false; @@ -653,9 +663,9 @@ public class HashMap * Special-case code for containsValue with null argument */ private boolean containsNullValue() { - Entry[] tab = table; + Entry[] tab = table; for (int i = 0; i < tab.length ; i++) - for (Entry e = tab[i] ; e != null ; e = e.next) + for (Entry e = tab[i] ; e != null ; e = e.next) if (e.value == null) return true; return false; @@ -667,6 +677,7 @@ public class HashMap * * @return a shallow copy of this map */ + @SuppressWarnings("unchecked") public Object clone() { HashMap result = null; try { @@ -674,7 +685,7 @@ public class HashMap } catch (CloneNotSupportedException e) { // assert false; } - result.table = new Entry[table.length]; + result.table = new Entry[table.length]; result.entrySet = null; result.modCount = 0; result.size = 0; @@ -717,7 +728,7 @@ public class HashMap public final boolean equals(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; Object k1 = getKey(); Object k2 = e.getKey(); if (k1 == k2 || (k1 != null && k1.equals(k2))) { @@ -762,7 +773,8 @@ public class HashMap * Subclass overrides this to alter the behavior of put method. */ void addEntry(int hash, K key, V value, int bucketIndex) { - Entry e = table[bucketIndex]; + @SuppressWarnings("unchecked") + Entry e = (Entry)table[bucketIndex]; table[bucketIndex] = new Entry<>(hash, key, value, e); if (size++ >= threshold) resize(2 * table.length); @@ -777,21 +789,22 @@ public class HashMap * clone, and readObject. */ void createEntry(int hash, K key, V value, int bucketIndex) { - Entry e = table[bucketIndex]; + @SuppressWarnings("unchecked") + Entry e = (Entry)table[bucketIndex]; table[bucketIndex] = new Entry<>(hash, key, value, e); size++; } private abstract class HashIterator implements Iterator { - Entry next; // next entry to return + Entry next; // next entry to return int expectedModCount; // For fast-fail int index; // current slot - Entry current; // current entry + Entry current; // current entry HashIterator() { expectedModCount = modCount; if (size > 0) { // advance to first entry - Entry[] t = table; + Entry[] t = table; while (index < t.length && (next = t[index++]) == null) ; } @@ -801,20 +814,21 @@ public class HashMap return next != null; } + @SuppressWarnings("unchecked") final Entry nextEntry() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); - Entry e = next; + Entry e = next; if (e == null) throw new NoSuchElementException(); if ((next = e.next) == null) { - Entry[] t = table; + Entry[] t = table; while (index < t.length && (next = t[index++]) == null) ; } current = e; - return e; + return (Entry)e; } public void remove() { @@ -965,7 +979,7 @@ public class HashMap public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry) o; + Map.Entry e = (Map.Entry) o; Entry candidate = getEntry(e.getKey()); return candidate != null && candidate.equals(e); } @@ -1039,8 +1053,10 @@ public class HashMap // Read the keys and values, and put the mappings in the HashMap for (int i=0; i * * @return a shallow copy of this set */ + @SuppressWarnings("unchecked") public Object clone() { try { HashSet newSet = (HashSet) super.clone(); @@ -296,7 +297,7 @@ public class HashSet // Read in HashMap capacity and load factor and create backing HashMap int capacity = s.readInt(); float loadFactor = s.readFloat(); - map = (((HashSet)this) instanceof LinkedHashSet ? + map = (((HashSet)this) instanceof LinkedHashSet ? new LinkedHashMap(capacity, loadFactor) : new HashMap(capacity, loadFactor)); @@ -305,7 +306,8 @@ public class HashSet // Read in all elements in the proper order. for (int i=0; i /** * The hash table data. */ - private transient Entry[] table; + private transient Entry[] table; /** * The total number of entries in the hash table. @@ -182,7 +182,7 @@ public class Hashtable if (initialCapacity==0) initialCapacity = 1; this.loadFactor = loadFactor; - table = new Entry[initialCapacity]; + table = new Entry[initialCapacity]; threshold = (int)(initialCapacity * loadFactor); } @@ -288,9 +288,9 @@ public class Hashtable throw new NullPointerException(); } - Entry tab[] = table; + Entry tab[] = table; for (int i = tab.length ; i-- > 0 ;) { - for (Entry e = tab[i] ; e != null ; e = e.next) { + for (Entry e = tab[i] ; e != null ; e = e.next) { if (e.value.equals(value)) { return true; } @@ -326,10 +326,10 @@ public class Hashtable * @see #contains(Object) */ public synchronized boolean containsKey(Object key) { - Entry tab[] = table; + Entry tab[] = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index] ; e != null ; e = e.next) { + for (Entry e = tab[index] ; e != null ; e = e.next) { if ((e.hash == hash) && e.key.equals(key)) { return true; } @@ -352,13 +352,14 @@ public class Hashtable * @throws NullPointerException if the specified key is null * @see #put(Object, Object) */ + @SuppressWarnings("unchecked") public synchronized V get(Object key) { - Entry tab[] = table; + Entry tab[] = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index] ; e != null ; e = e.next) { + for (Entry e = tab[index] ; e != null ; e = e.next) { if ((e.hash == hash) && e.key.equals(key)) { - return e.value; + return (V)e.value; } } return null; @@ -379,9 +380,10 @@ public class Hashtable * number of keys in the hashtable exceeds this hashtable's capacity * and load factor. */ + @SuppressWarnings("unchecked") protected void rehash() { int oldCapacity = table.length; - Entry[] oldMap = table; + Entry[] oldMap = table; // overflow-conscious code int newCapacity = (oldCapacity << 1) + 1; @@ -391,19 +393,19 @@ public class Hashtable return; newCapacity = MAX_ARRAY_SIZE; } - Entry[] newMap = new Entry[newCapacity]; + Entry[] newMap = new Entry[newCapacity]; modCount++; threshold = (int)(newCapacity * loadFactor); table = newMap; for (int i = oldCapacity ; i-- > 0 ;) { - for (Entry old = oldMap[i] ; old != null ; ) { + for (Entry old = (Entry)oldMap[i] ; old != null ; ) { Entry e = old; old = old.next; int index = (e.hash & 0x7FFFFFFF) % newCapacity; - e.next = newMap[index]; + e.next = (Entry)newMap[index]; newMap[index] = e; } } @@ -433,13 +435,15 @@ public class Hashtable } // Makes sure the key is not already in the hashtable. - Entry tab[] = table; + Entry tab[] = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index] ; e != null ; e = e.next) { - if ((e.hash == hash) && e.key.equals(key)) { - V old = e.value; - e.value = value; + @SuppressWarnings("unchecked") + Entry entry = (Entry)tab[index]; + for(; entry != null ; entry = entry.next) { + if ((entry.hash == hash) && entry.key.equals(key)) { + V old = entry.value; + entry.value = value; return old; } } @@ -454,7 +458,8 @@ public class Hashtable } // Creates the new entry. - Entry e = tab[index]; + @SuppressWarnings("unchecked") + Entry e = (Entry)tab[index]; tab[index] = new Entry<>(hash, key, value, e); count++; return null; @@ -470,10 +475,12 @@ public class Hashtable * @throws NullPointerException if the key is null */ public synchronized V remove(Object key) { - Entry tab[] = table; + Entry tab[] = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index], prev = null ; e != null ; prev = e, e = e.next) { + @SuppressWarnings("unchecked") + Entry e = (Entry)tab[index]; + for(Entry prev = null ; e != null ; prev = e, e = e.next) { if ((e.hash == hash) && e.key.equals(key)) { modCount++; if (prev != null) { @@ -508,7 +515,7 @@ public class Hashtable * Clears this hashtable so that it contains no keys. */ public synchronized void clear() { - Entry tab[] = table; + Entry tab[] = table; modCount++; for (int index = tab.length; --index >= 0; ) tab[index] = null; @@ -524,11 +531,11 @@ public class Hashtable */ public synchronized Object clone() { try { - Hashtable t = (Hashtable) super.clone(); - t.table = new Entry[table.length]; + Hashtable t = (Hashtable)super.clone(); + t.table = new Entry[table.length]; for (int i = table.length ; i-- > 0 ; ) { t.table[i] = (table[i] != null) - ? (Entry) table[i].clone() : null; + ? (Entry) table[i].clone() : null; } t.keySet = null; t.entrySet = null; @@ -675,13 +682,13 @@ public class Hashtable public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry)o; + Map.Entry entry = (Map.Entry)o; Object key = entry.getKey(); - Entry[] tab = table; + Entry[] tab = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index]; e != null; e = e.next) + for (Entry e = tab[index]; e != null; e = e.next) if (e.hash==hash && e.equals(entry)) return true; return false; @@ -690,14 +697,15 @@ public class Hashtable public boolean remove(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry) o; - K key = entry.getKey(); - Entry[] tab = table; + Map.Entry entry = (Map.Entry) o; + Object key = entry.getKey(); + Entry[] tab = table; int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index], prev = null; e != null; - prev = e, e = e.next) { + @SuppressWarnings("unchecked") + Entry e = (Entry)tab[index]; + for(Entry prev = null; e != null; prev = e, e = e.next) { if (e.hash==hash && e.equals(entry)) { modCount++; if (prev != null) @@ -776,7 +784,7 @@ public class Hashtable if (!(o instanceof Map)) return false; - Map t = (Map) o; + Map t = (Map) o; if (t.size() != size()) return false; @@ -826,9 +834,9 @@ public class Hashtable return h; // Returns zero loadFactor = -loadFactor; // Mark hashCode computation in progress - Entry[] tab = table; + Entry[] tab = table; for (int i = 0; i < tab.length; i++) - for (Entry e = tab[i]; e != null; e = e.next) + for (Entry e = tab[i]; e != null; e = e.next) h += e.key.hashCode() ^ e.value.hashCode(); loadFactor = -loadFactor; // Mark hashCode computation complete @@ -859,7 +867,7 @@ public class Hashtable // Stack copies of the entries in the table for (int index = 0; index < table.length; index++) { - Entry entry = table[index]; + Entry entry = table[index]; while (entry != null) { entryStack = @@ -899,14 +907,15 @@ public class Hashtable length--; if (origlength > 0 && length > origlength) length = origlength; - - Entry[] table = new Entry[length]; + Entry[] table = new Entry[length]; count = 0; // Read the number of elements and then all the key/value objects for (; elements > 0; elements--) { - K key = (K)s.readObject(); - V value = (V)s.readObject(); + @SuppressWarnings("unchecked") + K key = (K)s.readObject(); + @SuppressWarnings("unchecked") + V value = (V)s.readObject(); // synch could be eliminated for performance reconstitutionPut(table, key, value); } @@ -924,7 +933,7 @@ public class Hashtable * because we are creating a new instance. Also, no return value * is needed. */ - private void reconstitutionPut(Entry[] tab, K key, V value) + private void reconstitutionPut(Entry[] tab, K key, V value) throws StreamCorruptedException { if (value == null) { @@ -934,13 +943,14 @@ public class Hashtable // This should not happen in deserialized version. int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index] ; e != null ; e = e.next) { + for (Entry e = tab[index] ; e != null ; e = e.next) { if ((e.hash == hash) && e.key.equals(key)) { throw new java.io.StreamCorruptedException(); } } // Creates the new entry. - Entry e = tab[index]; + @SuppressWarnings("unchecked") + Entry e = (Entry)tab[index]; tab[index] = new Entry<>(hash, key, value, e); count++; } @@ -961,6 +971,7 @@ public class Hashtable this.next = next; } + @SuppressWarnings("unchecked") protected Object clone() { return new Entry<>(hash, key, value, (next==null ? null : (Entry) next.clone())); @@ -988,7 +999,7 @@ public class Hashtable public boolean equals(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; return (key==null ? e.getKey()==null : key.equals(e.getKey())) && (value==null ? e.getValue()==null : value.equals(e.getValue())); @@ -1016,10 +1027,10 @@ public class Hashtable * by passing an Enumeration. */ private class Enumerator implements Enumeration, Iterator { - Entry[] table = Hashtable.this.table; + Entry[] table = Hashtable.this.table; int index = table.length; - Entry entry = null; - Entry lastReturned = null; + Entry entry = null; + Entry lastReturned = null; int type; /** @@ -1041,9 +1052,9 @@ public class Hashtable } public boolean hasMoreElements() { - Entry e = entry; + Entry e = entry; int i = index; - Entry[] t = table; + Entry[] t = table; /* Use locals for faster loop iteration */ while (e == null && i > 0) { e = t[--i]; @@ -1053,10 +1064,11 @@ public class Hashtable return e != null; } + @SuppressWarnings("unchecked") public T nextElement() { - Entry et = entry; + Entry et = entry; int i = index; - Entry[] t = table; + Entry[] t = table; /* Use locals for faster loop iteration */ while (et == null && i > 0) { et = t[--i]; @@ -1064,7 +1076,7 @@ public class Hashtable entry = et; index = i; if (et != null) { - Entry e = lastReturned = entry; + Entry e = lastReturned = entry; entry = e.next; return type == KEYS ? (T)e.key : (type == VALUES ? (T)e.value : (T)e); } @@ -1091,11 +1103,12 @@ public class Hashtable throw new ConcurrentModificationException(); synchronized(Hashtable.this) { - Entry[] tab = Hashtable.this.table; + Entry[] tab = Hashtable.this.table; int index = (lastReturned.hash & 0x7FFFFFFF) % tab.length; - for (Entry e = tab[index], prev = null; e != null; - prev = e, e = e.next) { + @SuppressWarnings("unchecked") + Entry e = (Entry)tab[index]; + for(Entry prev = null; e != null; prev = e, e = e.next) { if (e == lastReturned) { modCount++; expectedModCount++; diff --git a/jdk/src/share/classes/java/util/IdentityHashMap.java b/jdk/src/share/classes/java/util/IdentityHashMap.java index 930c3ac108d..6355557df6d 100644 --- a/jdk/src/share/classes/java/util/IdentityHashMap.java +++ b/jdk/src/share/classes/java/util/IdentityHashMap.java @@ -327,6 +327,7 @@ public class IdentityHashMap * * @see #put(Object, Object) */ + @SuppressWarnings("unchecked") public V get(Object key) { Object k = maskNull(key); Object[] tab = table; @@ -431,7 +432,8 @@ public class IdentityHashMap Object item; while ( (item = tab[i]) != null) { if (item == k) { - V oldValue = (V) tab[i + 1]; + @SuppressWarnings("unchecked") + V oldValue = (V) tab[i + 1]; tab[i + 1] = value; return oldValue; } @@ -524,7 +526,8 @@ public class IdentityHashMap if (item == k) { modCount++; size--; - V oldValue = (V) tab[i + 1]; + @SuppressWarnings("unchecked") + V oldValue = (V) tab[i + 1]; tab[i + 1] = null; tab[i] = null; closeDeletion(i); @@ -638,7 +641,7 @@ public class IdentityHashMap if (o == this) { return true; } else if (o instanceof IdentityHashMap) { - IdentityHashMap m = (IdentityHashMap) o; + IdentityHashMap m = (IdentityHashMap) o; if (m.size() != size) return false; @@ -650,7 +653,7 @@ public class IdentityHashMap } return true; } else if (o instanceof Map) { - Map m = (Map)o; + Map m = (Map)o; return entrySet().equals(m.entrySet()); } else { return false; // o is not a Map @@ -698,7 +701,7 @@ public class IdentityHashMap */ public Object clone() { try { - IdentityHashMap m = (IdentityHashMap) super.clone(); + IdentityHashMap m = (IdentityHashMap) super.clone(); m.entrySet = null; m.table = table.clone(); return m; @@ -768,7 +771,7 @@ public class IdentityHashMap int len = tab.length; int d = deletedSlot; - K key = (K) tab[d]; + Object key = tab[d]; tab[d] = null; // vacate the slot tab[d + 1] = null; @@ -818,12 +821,14 @@ public class IdentityHashMap } private class KeyIterator extends IdentityHashMapIterator { + @SuppressWarnings("unchecked") public K next() { return (K) unmaskNull(traversalTable[nextIndex()]); } } private class ValueIterator extends IdentityHashMapIterator { + @SuppressWarnings("unchecked") public V next() { return (V) traversalTable[nextIndex() + 1]; } @@ -854,16 +859,19 @@ public class IdentityHashMap this.index = index; } + @SuppressWarnings("unchecked") public K getKey() { checkIndexForEntryUse(); return (K) unmaskNull(traversalTable[index]); } + @SuppressWarnings("unchecked") public V getValue() { checkIndexForEntryUse(); return (V) traversalTable[index+1]; } + @SuppressWarnings("unchecked") public V setValue(V value) { checkIndexForEntryUse(); V oldValue = (V) traversalTable[index+1]; @@ -880,7 +888,7 @@ public class IdentityHashMap if (!(o instanceof Map.Entry)) return false; - Map.Entry e = (Map.Entry)o; + Map.Entry e = (Map.Entry)o; return (e.getKey() == unmaskNull(traversalTable[index]) && e.getValue() == traversalTable[index+1]); } @@ -1109,13 +1117,13 @@ public class IdentityHashMap public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry)o; + Map.Entry entry = (Map.Entry)o; return containsMapping(entry.getKey(), entry.getValue()); } public boolean remove(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry)o; + Map.Entry entry = (Map.Entry)o; return removeMapping(entry.getKey(), entry.getValue()); } public int size() { @@ -1213,8 +1221,10 @@ public class IdentityHashMap // Read the keys and values, and put the mappings in the table for (int i=0; i private void putForCreate(K key, V value) throws IOException { - K k = (K)maskNull(key); + Object k = maskNull(key); Object[] tab = table; int len = tab.length; int i = hash(k, len); diff --git a/jdk/src/share/classes/java/util/IllegalFormatConversionException.java b/jdk/src/share/classes/java/util/IllegalFormatConversionException.java index 9bdbfc41dae..2b30922c047 100644 --- a/jdk/src/share/classes/java/util/IllegalFormatConversionException.java +++ b/jdk/src/share/classes/java/util/IllegalFormatConversionException.java @@ -40,7 +40,7 @@ public class IllegalFormatConversionException extends IllegalFormatException { private static final long serialVersionUID = 17000126L; private char c; - private Class arg; + private Class arg; /** * Constructs an instance of this class with the mismatched conversion and diff --git a/jdk/src/share/classes/java/util/JumboEnumSet.java b/jdk/src/share/classes/java/util/JumboEnumSet.java index 93802107bd4..5db15bbdace 100644 --- a/jdk/src/share/classes/java/util/JumboEnumSet.java +++ b/jdk/src/share/classes/java/util/JumboEnumSet.java @@ -46,7 +46,7 @@ class JumboEnumSet> extends EnumSet { // Redundant - maintained for performance private int size = 0; - JumboEnumSet(ClasselementType, Enum[] universe) { + JumboEnumSet(ClasselementType, Enum[] universe) { super(elementType, universe); elements = new long[(universe.length + 63) >>> 6]; } @@ -127,6 +127,7 @@ class JumboEnumSet> extends EnumSet { return unseen != 0; } + @Override public E next() { if (!hasNext()) throw new NoSuchElementException(); @@ -176,11 +177,11 @@ class JumboEnumSet> extends EnumSet { public boolean contains(Object e) { if (e == null) return false; - Class eClass = e.getClass(); + Class eClass = e.getClass(); if (eClass != elementType && eClass.getSuperclass() != elementType) return false; - int eOrdinal = ((Enum)e).ordinal(); + int eOrdinal = ((Enum)e).ordinal(); return (elements[eOrdinal >>> 6] & (1L << eOrdinal)) != 0; } @@ -217,10 +218,10 @@ class JumboEnumSet> extends EnumSet { public boolean remove(Object e) { if (e == null) return false; - Class eClass = e.getClass(); + Class eClass = e.getClass(); if (eClass != elementType && eClass.getSuperclass() != elementType) return false; - int eOrdinal = ((Enum)e).ordinal(); + int eOrdinal = ((Enum)e).ordinal(); int eWordNum = eOrdinal >>> 6; long oldElements = elements[eWordNum]; @@ -246,7 +247,7 @@ class JumboEnumSet> extends EnumSet { if (!(c instanceof JumboEnumSet)) return super.containsAll(c); - JumboEnumSet es = (JumboEnumSet)c; + JumboEnumSet es = (JumboEnumSet)c; if (es.elementType != elementType) return es.isEmpty(); @@ -268,7 +269,7 @@ class JumboEnumSet> extends EnumSet { if (!(c instanceof JumboEnumSet)) return super.addAll(c); - JumboEnumSet es = (JumboEnumSet)c; + JumboEnumSet es = (JumboEnumSet)c; if (es.elementType != elementType) { if (es.isEmpty()) return false; @@ -294,7 +295,7 @@ class JumboEnumSet> extends EnumSet { if (!(c instanceof JumboEnumSet)) return super.removeAll(c); - JumboEnumSet es = (JumboEnumSet)c; + JumboEnumSet es = (JumboEnumSet)c; if (es.elementType != elementType) return false; @@ -348,7 +349,7 @@ class JumboEnumSet> extends EnumSet { if (!(o instanceof JumboEnumSet)) return super.equals(o); - JumboEnumSet es = (JumboEnumSet)o; + JumboEnumSet es = (JumboEnumSet)o; if (es.elementType != elementType) return size == 0 && es.size == 0; diff --git a/jdk/src/share/classes/java/util/LinkedHashMap.java b/jdk/src/share/classes/java/util/LinkedHashMap.java index 4f80ec4f273..5e656c8d78e 100644 --- a/jdk/src/share/classes/java/util/LinkedHashMap.java +++ b/jdk/src/share/classes/java/util/LinkedHashMap.java @@ -246,11 +246,12 @@ public class LinkedHashMap * by superclass resize. It is overridden for performance, as it is * faster to iterate using our linked list. */ + @SuppressWarnings("unchecked") void transfer(HashMap.Entry[] newTable) { int newCapacity = newTable.length; for (Entry e = header.after; e != header; e = e.after) { int index = indexFor(e.hash, newCapacity); - e.next = newTable[index]; + e.next = (HashMap.Entry)newTable[index]; newTable[index] = e; } } @@ -267,11 +268,11 @@ public class LinkedHashMap public boolean containsValue(Object value) { // Overridden to take advantage of faster iterator if (value==null) { - for (Entry e = header.after; e != header; e = e.after) + for (Entry e = header.after; e != header; e = e.after) if (e.value==null) return true; } else { - for (Entry e = header.after; e != header; e = e.after) + for (Entry e = header.after; e != header; e = e.after) if (value.equals(e.value)) return true; } @@ -437,7 +438,8 @@ public class LinkedHashMap * table or remove the eldest entry. */ void createEntry(int hash, K key, V value, int bucketIndex) { - HashMap.Entry old = table[bucketIndex]; + @SuppressWarnings("unchecked") + HashMap.Entry old = (HashMap.Entry)table[bucketIndex]; Entry e = new Entry<>(hash, key, value, old); table[bucketIndex] = e; e.addBefore(header); diff --git a/jdk/src/share/classes/java/util/Observable.java b/jdk/src/share/classes/java/util/Observable.java index 7104071ff62..25295e8444f 100644 --- a/jdk/src/share/classes/java/util/Observable.java +++ b/jdk/src/share/classes/java/util/Observable.java @@ -61,12 +61,12 @@ package java.util; */ public class Observable { private boolean changed = false; - private Vector obs; + private Vector obs; /** Construct an Observable with zero Observers. */ public Observable() { - obs = new Vector(); + obs = new Vector<>(); } /** diff --git a/jdk/src/share/classes/java/util/PriorityQueue.java b/jdk/src/share/classes/java/util/PriorityQueue.java index b4416ab2d4b..bb9c114dd68 100644 --- a/jdk/src/share/classes/java/util/PriorityQueue.java +++ b/jdk/src/share/classes/java/util/PriorityQueue.java @@ -449,6 +449,7 @@ public class PriorityQueue extends AbstractQueue * this queue * @throws NullPointerException if the specified array is null */ + @SuppressWarnings("unchecked") public T[] toArray(T[] a) { if (a.length < size) // Make a new array of a's runtime type, but my contents: @@ -514,6 +515,7 @@ public class PriorityQueue extends AbstractQueue (forgetMeNot != null && !forgetMeNot.isEmpty()); } + @SuppressWarnings("unchecked") public E next() { if (expectedModCount != modCount) throw new ConcurrentModificationException(); @@ -571,8 +573,10 @@ public class PriorityQueue extends AbstractQueue return null; int s = --size; modCount++; - E result = (E) queue[0]; - E x = (E) queue[s]; + @SuppressWarnings("unchecked") + E result = (E) queue[0]; + @SuppressWarnings("unchecked") + E x = (E) queue[s]; queue[s] = null; if (s != 0) siftDown(0, x); @@ -598,7 +602,8 @@ public class PriorityQueue extends AbstractQueue if (s == i) // removed last element queue[i] = null; else { - E moved = (E) queue[s]; + @SuppressWarnings("unchecked") + E moved = (E) queue[s]; queue[s] = null; siftDown(i, moved); if (queue[i] == moved) { @@ -629,6 +634,7 @@ public class PriorityQueue extends AbstractQueue siftUpComparable(k, x); } + @SuppressWarnings("unchecked") private void siftUpComparable(int k, E x) { Comparable key = (Comparable) x; while (k > 0) { @@ -645,8 +651,9 @@ public class PriorityQueue extends AbstractQueue private void siftUpUsingComparator(int k, E x) { while (k > 0) { int parent = (k - 1) >>> 1; - Object e = queue[parent]; - if (comparator.compare(x, (E) e) >= 0) + @SuppressWarnings("unchecked") + E e = (E) queue[parent]; + if (comparator.compare(x, e) >= 0) break; queue[k] = e; k = parent; @@ -669,6 +676,7 @@ public class PriorityQueue extends AbstractQueue siftDownComparable(k, x); } + @SuppressWarnings("unchecked") private void siftDownComparable(int k, E x) { Comparable key = (Comparable)x; int half = size >>> 1; // loop while a non-leaf @@ -687,6 +695,7 @@ public class PriorityQueue extends AbstractQueue queue[k] = key; } + @SuppressWarnings("unchecked") private void siftDownUsingComparator(int k, E x) { int half = size >>> 1; while (k < half) { @@ -708,6 +717,7 @@ public class PriorityQueue extends AbstractQueue * Establishes the heap invariant (described above) in the entire tree, * assuming nothing about the order of the elements prior to the call. */ + @SuppressWarnings("unchecked") private void heapify() { for (int i = (size >>> 1) - 1; i >= 0; i--) siftDown(i, (E) queue[i]); diff --git a/jdk/src/share/classes/java/util/Properties.java b/jdk/src/share/classes/java/util/Properties.java index 7c7e13b6a9d..c2fdad48cda 100644 --- a/jdk/src/share/classes/java/util/Properties.java +++ b/jdk/src/share/classes/java/util/Properties.java @@ -824,7 +824,7 @@ class Properties extends Hashtable { bw.write("#" + new Date().toString()); bw.newLine(); synchronized (this) { - for (Enumeration e = keys(); e.hasMoreElements();) { + for (Enumeration e = keys(); e.hasMoreElements();) { String key = (String)e.nextElement(); String val = (String)get(key); key = saveConvert(key, true, escUnicode); @@ -987,7 +987,7 @@ class Properties extends Hashtable { * @see #stringPropertyNames */ public Enumeration propertyNames() { - Hashtable h = new Hashtable(); + Hashtable h = new Hashtable<>(); enumerate(h); return h.keys(); } @@ -1026,10 +1026,10 @@ class Properties extends Hashtable { */ public void list(PrintStream out) { out.println("-- listing properties --"); - Hashtable h = new Hashtable(); + Hashtable h = new Hashtable<>(); enumerate(h); - for (Enumeration e = h.keys() ; e.hasMoreElements() ;) { - String key = (String)e.nextElement(); + for (Enumeration e = h.keys() ; e.hasMoreElements() ;) { + String key = e.nextElement(); String val = (String)h.get(key); if (val.length() > 40) { val = val.substring(0, 37) + "..."; @@ -1054,10 +1054,10 @@ class Properties extends Hashtable { */ public void list(PrintWriter out) { out.println("-- listing properties --"); - Hashtable h = new Hashtable(); + Hashtable h = new Hashtable<>(); enumerate(h); - for (Enumeration e = h.keys() ; e.hasMoreElements() ;) { - String key = (String)e.nextElement(); + for (Enumeration e = h.keys() ; e.hasMoreElements() ;) { + String key = e.nextElement(); String val = (String)h.get(key); if (val.length() > 40) { val = val.substring(0, 37) + "..."; @@ -1072,11 +1072,11 @@ class Properties extends Hashtable { * @throws ClassCastException if any of the property keys * is not of String type. */ - private synchronized void enumerate(Hashtable h) { + private synchronized void enumerate(Hashtable h) { if (defaults != null) { defaults.enumerate(h); } - for (Enumeration e = keys() ; e.hasMoreElements() ;) { + for (Enumeration e = keys() ; e.hasMoreElements() ;) { String key = (String)e.nextElement(); h.put(key, get(key)); } @@ -1091,7 +1091,7 @@ class Properties extends Hashtable { if (defaults != null) { defaults.enumerateStringProperties(h); } - for (Enumeration e = keys() ; e.hasMoreElements() ;) { + for (Enumeration e = keys() ; e.hasMoreElements() ;) { Object k = e.nextElement(); Object v = get(k); if (k instanceof String && v instanceof String) { diff --git a/jdk/src/share/classes/java/util/PropertyPermission.java b/jdk/src/share/classes/java/util/PropertyPermission.java index 17731883598..c89b28bf4d2 100644 --- a/jdk/src/share/classes/java/util/PropertyPermission.java +++ b/jdk/src/share/classes/java/util/PropertyPermission.java @@ -442,7 +442,7 @@ implements Serializable * Key is property name; value is PropertyPermission. * Not serialized; see serialization section at end of class. */ - private transient Map perms; + private transient Map perms; /** * Boolean saying if "*" is in the collection. @@ -488,7 +488,7 @@ implements Serializable String propName = pp.getName(); synchronized (this) { - PropertyPermission existing = (PropertyPermission) perms.get(propName); + PropertyPermission existing = perms.get(propName); if (existing != null) { int oldMask = existing.getMask(); @@ -499,7 +499,7 @@ implements Serializable perms.put(propName, new PropertyPermission(propName, actions)); } } else { - perms.put(propName, permission); + perms.put(propName, pp); } } @@ -533,7 +533,7 @@ implements Serializable // short circuit if the "*" Permission was added if (all_allowed) { synchronized (this) { - x = (PropertyPermission) perms.get("*"); + x = perms.get("*"); } if (x != null) { effective |= x.getMask(); @@ -550,7 +550,7 @@ implements Serializable //System.out.println("check "+name); synchronized (this) { - x = (PropertyPermission) perms.get(name); + x = perms.get(name); } if (x != null) { @@ -570,7 +570,7 @@ implements Serializable name = name.substring(0, last+1) + "*"; //System.out.println("check "+name); synchronized (this) { - x = (PropertyPermission) perms.get(name); + x = perms.get(name); } if (x != null) { @@ -592,11 +592,15 @@ implements Serializable * * @return an enumeration of all the PropertyPermission objects. */ - + @SuppressWarnings("unchecked") public Enumeration elements() { // Convert Iterator of Map values into an Enumeration synchronized (this) { - return Collections.enumeration(perms.values()); + /** + * Casting to rawtype since Enumeration + * cannot be directly cast to Enumeration + */ + return (Enumeration)Collections.enumeration(perms.values()); } } @@ -633,7 +637,8 @@ implements Serializable // Don't call out.defaultWriteObject() // Copy perms into a Hashtable - Hashtable permissions = new Hashtable<>(perms.size()*2); + Hashtable permissions = + new Hashtable<>(perms.size()*2); synchronized (this) { permissions.putAll(perms); } @@ -661,8 +666,8 @@ implements Serializable // Get permissions @SuppressWarnings("unchecked") - Hashtable permissions = - (Hashtable)gfields.get("permissions", null); + Hashtable permissions = + (Hashtable)gfields.get("permissions", null); perms = new HashMap<>(permissions.size()*2); perms.putAll(permissions); } diff --git a/jdk/src/share/classes/java/util/RegularEnumSet.java b/jdk/src/share/classes/java/util/RegularEnumSet.java index 4bcb5780b00..63f5f52e664 100644 --- a/jdk/src/share/classes/java/util/RegularEnumSet.java +++ b/jdk/src/share/classes/java/util/RegularEnumSet.java @@ -41,7 +41,7 @@ class RegularEnumSet> extends EnumSet { */ private long elements = 0L; - RegularEnumSet(ClasselementType, Enum[] universe) { + RegularEnumSet(ClasselementType, Enum[] universe) { super(elementType, universe); } @@ -96,6 +96,7 @@ class RegularEnumSet> extends EnumSet { return unseen != 0; } + @SuppressWarnings("unchecked") public E next() { if (unseen == 0) throw new NoSuchElementException(); @@ -139,11 +140,11 @@ class RegularEnumSet> extends EnumSet { public boolean contains(Object e) { if (e == null) return false; - Class eClass = e.getClass(); + Class eClass = e.getClass(); if (eClass != elementType && eClass.getSuperclass() != elementType) return false; - return (elements & (1L << ((Enum)e).ordinal())) != 0; + return (elements & (1L << ((Enum)e).ordinal())) != 0; } // Modification Operations @@ -160,7 +161,7 @@ class RegularEnumSet> extends EnumSet { typeCheck(e); long oldElements = elements; - elements |= (1L << ((Enum)e).ordinal()); + elements |= (1L << ((Enum)e).ordinal()); return elements != oldElements; } @@ -173,12 +174,12 @@ class RegularEnumSet> extends EnumSet { public boolean remove(Object e) { if (e == null) return false; - Class eClass = e.getClass(); + Class eClass = e.getClass(); if (eClass != elementType && eClass.getSuperclass() != elementType) return false; long oldElements = elements; - elements &= ~(1L << ((Enum)e).ordinal()); + elements &= ~(1L << ((Enum)e).ordinal()); return elements != oldElements; } @@ -197,7 +198,7 @@ class RegularEnumSet> extends EnumSet { if (!(c instanceof RegularEnumSet)) return super.containsAll(c); - RegularEnumSet es = (RegularEnumSet)c; + RegularEnumSet es = (RegularEnumSet)c; if (es.elementType != elementType) return es.isEmpty(); @@ -216,7 +217,7 @@ class RegularEnumSet> extends EnumSet { if (!(c instanceof RegularEnumSet)) return super.addAll(c); - RegularEnumSet es = (RegularEnumSet)c; + RegularEnumSet es = (RegularEnumSet)c; if (es.elementType != elementType) { if (es.isEmpty()) return false; @@ -242,7 +243,7 @@ class RegularEnumSet> extends EnumSet { if (!(c instanceof RegularEnumSet)) return super.removeAll(c); - RegularEnumSet es = (RegularEnumSet)c; + RegularEnumSet es = (RegularEnumSet)c; if (es.elementType != elementType) return false; @@ -295,7 +296,7 @@ class RegularEnumSet> extends EnumSet { if (!(o instanceof RegularEnumSet)) return super.equals(o); - RegularEnumSet es = (RegularEnumSet)o; + RegularEnumSet es = (RegularEnumSet)o; if (es.elementType != elementType) return elements == 0 && es.elements == 0; return es.elements == elements; diff --git a/jdk/src/share/classes/java/util/ResourceBundle.java b/jdk/src/share/classes/java/util/ResourceBundle.java index c7b425db7ac..6be14d590fa 100644 --- a/jdk/src/share/classes/java/util/ResourceBundle.java +++ b/jdk/src/share/classes/java/util/ResourceBundle.java @@ -294,7 +294,8 @@ public abstract class ResourceBundle { /** * Queue for reference objects referring to class loaders or bundles. */ - private static final ReferenceQueue referenceQueue = new ReferenceQueue<>(); + private static final ReferenceQueue referenceQueue = + new ReferenceQueue<>(); /** * The parent bundle of this bundle. @@ -417,7 +418,7 @@ public abstract class ResourceBundle { * caller's caller. */ private static ClassLoader getLoader() { - Class[] stack = getClassContext(); + Class[] stack = getClassContext(); /* Magic number 2 identifies our caller's caller */ Class c = stack[2]; ClassLoader cl = (c == null) ? null : c.getClassLoader(); @@ -434,7 +435,7 @@ public abstract class ResourceBundle { return cl; } - private static native Class[] getClassContext(); + private static native Class[] getClassContext(); /** * A wrapper of ClassLoader.getSystemClassLoader(). diff --git a/jdk/src/share/classes/java/util/ServiceLoader.java b/jdk/src/share/classes/java/util/ServiceLoader.java index b3c34ae24cf..62aa9dd2453 100644 --- a/jdk/src/share/classes/java/util/ServiceLoader.java +++ b/jdk/src/share/classes/java/util/ServiceLoader.java @@ -218,20 +218,20 @@ public final class ServiceLoader reload(); } - private static void fail(Class service, String msg, Throwable cause) + private static void fail(Class service, String msg, Throwable cause) throws ServiceConfigurationError { throw new ServiceConfigurationError(service.getName() + ": " + msg, cause); } - private static void fail(Class service, String msg) + private static void fail(Class service, String msg) throws ServiceConfigurationError { throw new ServiceConfigurationError(service.getName() + ": " + msg); } - private static void fail(Class service, URL u, int line, String msg) + private static void fail(Class service, URL u, int line, String msg) throws ServiceConfigurationError { fail(service, u + ":" + line + ": " + msg); @@ -240,7 +240,7 @@ public final class ServiceLoader // Parse a single line from the given configuration file, adding the name // on the line to the names list. // - private int parseLine(Class service, URL u, BufferedReader r, int lc, + private int parseLine(Class service, URL u, BufferedReader r, int lc, List names) throws IOException, ServiceConfigurationError { @@ -286,7 +286,7 @@ public final class ServiceLoader // If an I/O error occurs while reading from the given URL, or // if a configuration-file format error is detected // - private Iterator parse(Class service, URL u) + private Iterator parse(Class service, URL u) throws ServiceConfigurationError { InputStream in = null; diff --git a/jdk/src/share/classes/java/util/TimeZone.java b/jdk/src/share/classes/java/util/TimeZone.java index e9d6cef056b..647e350e4b3 100644 --- a/jdk/src/share/classes/java/util/TimeZone.java +++ b/jdk/src/share/classes/java/util/TimeZone.java @@ -428,7 +428,7 @@ abstract public class TimeZone implements Serializable, Cloneable { // The structure is: // Map(key=id, value=SoftReference(Map(key=locale, value=displaynames))) private static final Map>> CACHE = - new ConcurrentHashMap>>(); + new ConcurrentHashMap<>(); } private static final String[] getDisplayNames(String id, Locale locale) { @@ -452,9 +452,9 @@ abstract public class TimeZone implements Serializable, Cloneable { String[] names = TimeZoneNameUtility.retrieveDisplayNames(id, locale); if (names != null) { - Map perLocale = new ConcurrentHashMap(); + Map perLocale = new ConcurrentHashMap<>(); perLocale.put(locale, names); - ref = new SoftReference>(perLocale); + ref = new SoftReference<>(perLocale); displayNames.put(id, ref); } return names; diff --git a/jdk/src/share/classes/java/util/TreeMap.java b/jdk/src/share/classes/java/util/TreeMap.java index c7aae652466..dfa1509774e 100644 --- a/jdk/src/share/classes/java/util/TreeMap.java +++ b/jdk/src/share/classes/java/util/TreeMap.java @@ -307,7 +307,7 @@ public class TreeMap public void putAll(Map map) { int mapSize = map.size(); if (size==0 && mapSize!=0 && map instanceof SortedMap) { - Comparator c = ((SortedMap)map).comparator(); + Comparator c = ((SortedMap)map).comparator(); if (c == comparator || (c != null && c.equals(comparator))) { ++modCount; try { @@ -340,7 +340,8 @@ public class TreeMap return getEntryUsingComparator(key); if (key == null) throw new NullPointerException(); - Comparable k = (Comparable) key; + @SuppressWarnings("unchecked") + Comparable k = (Comparable) key; Entry p = root; while (p != null) { int cmp = k.compareTo(p.key); @@ -361,7 +362,8 @@ public class TreeMap * worthwhile here.) */ final Entry getEntryUsingComparator(Object key) { - K k = (K) key; + @SuppressWarnings("unchecked") + K k = (K) key; Comparator cpr = comparator; if (cpr != null) { Entry p = root; @@ -554,7 +556,8 @@ public class TreeMap else { if (key == null) throw new NullPointerException(); - Comparable k = (Comparable) key; + @SuppressWarnings("unchecked") + Comparable k = (Comparable) key; do { parent = t; cmp = k.compareTo(t.key); @@ -618,9 +621,9 @@ public class TreeMap * @return a shallow copy of this map */ public Object clone() { - TreeMap clone = null; + TreeMap clone; try { - clone = (TreeMap) super.clone(); + clone = (TreeMap) super.clone(); } catch (CloneNotSupportedException e) { throw new InternalError(e); } @@ -803,7 +806,7 @@ public class TreeMap */ public NavigableSet navigableKeySet() { KeySet nks = navigableKeySet; - return (nks != null) ? nks : (navigableKeySet = new KeySet(this)); + return (nks != null) ? nks : (navigableKeySet = new KeySet<>(this)); } /** @@ -859,9 +862,9 @@ public class TreeMap public NavigableMap descendingMap() { NavigableMap km = descendingMap; return (km != null) ? km : - (descendingMap = new DescendingSubMap(this, - true, null, true, - true, null, true)); + (descendingMap = new DescendingSubMap<>(this, + true, null, true, + true, null, true)); } /** @@ -874,9 +877,9 @@ public class TreeMap */ public NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) { - return new AscendingSubMap(this, - false, fromKey, fromInclusive, - false, toKey, toInclusive); + return new AscendingSubMap<>(this, + false, fromKey, fromInclusive, + false, toKey, toInclusive); } /** @@ -888,9 +891,9 @@ public class TreeMap * @since 1.6 */ public NavigableMap headMap(K toKey, boolean inclusive) { - return new AscendingSubMap(this, - true, null, true, - false, toKey, inclusive); + return new AscendingSubMap<>(this, + true, null, true, + false, toKey, inclusive); } /** @@ -902,9 +905,9 @@ public class TreeMap * @since 1.6 */ public NavigableMap tailMap(K fromKey, boolean inclusive) { - return new AscendingSubMap(this, - false, fromKey, inclusive, - true, null, true); + return new AscendingSubMap<>(this, + false, fromKey, inclusive, + true, null, true); } /** @@ -978,8 +981,8 @@ public class TreeMap public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry) o; - V value = entry.getValue(); + Map.Entry entry = (Map.Entry) o; + Object value = entry.getValue(); Entry p = getEntry(entry.getKey()); return p != null && valEquals(p.getValue(), value); } @@ -987,8 +990,8 @@ public class TreeMap public boolean remove(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry) o; - V value = entry.getValue(); + Map.Entry entry = (Map.Entry) o; + Object value = entry.getValue(); Entry p = getEntry(entry.getKey()); if (p != null && valEquals(p.getValue(), value)) { deleteEntry(p); @@ -1023,21 +1026,21 @@ public class TreeMap } static final class KeySet extends AbstractSet implements NavigableSet { - private final NavigableMap m; - KeySet(NavigableMap map) { m = map; } + private final NavigableMap m; + KeySet(NavigableMap map) { m = map; } public Iterator iterator() { if (m instanceof TreeMap) - return ((TreeMap)m).keyIterator(); + return ((TreeMap)m).keyIterator(); else - return (Iterator)(((TreeMap.NavigableSubMap)m).keyIterator()); + return ((TreeMap.NavigableSubMap)m).keyIterator(); } public Iterator descendingIterator() { if (m instanceof TreeMap) - return ((TreeMap)m).descendingKeyIterator(); + return ((TreeMap)m).descendingKeyIterator(); else - return (Iterator)(((TreeMap.NavigableSubMap)m).descendingKeyIterator()); + return ((TreeMap.NavigableSubMap)m).descendingKeyIterator(); } public int size() { return m.size(); } @@ -1052,11 +1055,11 @@ public class TreeMap public E last() { return m.lastKey(); } public Comparator comparator() { return m.comparator(); } public E pollFirst() { - Map.Entry e = m.pollFirstEntry(); + Map.Entry e = m.pollFirstEntry(); return (e == null) ? null : e.getKey(); } public E pollLast() { - Map.Entry e = m.pollLastEntry(); + Map.Entry e = m.pollLastEntry(); return (e == null) ? null : e.getKey(); } public boolean remove(Object o) { @@ -1085,7 +1088,7 @@ public class TreeMap return tailSet(fromElement, true); } public NavigableSet descendingSet() { - return new KeySet(m.descendingMap()); + return new KeySet<>(m.descendingMap()); } } @@ -1184,6 +1187,7 @@ public class TreeMap /** * Compares two keys using the correct comparison method for this TreeMap. */ + @SuppressWarnings("unchecked") final int compare(Object k1, Object k2) { return comparator==null ? ((Comparable)k1).compareTo((K)k2) : comparator.compare((K)k1, (K)k2); @@ -1488,7 +1492,7 @@ public class TreeMap public final NavigableSet navigableKeySet() { KeySet nksv = navigableKeySetView; return (nksv != null) ? nksv : - (navigableKeySetView = new TreeMap.KeySet(this)); + (navigableKeySetView = new TreeMap.KeySet<>(this)); } public final Set keySet() { @@ -1522,7 +1526,7 @@ public class TreeMap if (size == -1 || sizeModCount != m.modCount) { sizeModCount = m.modCount; size = 0; - Iterator i = iterator(); + Iterator i = iterator(); while (i.hasNext()) { size++; i.next(); @@ -1539,11 +1543,11 @@ public class TreeMap public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry) o; - K key = entry.getKey(); + Map.Entry entry = (Map.Entry) o; + Object key = entry.getKey(); if (!inRange(key)) return false; - TreeMap.Entry node = m.getEntry(key); + TreeMap.Entry node = m.getEntry(key); return node != null && valEquals(node.getValue(), entry.getValue()); } @@ -1551,8 +1555,8 @@ public class TreeMap public boolean remove(Object o) { if (!(o instanceof Map.Entry)) return false; - Map.Entry entry = (Map.Entry) o; - K key = entry.getKey(); + Map.Entry entry = (Map.Entry) o; + Object key = entry.getKey(); if (!inRange(key)) return false; TreeMap.Entry node = m.getEntry(key); @@ -1709,34 +1713,34 @@ public class TreeMap throw new IllegalArgumentException("fromKey out of range"); if (!inRange(toKey, toInclusive)) throw new IllegalArgumentException("toKey out of range"); - return new AscendingSubMap(m, - false, fromKey, fromInclusive, - false, toKey, toInclusive); + return new AscendingSubMap<>(m, + false, fromKey, fromInclusive, + false, toKey, toInclusive); } public NavigableMap headMap(K toKey, boolean inclusive) { if (!inRange(toKey, inclusive)) throw new IllegalArgumentException("toKey out of range"); - return new AscendingSubMap(m, - fromStart, lo, loInclusive, - false, toKey, inclusive); + return new AscendingSubMap<>(m, + fromStart, lo, loInclusive, + false, toKey, inclusive); } public NavigableMap tailMap(K fromKey, boolean inclusive) { if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); - return new AscendingSubMap(m, - false, fromKey, inclusive, - toEnd, hi, hiInclusive); + return new AscendingSubMap<>(m, + false, fromKey, inclusive, + toEnd, hi, hiInclusive); } public NavigableMap descendingMap() { NavigableMap mv = descendingMapView; return (mv != null) ? mv : (descendingMapView = - new DescendingSubMap(m, - fromStart, lo, loInclusive, - toEnd, hi, hiInclusive)); + new DescendingSubMap<>(m, + fromStart, lo, loInclusive, + toEnd, hi, hiInclusive)); } Iterator keyIterator() { @@ -1790,34 +1794,34 @@ public class TreeMap throw new IllegalArgumentException("fromKey out of range"); if (!inRange(toKey, toInclusive)) throw new IllegalArgumentException("toKey out of range"); - return new DescendingSubMap(m, - false, toKey, toInclusive, - false, fromKey, fromInclusive); + return new DescendingSubMap<>(m, + false, toKey, toInclusive, + false, fromKey, fromInclusive); } public NavigableMap headMap(K toKey, boolean inclusive) { if (!inRange(toKey, inclusive)) throw new IllegalArgumentException("toKey out of range"); - return new DescendingSubMap(m, - false, toKey, inclusive, - toEnd, hi, hiInclusive); + return new DescendingSubMap<>(m, + false, toKey, inclusive, + toEnd, hi, hiInclusive); } public NavigableMap tailMap(K fromKey, boolean inclusive) { if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); - return new DescendingSubMap(m, - fromStart, lo, loInclusive, - false, fromKey, inclusive); + return new DescendingSubMap<>(m, + fromStart, lo, loInclusive, + false, fromKey, inclusive); } public NavigableMap descendingMap() { NavigableMap mv = descendingMapView; return (mv != null) ? mv : (descendingMapView = - new AscendingSubMap(m, - fromStart, lo, loInclusive, - toEnd, hi, hiInclusive)); + new AscendingSubMap<>(m, + fromStart, lo, loInclusive, + toEnd, hi, hiInclusive)); } Iterator keyIterator() { @@ -1862,9 +1866,9 @@ public class TreeMap private boolean fromStart = false, toEnd = false; private K fromKey, toKey; private Object readResolve() { - return new AscendingSubMap(TreeMap.this, - fromStart, fromKey, true, - toEnd, toKey, false); + return new AscendingSubMap<>(TreeMap.this, + fromStart, fromKey, true, + toEnd, toKey, false); } public Set> entrySet() { throw new InternalError(); } public K lastKey() { throw new InternalError(); } @@ -2331,12 +2335,12 @@ public class TreeMap * @param defaultVal if non-null, this default value is used for * each value in the map. If null, each value is read from * iterator or stream, as described above. - * @throws IOException propagated from stream reads. This cannot + * @throws java.io.IOException propagated from stream reads. This cannot * occur if str is null. * @throws ClassNotFoundException propagated from readObject. * This cannot occur if str is null. */ - private void buildFromSorted(int size, Iterator it, + private void buildFromSorted(int size, Iterator it, java.io.ObjectInputStream str, V defaultVal) throws java.io.IOException, ClassNotFoundException { @@ -2359,9 +2363,10 @@ public class TreeMap * @param redLevel the level at which nodes should be red. * Must be equal to computeRedLevel for tree of this size. */ + @SuppressWarnings("unchecked") private final Entry buildFromSorted(int level, int lo, int hi, int redLevel, - Iterator it, + Iterator it, java.io.ObjectInputStream str, V defaultVal) throws java.io.IOException, ClassNotFoundException { @@ -2391,9 +2396,9 @@ public class TreeMap V value; if (it != null) { if (defaultVal==null) { - Map.Entry entry = (Map.Entry)it.next(); - key = entry.getKey(); - value = entry.getValue(); + Map.Entry entry = (Map.Entry)it.next(); + key = (K)entry.getKey(); + value = (V)entry.getValue(); } else { key = (K)it.next(); value = defaultVal; diff --git a/jdk/src/share/classes/java/util/TreeSet.java b/jdk/src/share/classes/java/util/TreeSet.java index 6b2a33d3b53..db71096da04 100644 --- a/jdk/src/share/classes/java/util/TreeSet.java +++ b/jdk/src/share/classes/java/util/TreeSet.java @@ -302,7 +302,7 @@ public class TreeSet extends AbstractSet m instanceof TreeMap) { SortedSet set = (SortedSet) c; TreeMap map = (TreeMap) m; - Comparator cc = (Comparator) set.comparator(); + Comparator cc = set.comparator(); Comparator mc = map.comparator(); if (cc==mc || (cc != null && cc.equals(mc))) { map.addAllForTreeSet(set, PRESENT); @@ -469,8 +469,9 @@ public class TreeSet extends AbstractSet * * @return a shallow copy of this set */ + @SuppressWarnings("unchecked") public Object clone() { - TreeSet clone = null; + TreeSet clone; try { clone = (TreeSet) super.clone(); } catch (CloneNotSupportedException e) { @@ -519,14 +520,11 @@ public class TreeSet extends AbstractSet s.defaultReadObject(); // Read in Comparator - Comparator c = (Comparator) s.readObject(); + @SuppressWarnings("unchecked") + Comparator c = (Comparator) s.readObject(); // Create backing TreeMap - TreeMap tm; - if (c==null) - tm = new TreeMap<>(); - else - tm = new TreeMap<>(c); + TreeMap tm = new TreeMap<>(c); m = tm; // Read in size diff --git a/jdk/src/share/classes/java/util/WeakHashMap.java b/jdk/src/share/classes/java/util/WeakHashMap.java index eb6152069c9..f5f62375e94 100644 --- a/jdk/src/share/classes/java/util/WeakHashMap.java +++ b/jdk/src/share/classes/java/util/WeakHashMap.java @@ -186,7 +186,7 @@ public class WeakHashMap @SuppressWarnings("unchecked") private Entry[] newTable(int n) { - return (Entry[]) new Entry[n]; + return (Entry[]) new Entry[n]; } /** From 3f500741421e06658cf9c4d16eb4c72cf7592475 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Wed, 18 Apr 2012 09:29:09 +0400 Subject: [PATCH 68/82] 7156194: [macosx] Can't type non-ASCII characters into applets Reviewed-by: anthony, art --- .../sun/lwawt/macosx/CEmbeddedFrame.java | 11 ++++++++-- .../sun/lwawt/macosx/CPlatformResponder.java | 21 ++++++++++++++++++- .../sun/lwawt/macosx/CPlatformView.java | 2 +- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java index 7fd2a0f8f96..e173d7372f2 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java @@ -88,13 +88,20 @@ public class CEmbeddedFrame extends EmbeddedFrame { responder.handleScrollEvent(x, y, modifierFlags, deltaX, deltaY); } + public void handleKeyEvent(int eventType, int modifierFlags, String characters, + String charsIgnoringMods, boolean isRepeat, short keyCode, + boolean needsKeyTyped) { + responder.handleKeyEvent(eventType, modifierFlags, charsIgnoringMods, keyCode, needsKeyTyped); + } + + // REMIND: delete this method once 'deploy' changes for 7156194 is pushed public void handleKeyEvent(int eventType, int modifierFlags, String characters, String charsIgnoringMods, boolean isRepeat, short keyCode) { - responder.handleKeyEvent(eventType, modifierFlags, charsIgnoringMods, keyCode); + handleKeyEvent(eventType, modifierFlags, characters, charsIgnoringMods, isRepeat, keyCode, true); } public void handleInputEvent(String text) { - new RuntimeException("Not implemented"); + responder.handleInputEvent(text); } public void handleFocusEvent(boolean focused) { diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java index 7c234ff15c6..739e5679008 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java @@ -117,7 +117,7 @@ final class CPlatformResponder { * Handles key events. */ void handleKeyEvent(int eventType, int modifierFlags, String chars, - short keyCode) { + short keyCode, boolean needsKeyTyped) { boolean isFlagsChangedEvent = isNpapiCallback ? (eventType == CocoaConstants.NPCocoaEventFlagsChanged) : (eventType == CocoaConstants.NSFlagsChanged); @@ -173,6 +173,10 @@ final class CPlatformResponder { peer.dispatchKeyEvent(jeventType, when, jmodifiers, jkeyCode, javaChar, jkeyLocation); + // Current browser may be sending input events, so don't + // post the KEY_TYPED here. + postsTyped &= needsKeyTyped; + // That's the reaction on the PRESSED (not RELEASED) event as it comes to // appear in MacOSX. // Modifier keys (shift, etc) don't want to send TYPED events. @@ -185,4 +189,19 @@ final class CPlatformResponder { KeyEvent.KEY_LOCATION_UNKNOWN); } } + + void handleInputEvent(String text) { + if (text != null) { + int index = 0, length = text.length(); + char c; + while (index < length) { + c = text.charAt(index); + peer.dispatchKeyEvent(KeyEvent.KEY_TYPED, + System.currentTimeMillis(), + 0, KeyEvent.VK_UNDEFINED, c, + KeyEvent.KEY_LOCATION_UNKNOWN); + index++; + } + } + } } diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java index 04bcb747911..77a81e0d78f 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java @@ -199,7 +199,7 @@ public class CPlatformView extends CFRetainedResource { private void deliverKeyEvent(NSEvent event) { responder.handleKeyEvent(event.getType(), event.getModifierFlags(), - event.getCharactersIgnoringModifiers(), event.getKeyCode()); + event.getCharactersIgnoringModifiers(), event.getKeyCode(), true); } private void deliverWindowDidExposeEvent() { From 01ea4199c71e6da26cedf2ec1fd954980ce09419 Mon Sep 17 00:00:00 2001 From: Antonios Printezis Date: Wed, 18 Apr 2012 07:21:15 -0400 Subject: [PATCH 69/82] 7157073: G1: type change size_t -> uint for region counts / indexes Change the type of fields / variables / etc. that represent region counts and indeces from size_t to uint. Reviewed-by: iveresov, brutisso, jmasa, jwilhelm --- .../gc_implementation/g1/HeapRegionSeq.java | 4 +- .../g1/HeapRegionSetBase.java | 4 +- .../g1/collectionSetChooser.cpp | 23 ++- .../g1/collectionSetChooser.hpp | 8 +- .../gc_implementation/g1/concurrentMark.cpp | 66 ++++---- .../gc_implementation/g1/concurrentMark.hpp | 2 +- .../g1/concurrentMark.inline.hpp | 2 +- .../vm/gc_implementation/g1/g1AllocRegion.cpp | 6 +- .../vm/gc_implementation/g1/g1AllocRegion.hpp | 6 +- .../gc_implementation/g1/g1CollectedHeap.cpp | 152 +++++++++--------- .../gc_implementation/g1/g1CollectedHeap.hpp | 46 +++--- .../g1/g1CollectorPolicy.cpp | 127 ++++++++------- .../g1/g1CollectorPolicy.hpp | 93 ++++++----- .../vm/gc_implementation/g1/g1ErgoVerbose.hpp | 4 +- .../g1/g1MonitoringSupport.cpp | 24 +-- .../g1/g1MonitoringSupport.hpp | 4 +- .../vm/gc_implementation/g1/heapRegion.cpp | 10 +- .../vm/gc_implementation/g1/heapRegion.hpp | 11 +- .../gc_implementation/g1/heapRegionRemSet.cpp | 45 +++--- .../gc_implementation/g1/heapRegionRemSet.hpp | 8 +- .../vm/gc_implementation/g1/heapRegionSeq.cpp | 87 +++++----- .../vm/gc_implementation/g1/heapRegionSeq.hpp | 36 ++--- .../g1/heapRegionSeq.inline.hpp | 10 +- .../vm/gc_implementation/g1/heapRegionSet.cpp | 51 +++--- .../vm/gc_implementation/g1/heapRegionSet.hpp | 22 +-- .../g1/heapRegionSet.inline.hpp | 8 +- .../vm/gc_implementation/g1/sparsePRT.cpp | 7 +- .../vm/gc_implementation/g1/vmStructs_g1.hpp | 6 +- 28 files changed, 432 insertions(+), 440 deletions(-) diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java index d0da28bdd8a..5bd7f443de6 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -42,7 +42,7 @@ import sun.jvm.hotspot.types.TypeDataBase; public class HeapRegionSeq extends VMObject { // HeapRegion** _regions; static private AddressField regionsField; - // size_t _length; + // uint _length; static private CIntegerField lengthField; static { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSetBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSetBase.java index 2fbdce7f06c..4ac8f72c25f 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSetBase.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSetBase.java @@ -40,9 +40,9 @@ import sun.jvm.hotspot.types.TypeDataBase; // Mirror class for HeapRegionSetBase. Represents a group of regions. public class HeapRegionSetBase extends VMObject { - // size_t _length; + // uint _length; static private CIntegerField lengthField; - // size_t _region_num; + // uint _region_num; static private CIntegerField regionNumField; // size_t _total_used_bytes; static private CIntegerField totalUsedBytesField; diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp index 3a383267b08..29a03275c61 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp @@ -273,7 +273,7 @@ void CollectionSetChooser::sortMarkedHeapRegions() { assert(verify(), "CSet chooser verification"); } -size_t CollectionSetChooser::calcMinOldCSetLength() { +uint CollectionSetChooser::calcMinOldCSetLength() { // The min old CSet region bound is based on the maximum desired // number of mixed GCs after a cycle. I.e., even if some old regions // look expensive, we should add them to the CSet anyway to make @@ -291,10 +291,10 @@ size_t CollectionSetChooser::calcMinOldCSetLength() { if (result * gc_num < region_num) { result += 1; } - return result; + return (uint) result; } -size_t CollectionSetChooser::calcMaxOldCSetLength() { +uint CollectionSetChooser::calcMaxOldCSetLength() { // The max old CSet region bound is based on the threshold expressed // as a percentage of the heap size. I.e., it should bound the // number of old regions added to the CSet irrespective of how many @@ -308,7 +308,7 @@ size_t CollectionSetChooser::calcMaxOldCSetLength() { if (100 * result < region_num * perc) { result += 1; } - return result; + return (uint) result; } void CollectionSetChooser::addMarkedHeapRegion(HeapRegion* hr) { @@ -321,10 +321,10 @@ void CollectionSetChooser::addMarkedHeapRegion(HeapRegion* hr) { hr->calc_gc_efficiency(); } -void CollectionSetChooser::prepareForAddMarkedHeapRegionsPar(size_t n_regions, - size_t chunkSize) { +void CollectionSetChooser::prepareForAddMarkedHeapRegionsPar(uint n_regions, + uint chunkSize) { _first_par_unreserved_idx = 0; - int n_threads = ParallelGCThreads; + uint n_threads = (uint) ParallelGCThreads; if (UseDynamicNumberOfGCThreads) { assert(G1CollectedHeap::heap()->workers()->active_workers() > 0, "Should have been set earlier"); @@ -335,12 +335,11 @@ void CollectionSetChooser::prepareForAddMarkedHeapRegionsPar(size_t n_regions, n_threads = MAX2(G1CollectedHeap::heap()->workers()->active_workers(), 1U); } - size_t max_waste = n_threads * chunkSize; + uint max_waste = n_threads * chunkSize; // it should be aligned with respect to chunkSize - size_t aligned_n_regions = - (n_regions + (chunkSize - 1)) / chunkSize * chunkSize; - assert( aligned_n_regions % chunkSize == 0, "should be aligned" ); - _markedRegions.at_put_grow((int)(aligned_n_regions + max_waste - 1), NULL); + uint aligned_n_regions = (n_regions + chunkSize - 1) / chunkSize * chunkSize; + assert(aligned_n_regions % chunkSize == 0, "should be aligned"); + _markedRegions.at_put_grow((int) (aligned_n_regions + max_waste - 1), NULL); } jint CollectionSetChooser::getParMarkedHeapRegionChunk(jint n_regions) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp index 3bf90ebff30..caf18206066 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp @@ -150,18 +150,18 @@ public: // Calculate the minimum number of old regions we'll add to the CSet // during a mixed GC. - size_t calcMinOldCSetLength(); + uint calcMinOldCSetLength(); // Calculate the maximum number of old regions we'll add to the CSet // during a mixed GC. - size_t calcMaxOldCSetLength(); + uint calcMaxOldCSetLength(); // Serial version. void addMarkedHeapRegion(HeapRegion *hr); // Must be called before calls to getParMarkedHeapRegionChunk. // "n_regions" is the number of regions, "chunkSize" the chunk size. - void prepareForAddMarkedHeapRegionsPar(size_t n_regions, size_t chunkSize); + void prepareForAddMarkedHeapRegionsPar(uint n_regions, uint chunkSize); // Returns the first index in a contiguous chunk of "n_regions" indexes // that the calling thread has reserved. These must be set by the // calling thread using "setMarkedHeapRegion" (to NULL if necessary). @@ -176,7 +176,7 @@ public: void clearMarkedHeapRegions(); // Return the number of candidate regions that remain to be collected. - size_t remainingRegions() { return _length - _curr_index; } + uint remainingRegions() { return (uint) (_length - _curr_index); } // Determine whether the CSet chooser has more candidate regions or not. bool isEmpty() { return remainingRegions() == 0; } diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 04bd4783a08..15eb1b6ea56 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -403,8 +403,7 @@ uint ConcurrentMark::scale_parallel_threads(uint n_par_threads) { return MAX2((n_par_threads + 2) / 4, 1U); } -ConcurrentMark::ConcurrentMark(ReservedSpace rs, - int max_regions) : +ConcurrentMark::ConcurrentMark(ReservedSpace rs, uint max_regions) : _markBitMap1(rs, MinObjAlignment - 1), _markBitMap2(rs, MinObjAlignment - 1), @@ -415,7 +414,7 @@ ConcurrentMark::ConcurrentMark(ReservedSpace rs, _cleanup_sleep_factor(0.0), _cleanup_task_overhead(1.0), _cleanup_list("Cleanup List"), - _region_bm(max_regions, false /* in_resource_area*/), + _region_bm((BitMap::idx_t) max_regions, false /* in_resource_area*/), _card_bm((rs.size() + CardTableModRefBS::card_size - 1) >> CardTableModRefBS::card_shift, false /* in_resource_area*/), @@ -497,7 +496,7 @@ ConcurrentMark::ConcurrentMark(ReservedSpace rs, _task_queues->register_queue(i, task_queue); _count_card_bitmaps[i] = BitMap(card_bm_size, false); - _count_marked_bytes[i] = NEW_C_HEAP_ARRAY(size_t, max_regions); + _count_marked_bytes[i] = NEW_C_HEAP_ARRAY(size_t, (size_t) max_regions); _tasks[i] = new CMTask(i, this, _count_marked_bytes[i], @@ -1228,18 +1227,17 @@ public: void set_bit_for_region(HeapRegion* hr) { assert(!hr->continuesHumongous(), "should have filtered those out"); - size_t index = hr->hrs_index(); + BitMap::idx_t index = (BitMap::idx_t) hr->hrs_index(); if (!hr->startsHumongous()) { // Normal (non-humongous) case: just set the bit. - _region_bm->par_at_put((BitMap::idx_t) index, true); + _region_bm->par_at_put(index, true); } else { // Starts humongous case: calculate how many regions are part of // this humongous region and then set the bit range. G1CollectedHeap* g1h = G1CollectedHeap::heap(); HeapRegion *last_hr = g1h->heap_region_containing_raw(hr->end() - 1); - size_t end_index = last_hr->hrs_index() + 1; - _region_bm->par_at_put_range((BitMap::idx_t) index, - (BitMap::idx_t) end_index, true); + BitMap::idx_t end_index = (BitMap::idx_t) last_hr->hrs_index() + 1; + _region_bm->par_at_put_range(index, end_index, true); } } @@ -1418,7 +1416,7 @@ public: // Verify that _top_at_conc_count == ntams if (hr->top_at_conc_mark_count() != hr->next_top_at_mark_start()) { if (_verbose) { - gclog_or_tty->print_cr("Region " SIZE_FORMAT ": top at conc count incorrect: " + gclog_or_tty->print_cr("Region %u: top at conc count incorrect: " "expected " PTR_FORMAT ", actual: " PTR_FORMAT, hr->hrs_index(), hr->next_top_at_mark_start(), hr->top_at_conc_mark_count()); @@ -1434,7 +1432,7 @@ public: // we have missed accounting some objects during the actual marking. if (exp_marked_bytes > act_marked_bytes) { if (_verbose) { - gclog_or_tty->print_cr("Region " SIZE_FORMAT ": marked bytes mismatch: " + gclog_or_tty->print_cr("Region %u: marked bytes mismatch: " "expected: " SIZE_FORMAT ", actual: " SIZE_FORMAT, hr->hrs_index(), exp_marked_bytes, act_marked_bytes); } @@ -1445,15 +1443,16 @@ public: // (which was just calculated) region bit maps. // We're not OK if the bit in the calculated expected region // bitmap is set and the bit in the actual region bitmap is not. - BitMap::idx_t index = (BitMap::idx_t)hr->hrs_index(); + BitMap::idx_t index = (BitMap::idx_t) hr->hrs_index(); bool expected = _exp_region_bm->at(index); bool actual = _region_bm->at(index); if (expected && !actual) { if (_verbose) { - gclog_or_tty->print_cr("Region " SIZE_FORMAT ": region bitmap mismatch: " - "expected: %d, actual: %d", - hr->hrs_index(), expected, actual); + gclog_or_tty->print_cr("Region %u: region bitmap mismatch: " + "expected: %s, actual: %s", + hr->hrs_index(), + BOOL_TO_STR(expected), BOOL_TO_STR(actual)); } failures += 1; } @@ -1471,9 +1470,10 @@ public: if (expected && !actual) { if (_verbose) { - gclog_or_tty->print_cr("Region " SIZE_FORMAT ": card bitmap mismatch at " SIZE_FORMAT ": " - "expected: %d, actual: %d", - hr->hrs_index(), i, expected, actual); + gclog_or_tty->print_cr("Region %u: card bitmap mismatch at " SIZE_FORMAT ": " + "expected: %s, actual: %s", + hr->hrs_index(), i, + BOOL_TO_STR(expected), BOOL_TO_STR(actual)); } failures += 1; } @@ -1603,18 +1603,17 @@ class FinalCountDataUpdateClosure: public HeapRegionClosure { void set_bit_for_region(HeapRegion* hr) { assert(!hr->continuesHumongous(), "should have filtered those out"); - size_t index = hr->hrs_index(); + BitMap::idx_t index = (BitMap::idx_t) hr->hrs_index(); if (!hr->startsHumongous()) { // Normal (non-humongous) case: just set the bit. - _region_bm->par_set_bit((BitMap::idx_t) index); + _region_bm->par_set_bit(index); } else { // Starts humongous case: calculate how many regions are part of // this humongous region and then set the bit range. G1CollectedHeap* g1h = G1CollectedHeap::heap(); HeapRegion *last_hr = g1h->heap_region_containing_raw(hr->end() - 1); - size_t end_index = last_hr->hrs_index() + 1; - _region_bm->par_at_put_range((BitMap::idx_t) index, - (BitMap::idx_t) end_index, true); + BitMap::idx_t end_index = (BitMap::idx_t) last_hr->hrs_index() + 1; + _region_bm->par_at_put_range(index, end_index, true); } } @@ -1718,8 +1717,8 @@ public: _n_workers = 1; } - _live_bytes = NEW_C_HEAP_ARRAY(size_t, _n_workers); - _used_bytes = NEW_C_HEAP_ARRAY(size_t, _n_workers); + _live_bytes = NEW_C_HEAP_ARRAY(size_t, (size_t) _n_workers); + _used_bytes = NEW_C_HEAP_ARRAY(size_t, (size_t) _n_workers); } ~G1ParFinalCountTask() { @@ -1768,7 +1767,7 @@ class G1NoteEndOfConcMarkClosure : public HeapRegionClosure { G1CollectedHeap* _g1; int _worker_num; size_t _max_live_bytes; - size_t _regions_claimed; + uint _regions_claimed; size_t _freed_bytes; FreeRegionList* _local_cleanup_list; OldRegionSet* _old_proxy_set; @@ -1821,7 +1820,7 @@ public: } size_t max_live_bytes() { return _max_live_bytes; } - size_t regions_claimed() { return _regions_claimed; } + uint regions_claimed() { return _regions_claimed; } double claimed_region_time_sec() { return _claimed_region_time; } double max_region_time_sec() { return _max_region_time; } }; @@ -2146,7 +2145,7 @@ void ConcurrentMark::completeCleanup() { if (G1ConcRegionFreeingVerbose) { gclog_or_tty->print_cr("G1ConcRegionFreeing [complete cleanup] : " - "cleanup list has "SIZE_FORMAT" entries", + "cleanup list has %u entries", _cleanup_list.length()); } @@ -2168,9 +2167,8 @@ void ConcurrentMark::completeCleanup() { _cleanup_list.is_empty()) { if (G1ConcRegionFreeingVerbose) { gclog_or_tty->print_cr("G1ConcRegionFreeing [complete cleanup] : " - "appending "SIZE_FORMAT" entries to the " - "secondary_free_list, clean list still has " - SIZE_FORMAT" entries", + "appending %u entries to the secondary_free_list, " + "cleanup list still has %u entries", tmp_free_list.length(), _cleanup_list.length()); } @@ -3140,7 +3138,7 @@ class AggregateCountDataHRClosure: public HeapRegionClosure { assert(limit_idx <= end_idx, "or else use atomics"); // Aggregate the "stripe" in the count data associated with hr. - size_t hrs_index = hr->hrs_index(); + uint hrs_index = hr->hrs_index(); size_t marked_bytes = 0; for (int i = 0; (size_t)i < _max_task_num; i += 1) { @@ -3248,7 +3246,7 @@ void ConcurrentMark::clear_all_count_data() { // of the final counting task. _region_bm.clear(); - size_t max_regions = _g1h->max_regions(); + uint max_regions = _g1h->max_regions(); assert(_max_task_num != 0, "unitialized"); for (int i = 0; (size_t) i < _max_task_num; i += 1) { @@ -3258,7 +3256,7 @@ void ConcurrentMark::clear_all_count_data() { assert(task_card_bm->size() == _card_bm.size(), "size mismatch"); assert(marked_bytes_array != NULL, "uninitialized"); - memset(marked_bytes_array, 0, (max_regions * sizeof(size_t))); + memset(marked_bytes_array, 0, (size_t) max_regions * sizeof(size_t)); task_card_bm->clear(); } } diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp index deb471adbec..ac1eff7aa40 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp @@ -636,7 +636,7 @@ public: return _task_queues->steal(task_num, hash_seed, obj); } - ConcurrentMark(ReservedSpace rs, int max_regions); + ConcurrentMark(ReservedSpace rs, uint max_regions); ~ConcurrentMark(); ConcurrentMarkThread* cmThread() { return _cmThread; } diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp index 27c3411051d..aca12a885e1 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp @@ -49,7 +49,7 @@ inline void ConcurrentMark::count_region(MemRegion mr, HeapRegion* hr, HeapWord* start = mr.start(); HeapWord* last = mr.last(); size_t region_size_bytes = mr.byte_size(); - size_t index = hr->hrs_index(); + uint index = hr->hrs_index(); assert(!hr->continuesHumongous(), "should not be HC region"); assert(hr == g1h->heap_region_containing(start), "sanity"); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp index ca31817197b..bb02d6acead 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -140,7 +140,7 @@ HeapWord* G1AllocRegion::new_alloc_region_and_allocate(size_t word_size, } void G1AllocRegion::fill_in_ext_msg(ar_ext_msg* msg, const char* message) { - msg->append("[%s] %s c: "SIZE_FORMAT" b: %s r: "PTR_FORMAT" u: "SIZE_FORMAT, + msg->append("[%s] %s c: %u b: %s r: "PTR_FORMAT" u: "SIZE_FORMAT, _name, message, _count, BOOL_TO_STR(_bot_updates), _alloc_region, _used_bytes_before); } @@ -215,7 +215,7 @@ void G1AllocRegion::trace(const char* str, size_t word_size, HeapWord* result) { jio_snprintf(rest_buffer, buffer_length, ""); } - tty->print_cr("[%s] "SIZE_FORMAT" %s : %s %s", + tty->print_cr("[%s] %u %s : %s %s", _name, _count, hr_buffer, str, rest_buffer); } } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp index caf7ff9888f..1f2c6cbdc2f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -64,7 +64,7 @@ private: // the region that is re-used using the set() method. This count can // be used in any heuristics that might want to bound how many // distinct regions this object can used during an active interval. - size_t _count; + uint _count; // When we set up a new active region we save its used bytes in this // field so that, when we retire it, we can calculate how much space @@ -136,7 +136,7 @@ public: return (_alloc_region == _dummy_region) ? NULL : _alloc_region; } - size_t count() { return _count; } + uint count() { return _count; } // The following two are the building blocks for the allocation method. diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index bcdf53f486a..924296718e8 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -234,7 +234,7 @@ void YoungList::empty_list() { bool YoungList::check_list_well_formed() { bool ret = true; - size_t length = 0; + uint length = 0; HeapRegion* curr = _head; HeapRegion* last = NULL; while (curr != NULL) { @@ -253,7 +253,7 @@ bool YoungList::check_list_well_formed() { if (!ret) { gclog_or_tty->print_cr("### YOUNG LIST seems not well formed!"); - gclog_or_tty->print_cr("### list has %d entries, _length is %d", + gclog_or_tty->print_cr("### list has %u entries, _length is %u", length, _length); } @@ -264,7 +264,7 @@ bool YoungList::check_list_empty(bool check_sample) { bool ret = true; if (_length != 0) { - gclog_or_tty->print_cr("### YOUNG LIST should have 0 length, not %d", + gclog_or_tty->print_cr("### YOUNG LIST should have 0 length, not %u", _length); ret = false; } @@ -337,8 +337,7 @@ YoungList::reset_auxilary_lists() { _g1h->g1_policy()->add_region_to_incremental_cset_rhs(curr); young_index_in_cset += 1; } - assert((size_t) young_index_in_cset == _survivor_length, - "post-condition"); + assert((uint) young_index_in_cset == _survivor_length, "post-condition"); _g1h->g1_policy()->note_stop_adding_survivor_regions(); _head = _survivor_head; @@ -533,7 +532,7 @@ G1CollectedHeap::new_region_try_secondary_free_list() { if (!_secondary_free_list.is_empty()) { if (G1ConcRegionFreeingVerbose) { gclog_or_tty->print_cr("G1ConcRegionFreeing [region alloc] : " - "secondary_free_list has "SIZE_FORMAT" entries", + "secondary_free_list has %u entries", _secondary_free_list.length()); } // It looks as if there are free regions available on the @@ -619,12 +618,12 @@ HeapRegion* G1CollectedHeap::new_region(size_t word_size, bool do_expand) { return res; } -size_t G1CollectedHeap::humongous_obj_allocate_find_first(size_t num_regions, - size_t word_size) { +uint G1CollectedHeap::humongous_obj_allocate_find_first(uint num_regions, + size_t word_size) { assert(isHumongous(word_size), "word_size should be humongous"); assert(num_regions * HeapRegion::GrainWords >= word_size, "pre-condition"); - size_t first = G1_NULL_HRS_INDEX; + uint first = G1_NULL_HRS_INDEX; if (num_regions == 1) { // Only one region to allocate, no need to go through the slower // path. The caller will attempt the expasion if this fails, so @@ -650,7 +649,7 @@ size_t G1CollectedHeap::humongous_obj_allocate_find_first(size_t num_regions, if (free_regions() >= num_regions) { first = _hrs.find_contiguous(num_regions); if (first != G1_NULL_HRS_INDEX) { - for (size_t i = first; i < first + num_regions; ++i) { + for (uint i = first; i < first + num_regions; ++i) { HeapRegion* hr = region_at(i); assert(hr->is_empty(), "sanity"); assert(is_on_master_free_list(hr), "sanity"); @@ -664,15 +663,15 @@ size_t G1CollectedHeap::humongous_obj_allocate_find_first(size_t num_regions, } HeapWord* -G1CollectedHeap::humongous_obj_allocate_initialize_regions(size_t first, - size_t num_regions, +G1CollectedHeap::humongous_obj_allocate_initialize_regions(uint first, + uint num_regions, size_t word_size) { assert(first != G1_NULL_HRS_INDEX, "pre-condition"); assert(isHumongous(word_size), "word_size should be humongous"); assert(num_regions * HeapRegion::GrainWords >= word_size, "pre-condition"); // Index of last region in the series + 1. - size_t last = first + num_regions; + uint last = first + num_regions; // We need to initialize the region(s) we just discovered. This is // a bit tricky given that it can happen concurrently with @@ -683,7 +682,7 @@ G1CollectedHeap::humongous_obj_allocate_initialize_regions(size_t first, // a specific order. // The word size sum of all the regions we will allocate. - size_t word_size_sum = num_regions * HeapRegion::GrainWords; + size_t word_size_sum = (size_t) num_regions * HeapRegion::GrainWords; assert(word_size <= word_size_sum, "sanity"); // This will be the "starts humongous" region. @@ -722,7 +721,7 @@ G1CollectedHeap::humongous_obj_allocate_initialize_regions(size_t first, // Then, if there are any, we will set up the "continues // humongous" regions. HeapRegion* hr = NULL; - for (size_t i = first + 1; i < last; ++i) { + for (uint i = first + 1; i < last; ++i) { hr = region_at(i); hr->set_continuesHumongous(first_hr); } @@ -768,7 +767,7 @@ G1CollectedHeap::humongous_obj_allocate_initialize_regions(size_t first, // last one) is actually used when we will free up the humongous // region in free_humongous_region(). hr = NULL; - for (size_t i = first + 1; i < last; ++i) { + for (uint i = first + 1; i < last; ++i) { hr = region_at(i); if ((i + 1) == last) { // last continues humongous region @@ -804,14 +803,14 @@ HeapWord* G1CollectedHeap::humongous_obj_allocate(size_t word_size) { verify_region_sets_optional(); - size_t num_regions = - round_to(word_size, HeapRegion::GrainWords) / HeapRegion::GrainWords; - size_t x_size = expansion_regions(); - size_t fs = _hrs.free_suffix(); - size_t first = humongous_obj_allocate_find_first(num_regions, word_size); + size_t word_size_rounded = round_to(word_size, HeapRegion::GrainWords); + uint num_regions = (uint) (word_size_rounded / HeapRegion::GrainWords); + uint x_num = expansion_regions(); + uint fs = _hrs.free_suffix(); + uint first = humongous_obj_allocate_find_first(num_regions, word_size); if (first == G1_NULL_HRS_INDEX) { // The only thing we can do now is attempt expansion. - if (fs + x_size >= num_regions) { + if (fs + x_num >= num_regions) { // If the number of regions we're trying to allocate for this // object is at most the number of regions in the free suffix, // then the call to humongous_obj_allocate_find_first() above @@ -1781,7 +1780,7 @@ void G1CollectedHeap::shrink_helper(size_t shrink_bytes) { ReservedSpace::page_align_size_down(shrink_bytes); aligned_shrink_bytes = align_size_down(aligned_shrink_bytes, HeapRegion::GrainBytes); - size_t num_regions_deleted = 0; + uint num_regions_deleted = 0; MemRegion mr = _hrs.shrink_by(aligned_shrink_bytes, &num_regions_deleted); HeapWord* old_end = (HeapWord*) _g1_storage.high(); assert(mr.end() == old_end, "post-condition"); @@ -2004,7 +2003,7 @@ jint G1CollectedHeap::initialize() { _reserved.set_start((HeapWord*)heap_rs.base()); _reserved.set_end((HeapWord*)(heap_rs.base() + heap_rs.size())); - _expansion_regions = max_byte_size/HeapRegion::GrainBytes; + _expansion_regions = (uint) (max_byte_size / HeapRegion::GrainBytes); // Create the gen rem set (and barrier set) for the entire reserved region. _rem_set = collector_policy()->create_rem_set(_reserved, 2); @@ -2041,7 +2040,7 @@ jint G1CollectedHeap::initialize() { // 6843694 - ensure that the maximum region index can fit // in the remembered set structures. - const size_t max_region_idx = ((size_t)1 << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1; + const uint max_region_idx = (1U << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1; guarantee((max_regions() - 1) <= max_region_idx, "too many regions"); size_t max_cards_per_region = ((size_t)1 << (sizeof(CardIdx_t)*BitsPerByte-1)) - 1; @@ -2057,13 +2056,14 @@ jint G1CollectedHeap::initialize() { _g1h = this; _in_cset_fast_test_length = max_regions(); - _in_cset_fast_test_base = NEW_C_HEAP_ARRAY(bool, _in_cset_fast_test_length); + _in_cset_fast_test_base = + NEW_C_HEAP_ARRAY(bool, (size_t) _in_cset_fast_test_length); // We're biasing _in_cset_fast_test to avoid subtracting the // beginning of the heap every time we want to index; basically // it's the same with what we do with the card table. _in_cset_fast_test = _in_cset_fast_test_base - - ((size_t) _g1_reserved.start() >> HeapRegion::LogOfHRGrainBytes); + ((uintx) _g1_reserved.start() >> HeapRegion::LogOfHRGrainBytes); // Clear the _cset_fast_test bitmap in anticipation of adding // regions to the incremental collection set for the first @@ -2072,7 +2072,7 @@ jint G1CollectedHeap::initialize() { // Create the ConcurrentMark data structure and thread. // (Must do this late, so that "max_regions" is defined.) - _cm = new ConcurrentMark(heap_rs, (int) max_regions()); + _cm = new ConcurrentMark(heap_rs, max_regions()); _cmThread = _cm->cmThread(); // Initialize the from_card cache structure of HeapRegionRemSet. @@ -2581,7 +2581,7 @@ G1CollectedHeap::heap_region_par_iterate_chunked(HeapRegionClosure* cl, uint worker, uint no_of_par_workers, jint claim_value) { - const size_t regions = n_regions(); + const uint regions = n_regions(); const uint max_workers = (G1CollectedHeap::use_parallel_gc_threads() ? no_of_par_workers : 1); @@ -2589,11 +2589,11 @@ G1CollectedHeap::heap_region_par_iterate_chunked(HeapRegionClosure* cl, no_of_par_workers == workers()->total_workers(), "Non dynamic should use fixed number of workers"); // try to spread out the starting points of the workers - const size_t start_index = regions / max_workers * (size_t) worker; + const uint start_index = regions / max_workers * worker; // each worker will actually look at all regions - for (size_t count = 0; count < regions; ++count) { - const size_t index = (start_index + count) % regions; + for (uint count = 0; count < regions; ++count) { + const uint index = (start_index + count) % regions; assert(0 <= index && index < regions, "sanity"); HeapRegion* r = region_at(index); // we'll ignore "continues humongous" regions (we'll process them @@ -2615,7 +2615,7 @@ G1CollectedHeap::heap_region_par_iterate_chunked(HeapRegionClosure* cl, // result, we might end up processing them twice. So, we'll do // them first (notice: most closures will ignore them anyway) and // then we'll do the "starts humongous" region. - for (size_t ch_index = index + 1; ch_index < regions; ++ch_index) { + for (uint ch_index = index + 1; ch_index < regions; ++ch_index) { HeapRegion* chr = region_at(ch_index); // if the region has already been claimed or it's not @@ -2683,8 +2683,9 @@ void G1CollectedHeap::reset_cset_heap_region_claim_values() { class CheckClaimValuesClosure : public HeapRegionClosure { private: jint _claim_value; - size_t _failures; + uint _failures; HeapRegion* _sh_region; + public: CheckClaimValuesClosure(jint claim_value) : _claim_value(claim_value), _failures(0), _sh_region(NULL) { } @@ -2712,9 +2713,7 @@ public: } return false; } - size_t failures() { - return _failures; - } + uint failures() { return _failures; } }; bool G1CollectedHeap::check_heap_region_claim_values(jint claim_value) { @@ -2724,17 +2723,15 @@ bool G1CollectedHeap::check_heap_region_claim_values(jint claim_value) { } class CheckClaimValuesInCSetHRClosure: public HeapRegionClosure { - jint _claim_value; - size_t _failures; +private: + jint _claim_value; + uint _failures; public: CheckClaimValuesInCSetHRClosure(jint claim_value) : - _claim_value(claim_value), - _failures(0) { } + _claim_value(claim_value), _failures(0) { } - size_t failures() { - return _failures; - } + uint failures() { return _failures; } bool doHeapRegion(HeapRegion* hr) { assert(hr->in_collection_set(), "how?"); @@ -2801,14 +2798,14 @@ HeapRegion* G1CollectedHeap::start_cset_region_for_worker(int worker_i) { result = g1_policy()->collection_set(); if (G1CollectedHeap::use_parallel_gc_threads()) { - size_t cs_size = g1_policy()->cset_region_length(); + uint cs_size = g1_policy()->cset_region_length(); uint active_workers = workers()->active_workers(); assert(UseDynamicNumberOfGCThreads || active_workers == workers()->total_workers(), "Unless dynamic should use total workers"); - size_t end_ind = (cs_size * worker_i) / active_workers; - size_t start_ind = 0; + uint end_ind = (cs_size * worker_i) / active_workers; + uint start_ind = 0; if (worker_i > 0 && _worker_cset_start_region_time_stamp[worker_i - 1] == gc_time_stamp) { @@ -2818,7 +2815,7 @@ HeapRegion* G1CollectedHeap::start_cset_region_for_worker(int worker_i) { result = _worker_cset_start_region[worker_i - 1]; } - for (size_t i = start_ind; i < end_ind; i++) { + for (uint i = start_ind; i < end_ind; i++) { result = result->next_in_collection_set(); } } @@ -3280,12 +3277,12 @@ void G1CollectedHeap::print_on(outputStream* st) const { _g1_storage.high_boundary()); st->cr(); st->print(" region size " SIZE_FORMAT "K, ", HeapRegion::GrainBytes / K); - size_t young_regions = _young_list->length(); - st->print(SIZE_FORMAT " young (" SIZE_FORMAT "K), ", - young_regions, young_regions * HeapRegion::GrainBytes / K); - size_t survivor_regions = g1_policy()->recorded_survivor_regions(); - st->print(SIZE_FORMAT " survivors (" SIZE_FORMAT "K)", - survivor_regions, survivor_regions * HeapRegion::GrainBytes / K); + uint young_regions = _young_list->length(); + st->print("%u young (" SIZE_FORMAT "K), ", young_regions, + (size_t) young_regions * HeapRegion::GrainBytes / K); + uint survivor_regions = g1_policy()->recorded_survivor_regions(); + st->print("%u survivors (" SIZE_FORMAT "K)", survivor_regions, + (size_t) survivor_regions * HeapRegion::GrainBytes / K); st->cr(); perm()->as_gen()->print_on(st); } @@ -3295,7 +3292,11 @@ void G1CollectedHeap::print_extended_on(outputStream* st) const { // Print the per-region information. st->cr(); - st->print_cr("Heap Regions: (Y=young(eden), SU=young(survivor), HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TS=gc time stamp, PTAMS=previous top-at-mark-start, NTAMS=next top-at-mark-start)"); + st->print_cr("Heap Regions: (Y=young(eden), SU=young(survivor), " + "HS=humongous(starts), HC=humongous(continues), " + "CS=collection set, F=free, TS=gc time stamp, " + "PTAMS=previous top-at-mark-start, " + "NTAMS=next top-at-mark-start)"); PrintRegionClosure blk(st); heap_region_iterate(&blk); } @@ -3473,16 +3474,16 @@ size_t G1CollectedHeap::cards_scanned() { void G1CollectedHeap::setup_surviving_young_words() { - guarantee( _surviving_young_words == NULL, "pre-condition" ); - size_t array_length = g1_policy()->young_cset_region_length(); - _surviving_young_words = NEW_C_HEAP_ARRAY(size_t, array_length); + assert(_surviving_young_words == NULL, "pre-condition"); + uint array_length = g1_policy()->young_cset_region_length(); + _surviving_young_words = NEW_C_HEAP_ARRAY(size_t, (size_t) array_length); if (_surviving_young_words == NULL) { vm_exit_out_of_memory(sizeof(size_t) * array_length, "Not enough space for young surv words summary."); } - memset(_surviving_young_words, 0, array_length * sizeof(size_t)); + memset(_surviving_young_words, 0, (size_t) array_length * sizeof(size_t)); #ifdef ASSERT - for (size_t i = 0; i < array_length; ++i) { + for (uint i = 0; i < array_length; ++i) { assert( _surviving_young_words[i] == 0, "memset above" ); } #endif // !ASSERT @@ -3491,9 +3492,10 @@ G1CollectedHeap::setup_surviving_young_words() { void G1CollectedHeap::update_surviving_young_words(size_t* surv_young_words) { MutexLockerEx x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag); - size_t array_length = g1_policy()->young_cset_region_length(); - for (size_t i = 0; i < array_length; ++i) + uint array_length = g1_policy()->young_cset_region_length(); + for (uint i = 0; i < array_length; ++i) { _surviving_young_words[i] += surv_young_words[i]; + } } void @@ -4242,16 +4244,16 @@ G1ParScanThreadState::G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num) // non-young regions (where the age is -1) // We also add a few elements at the beginning and at the end in // an attempt to eliminate cache contention - size_t real_length = 1 + _g1h->g1_policy()->young_cset_region_length(); - size_t array_length = PADDING_ELEM_NUM + - real_length + - PADDING_ELEM_NUM; + uint real_length = 1 + _g1h->g1_policy()->young_cset_region_length(); + uint array_length = PADDING_ELEM_NUM + + real_length + + PADDING_ELEM_NUM; _surviving_young_words_base = NEW_C_HEAP_ARRAY(size_t, array_length); if (_surviving_young_words_base == NULL) vm_exit_out_of_memory(array_length * sizeof(size_t), "Not enough space for young surv histo."); _surviving_young_words = _surviving_young_words_base + PADDING_ELEM_NUM; - memset(_surviving_young_words, 0, real_length * sizeof(size_t)); + memset(_surviving_young_words, 0, (size_t) real_length * sizeof(size_t)); _alloc_buffers[GCAllocForSurvived] = &_surviving_alloc_buffer; _alloc_buffers[GCAllocForTenured] = &_tenured_alloc_buffer; @@ -4388,7 +4390,7 @@ void G1ParCopyClosure template oop G1ParCopyClosure ::copy_to_survivor_space(oop old) { - size_t word_sz = old->size(); + size_t word_sz = old->size(); HeapRegion* from_region = _g1->heap_region_containing_raw(old); // +1 to make the -1 indexes valid... int young_index = from_region->young_index_in_cset()+1; @@ -5585,8 +5587,8 @@ void G1CollectedHeap::free_humongous_region(HeapRegion* hr, hr->set_notHumongous(); free_region(hr, &hr_pre_used, free_list, par); - size_t i = hr->hrs_index() + 1; - size_t num = 1; + uint i = hr->hrs_index() + 1; + uint num = 1; while (i < n_regions()) { HeapRegion* curr_hr = region_at(i); if (!curr_hr->continuesHumongous()) { @@ -5795,7 +5797,7 @@ void G1CollectedHeap::free_collection_set(HeapRegion* cs_head) { if (cur->is_young()) { int index = cur->young_index_in_cset(); assert(index != -1, "invariant"); - assert((size_t) index < policy->young_cset_region_length(), "invariant"); + assert((uint) index < policy->young_cset_region_length(), "invariant"); size_t words_survived = _surviving_young_words[index]; cur->record_surv_words_in_group(words_survived); @@ -6135,7 +6137,7 @@ void MutatorAllocRegion::retire_region(HeapRegion* alloc_region, // Methods for the GC alloc regions HeapRegion* G1CollectedHeap::new_gc_alloc_region(size_t word_size, - size_t count, + uint count, GCAllocPurpose ap) { assert(FreeList_lock->owned_by_self(), "pre-condition"); @@ -6207,7 +6209,7 @@ private: FreeRegionList* _free_list; OldRegionSet* _old_set; HumongousRegionSet* _humongous_set; - size_t _region_count; + uint _region_count; public: VerifyRegionListsClosure(OldRegionSet* old_set, @@ -6216,7 +6218,7 @@ public: _old_set(old_set), _humongous_set(humongous_set), _free_list(free_list), _region_count(0) { } - size_t region_count() { return _region_count; } + uint region_count() { return _region_count; } bool doHeapRegion(HeapRegion* hr) { _region_count += 1; @@ -6238,7 +6240,7 @@ public: } }; -HeapRegion* G1CollectedHeap::new_heap_region(size_t hrs_index, +HeapRegion* G1CollectedHeap::new_heap_region(uint hrs_index, HeapWord* bottom) { HeapWord* end = bottom + HeapRegion::GrainWords; MemRegion mr(bottom, end); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index 5303196b454..9b8e795c024 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -85,8 +85,8 @@ private: HeapRegion* _curr; - size_t _length; - size_t _survivor_length; + uint _length; + uint _survivor_length; size_t _last_sampled_rs_lengths; size_t _sampled_rs_lengths; @@ -101,8 +101,8 @@ public: void empty_list(); bool is_empty() { return _length == 0; } - size_t length() { return _length; } - size_t survivor_length() { return _survivor_length; } + uint length() { return _length; } + uint survivor_length() { return _survivor_length; } // Currently we do not keep track of the used byte sum for the // young list and the survivors and it'd be quite a lot of work to @@ -111,10 +111,10 @@ public: // we'll report the more accurate information then. size_t eden_used_bytes() { assert(length() >= survivor_length(), "invariant"); - return (length() - survivor_length()) * HeapRegion::GrainBytes; + return (size_t) (length() - survivor_length()) * HeapRegion::GrainBytes; } size_t survivor_used_bytes() { - return survivor_length() * HeapRegion::GrainBytes; + return (size_t) survivor_length() * HeapRegion::GrainBytes; } void rs_length_sampling_init(); @@ -247,7 +247,7 @@ private: MasterHumongousRegionSet _humongous_set; // The number of regions we could create by expansion. - size_t _expansion_regions; + uint _expansion_regions; // The block offset table for the G1 heap. G1BlockOffsetSharedArray* _bot_shared; @@ -339,7 +339,7 @@ private: bool* _in_cset_fast_test_base; // The length of the _in_cset_fast_test_base array. - size_t _in_cset_fast_test_length; + uint _in_cset_fast_test_length; volatile unsigned _gc_time_stamp; @@ -458,14 +458,14 @@ protected: // length and remove them from the master free list. Return the // index of the first region or G1_NULL_HRS_INDEX if the search // was unsuccessful. - size_t humongous_obj_allocate_find_first(size_t num_regions, - size_t word_size); + uint humongous_obj_allocate_find_first(uint num_regions, + size_t word_size); // Initialize a contiguous set of free regions of length num_regions // and starting at index first so that they appear as a single // humongous region. - HeapWord* humongous_obj_allocate_initialize_regions(size_t first, - size_t num_regions, + HeapWord* humongous_obj_allocate_initialize_regions(uint first, + uint num_regions, size_t word_size); // Attempt to allocate a humongous object of the given size. Return @@ -574,7 +574,7 @@ protected: size_t allocated_bytes); // For GC alloc regions. - HeapRegion* new_gc_alloc_region(size_t word_size, size_t count, + HeapRegion* new_gc_alloc_region(size_t word_size, uint count, GCAllocPurpose ap); void retire_gc_alloc_region(HeapRegion* alloc_region, size_t allocated_bytes, GCAllocPurpose ap); @@ -641,7 +641,7 @@ public: void register_region_with_in_cset_fast_test(HeapRegion* r) { assert(_in_cset_fast_test_base != NULL, "sanity"); assert(r->in_collection_set(), "invariant"); - size_t index = r->hrs_index(); + uint index = r->hrs_index(); assert(index < _in_cset_fast_test_length, "invariant"); assert(!_in_cset_fast_test_base[index], "invariant"); _in_cset_fast_test_base[index] = true; @@ -655,7 +655,7 @@ public: if (_g1_committed.contains((HeapWord*) obj)) { // no need to subtract the bottom of the heap from obj, // _in_cset_fast_test is biased - size_t index = ((size_t) obj) >> HeapRegion::LogOfHRGrainBytes; + uintx index = (uintx) obj >> HeapRegion::LogOfHRGrainBytes; bool ret = _in_cset_fast_test[index]; // let's make sure the result is consistent with what the slower // test returns @@ -670,7 +670,7 @@ public: void clear_cset_fast_test() { assert(_in_cset_fast_test_base != NULL, "sanity"); memset(_in_cset_fast_test_base, false, - _in_cset_fast_test_length * sizeof(bool)); + (size_t) _in_cset_fast_test_length * sizeof(bool)); } // This is called at the end of either a concurrent cycle or a Full @@ -1101,23 +1101,23 @@ public: } // The total number of regions in the heap. - size_t n_regions() { return _hrs.length(); } + uint n_regions() { return _hrs.length(); } // The max number of regions in the heap. - size_t max_regions() { return _hrs.max_length(); } + uint max_regions() { return _hrs.max_length(); } // The number of regions that are completely free. - size_t free_regions() { return _free_list.length(); } + uint free_regions() { return _free_list.length(); } // The number of regions that are not completely free. - size_t used_regions() { return n_regions() - free_regions(); } + uint used_regions() { return n_regions() - free_regions(); } // The number of regions available for "regular" expansion. - size_t expansion_regions() { return _expansion_regions; } + uint expansion_regions() { return _expansion_regions; } // Factory method for HeapRegion instances. It will return NULL if // the allocation fails. - HeapRegion* new_heap_region(size_t hrs_index, HeapWord* bottom); + HeapRegion* new_heap_region(uint hrs_index, HeapWord* bottom); void verify_not_dirty_region(HeapRegion* hr) PRODUCT_RETURN; void verify_dirty_region(HeapRegion* hr) PRODUCT_RETURN; @@ -1301,7 +1301,7 @@ public: void heap_region_iterate_from(HeapRegion* r, HeapRegionClosure* blk) const; // Return the region with the given index. It assumes the index is valid. - HeapRegion* region_at(size_t index) const { return _hrs.at(index); } + HeapRegion* region_at(uint index) const { return _hrs.at(index); } // Divide the heap region sequence into "chunks" of some size (the number // of regions divided by the number of parallel threads times some diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index fc0e4f92de3..44409fee471 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -431,31 +431,36 @@ G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size( } if (FLAG_IS_CMDLINE(NewSize)) { - _min_desired_young_length = MAX2((size_t) 1, NewSize / HeapRegion::GrainBytes); + _min_desired_young_length = MAX2((uint) (NewSize / HeapRegion::GrainBytes), + 1U); if (FLAG_IS_CMDLINE(MaxNewSize)) { - _max_desired_young_length = MAX2((size_t) 1, MaxNewSize / HeapRegion::GrainBytes); + _max_desired_young_length = + MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), + 1U); _sizer_kind = SizerMaxAndNewSize; _adaptive_size = _min_desired_young_length == _max_desired_young_length; } else { _sizer_kind = SizerNewSizeOnly; } } else if (FLAG_IS_CMDLINE(MaxNewSize)) { - _max_desired_young_length = MAX2((size_t) 1, MaxNewSize / HeapRegion::GrainBytes); + _max_desired_young_length = + MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), + 1U); _sizer_kind = SizerMaxNewSizeOnly; } } -size_t G1YoungGenSizer::calculate_default_min_length(size_t new_number_of_heap_regions) { - size_t default_value = (new_number_of_heap_regions * G1DefaultMinNewGenPercent) / 100; - return MAX2((size_t)1, default_value); +uint G1YoungGenSizer::calculate_default_min_length(uint new_number_of_heap_regions) { + uint default_value = (new_number_of_heap_regions * G1DefaultMinNewGenPercent) / 100; + return MAX2(1U, default_value); } -size_t G1YoungGenSizer::calculate_default_max_length(size_t new_number_of_heap_regions) { - size_t default_value = (new_number_of_heap_regions * G1DefaultMaxNewGenPercent) / 100; - return MAX2((size_t)1, default_value); +uint G1YoungGenSizer::calculate_default_max_length(uint new_number_of_heap_regions) { + uint default_value = (new_number_of_heap_regions * G1DefaultMaxNewGenPercent) / 100; + return MAX2(1U, default_value); } -void G1YoungGenSizer::heap_size_changed(size_t new_number_of_heap_regions) { +void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { assert(new_number_of_heap_regions > 0, "Heap must be initialized"); switch (_sizer_kind) { @@ -512,16 +517,16 @@ void G1CollectorPolicy::initialize_gc_policy_counters() { _gc_policy_counters = new GCPolicyCounters("GarbageFirst", 1, 3); } -bool G1CollectorPolicy::predict_will_fit(size_t young_length, +bool G1CollectorPolicy::predict_will_fit(uint young_length, double base_time_ms, - size_t base_free_regions, + uint base_free_regions, double target_pause_time_ms) { if (young_length >= base_free_regions) { // end condition 1: not enough space for the young regions return false; } - double accum_surv_rate = accum_yg_surv_rate_pred((int)(young_length - 1)); + double accum_surv_rate = accum_yg_surv_rate_pred((int) young_length - 1); size_t bytes_to_copy = (size_t) (accum_surv_rate * (double) HeapRegion::GrainBytes); double copy_time_ms = predict_object_copy_time_ms(bytes_to_copy); @@ -533,7 +538,7 @@ bool G1CollectorPolicy::predict_will_fit(size_t young_length, } size_t free_bytes = - (base_free_regions - young_length) * HeapRegion::GrainBytes; + (base_free_regions - young_length) * HeapRegion::GrainBytes; if ((2.0 * sigma()) * (double) bytes_to_copy > (double) free_bytes) { // end condition 3: out-of-space (conservatively!) return false; @@ -543,25 +548,25 @@ bool G1CollectorPolicy::predict_will_fit(size_t young_length, return true; } -void G1CollectorPolicy::record_new_heap_size(size_t new_number_of_regions) { +void G1CollectorPolicy::record_new_heap_size(uint new_number_of_regions) { // re-calculate the necessary reserve double reserve_regions_d = (double) new_number_of_regions * _reserve_factor; // We use ceiling so that if reserve_regions_d is > 0.0 (but // smaller than 1.0) we'll get 1. - _reserve_regions = (size_t) ceil(reserve_regions_d); + _reserve_regions = (uint) ceil(reserve_regions_d); _young_gen_sizer->heap_size_changed(new_number_of_regions); } -size_t G1CollectorPolicy::calculate_young_list_desired_min_length( - size_t base_min_length) { - size_t desired_min_length = 0; +uint G1CollectorPolicy::calculate_young_list_desired_min_length( + uint base_min_length) { + uint desired_min_length = 0; if (adaptive_young_list_length()) { if (_alloc_rate_ms_seq->num() > 3) { double now_sec = os::elapsedTime(); double when_ms = _mmu_tracker->when_max_gc_sec(now_sec) * 1000.0; double alloc_rate_ms = predict_alloc_rate_ms(); - desired_min_length = (size_t) ceil(alloc_rate_ms * when_ms); + desired_min_length = (uint) ceil(alloc_rate_ms * when_ms); } else { // otherwise we don't have enough info to make the prediction } @@ -571,7 +576,7 @@ size_t G1CollectorPolicy::calculate_young_list_desired_min_length( return MAX2(_young_gen_sizer->min_desired_young_length(), desired_min_length); } -size_t G1CollectorPolicy::calculate_young_list_desired_max_length() { +uint G1CollectorPolicy::calculate_young_list_desired_max_length() { // Here, we might want to also take into account any additional // constraints (i.e., user-defined minimum bound). Currently, we // effectively don't set this bound. @@ -588,11 +593,11 @@ void G1CollectorPolicy::update_young_list_target_length(size_t rs_lengths) { // Calculate the absolute and desired min bounds. // This is how many young regions we already have (currently: the survivors). - size_t base_min_length = recorded_survivor_regions(); + uint base_min_length = recorded_survivor_regions(); // This is the absolute minimum young length, which ensures that we // can allocate one eden region in the worst-case. - size_t absolute_min_length = base_min_length + 1; - size_t desired_min_length = + uint absolute_min_length = base_min_length + 1; + uint desired_min_length = calculate_young_list_desired_min_length(base_min_length); if (desired_min_length < absolute_min_length) { desired_min_length = absolute_min_length; @@ -601,16 +606,16 @@ void G1CollectorPolicy::update_young_list_target_length(size_t rs_lengths) { // Calculate the absolute and desired max bounds. // We will try our best not to "eat" into the reserve. - size_t absolute_max_length = 0; + uint absolute_max_length = 0; if (_free_regions_at_end_of_collection > _reserve_regions) { absolute_max_length = _free_regions_at_end_of_collection - _reserve_regions; } - size_t desired_max_length = calculate_young_list_desired_max_length(); + uint desired_max_length = calculate_young_list_desired_max_length(); if (desired_max_length > absolute_max_length) { desired_max_length = absolute_max_length; } - size_t young_list_target_length = 0; + uint young_list_target_length = 0; if (adaptive_young_list_length()) { if (gcs_are_young()) { young_list_target_length = @@ -648,11 +653,11 @@ void G1CollectorPolicy::update_young_list_target_length(size_t rs_lengths) { update_max_gc_locker_expansion(); } -size_t +uint G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths, - size_t base_min_length, - size_t desired_min_length, - size_t desired_max_length) { + uint base_min_length, + uint desired_min_length, + uint desired_max_length) { assert(adaptive_young_list_length(), "pre-condition"); assert(gcs_are_young(), "only call this for young GCs"); @@ -667,9 +672,9 @@ G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths, // will be reflected in the predictions by the // survivor_regions_evac_time prediction. assert(desired_min_length > base_min_length, "invariant"); - size_t min_young_length = desired_min_length - base_min_length; + uint min_young_length = desired_min_length - base_min_length; assert(desired_max_length > base_min_length, "invariant"); - size_t max_young_length = desired_max_length - base_min_length; + uint max_young_length = desired_max_length - base_min_length; double target_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0; double survivor_regions_evac_time = predict_survivor_regions_evac_time(); @@ -679,8 +684,8 @@ G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths, double base_time_ms = predict_base_elapsed_time_ms(pending_cards, scanned_cards) + survivor_regions_evac_time; - size_t available_free_regions = _free_regions_at_end_of_collection; - size_t base_free_regions = 0; + uint available_free_regions = _free_regions_at_end_of_collection; + uint base_free_regions = 0; if (available_free_regions > _reserve_regions) { base_free_regions = available_free_regions - _reserve_regions; } @@ -717,9 +722,9 @@ G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths, // the new max. This way we maintain the loop invariants. assert(min_young_length < max_young_length, "invariant"); - size_t diff = (max_young_length - min_young_length) / 2; + uint diff = (max_young_length - min_young_length) / 2; while (diff > 0) { - size_t young_length = min_young_length + diff; + uint young_length = min_young_length + diff; if (predict_will_fit(young_length, base_time_ms, base_free_regions, target_pause_time_ms)) { min_young_length = young_length; @@ -1322,7 +1327,7 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { // given that humongous object allocations do not really affect // either the pause's duration nor when the next pause will take // place we can safely ignore them here. - size_t regions_allocated = eden_cset_region_length(); + uint regions_allocated = eden_cset_region_length(); double alloc_rate_ms = (double) regions_allocated / app_time_ms; _alloc_rate_ms_seq->add(alloc_rate_ms); @@ -1506,8 +1511,9 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { double pause_time_ms = elapsed_ms; size_t diff = 0; - if (_max_pending_cards >= _pending_cards) + if (_max_pending_cards >= _pending_cards) { diff = _max_pending_cards - _pending_cards; + } _pending_card_diff_seq->add((double) diff); double cost_per_card_ms = 0.0; @@ -1741,8 +1747,7 @@ G1CollectorPolicy::predict_region_elapsed_time_ms(HeapRegion* hr, return region_elapsed_time_ms; } -size_t -G1CollectorPolicy::predict_bytes_to_copy(HeapRegion* hr) { +size_t G1CollectorPolicy::predict_bytes_to_copy(HeapRegion* hr) { size_t bytes_to_copy; if (hr->is_marked()) bytes_to_copy = hr->max_live_bytes(); @@ -1756,8 +1761,8 @@ G1CollectorPolicy::predict_bytes_to_copy(HeapRegion* hr) { } void -G1CollectorPolicy::init_cset_region_lengths(size_t eden_cset_region_length, - size_t survivor_cset_region_length) { +G1CollectorPolicy::init_cset_region_lengths(uint eden_cset_region_length, + uint survivor_cset_region_length) { _eden_cset_region_length = eden_cset_region_length; _survivor_cset_region_length = survivor_cset_region_length; _old_cset_region_length = 0; @@ -2021,7 +2026,7 @@ region_num_to_mbs(int length) { } #endif // PRODUCT -size_t G1CollectorPolicy::max_regions(int purpose) { +uint G1CollectorPolicy::max_regions(int purpose) { switch (purpose) { case GCAllocForSurvived: return _max_survivor_regions; @@ -2034,13 +2039,13 @@ size_t G1CollectorPolicy::max_regions(int purpose) { } void G1CollectorPolicy::update_max_gc_locker_expansion() { - size_t expansion_region_num = 0; + uint expansion_region_num = 0; if (GCLockerEdenExpansionPercent > 0) { double perc = (double) GCLockerEdenExpansionPercent / 100.0; double expansion_region_num_d = perc * (double) _young_list_target_length; // We use ceiling so that if expansion_region_num_d is > 0.0 (but // less than 1.0) we'll get 1. - expansion_region_num = (size_t) ceil(expansion_region_num_d); + expansion_region_num = (uint) ceil(expansion_region_num_d); } else { assert(expansion_region_num == 0, "sanity"); } @@ -2054,7 +2059,7 @@ void G1CollectorPolicy::update_survivors_policy() { (double) _young_list_target_length / (double) SurvivorRatio; // We use ceiling so that if max_survivor_regions_d is > 0.0 (but // smaller than 1.0) we'll get 1. - _max_survivor_regions = (size_t) ceil(max_survivor_regions_d); + _max_survivor_regions = (uint) ceil(max_survivor_regions_d); _tenuring_threshold = _survivors_age_table.compute_tenuring_threshold( HeapRegion::GrainWords * _max_survivor_regions); @@ -2288,27 +2293,25 @@ G1CollectorPolicy::record_concurrent_mark_cleanup_end(int no_of_gc_threads) { (clear_marked_end_sec - start_sec) * 1000.0); } + uint region_num = _g1->n_regions(); if (G1CollectedHeap::use_parallel_gc_threads()) { - const size_t OverpartitionFactor = 4; - size_t WorkUnit; + const uint OverpartitionFactor = 4; + uint WorkUnit; // The use of MinChunkSize = 8 in the original code // causes some assertion failures when the total number of // region is less than 8. The code here tries to fix that. // Should the original code also be fixed? if (no_of_gc_threads > 0) { - const size_t MinWorkUnit = - MAX2(_g1->n_regions() / no_of_gc_threads, (size_t) 1U); - WorkUnit = - MAX2(_g1->n_regions() / (no_of_gc_threads * OverpartitionFactor), - MinWorkUnit); + const uint MinWorkUnit = MAX2(region_num / no_of_gc_threads, 1U); + WorkUnit = MAX2(region_num / (no_of_gc_threads * OverpartitionFactor), + MinWorkUnit); } else { assert(no_of_gc_threads > 0, "The active gc workers should be greater than 0"); // In a product build do something reasonable to avoid a crash. - const size_t MinWorkUnit = - MAX2(_g1->n_regions() / ParallelGCThreads, (size_t) 1U); + const uint MinWorkUnit = MAX2(region_num / (uint) ParallelGCThreads, 1U); WorkUnit = - MAX2(_g1->n_regions() / (ParallelGCThreads * OverpartitionFactor), + MAX2(region_num / (uint) (ParallelGCThreads * OverpartitionFactor), MinWorkUnit); } _collectionSetChooser->prepareForAddMarkedHeapRegionsPar(_g1->n_regions(), @@ -2624,8 +2627,8 @@ void G1CollectorPolicy::finalize_cset(double target_pause_time_ms) { // pause are appended to the RHS of the young list, i.e. // [Newly Young Regions ++ Survivors from last pause]. - size_t survivor_region_length = young_list->survivor_length(); - size_t eden_region_length = young_list->length() - survivor_region_length; + uint survivor_region_length = young_list->survivor_length(); + uint eden_region_length = young_list->length() - survivor_region_length; init_cset_region_lengths(eden_region_length, survivor_region_length); hr = young_list->first_survivor_region(); while (hr != NULL) { @@ -2664,10 +2667,10 @@ void G1CollectorPolicy::finalize_cset(double target_pause_time_ms) { if (!gcs_are_young()) { CollectionSetChooser* cset_chooser = _collectionSetChooser; assert(cset_chooser->verify(), "CSet Chooser verification - pre"); - const size_t min_old_cset_length = cset_chooser->calcMinOldCSetLength(); - const size_t max_old_cset_length = cset_chooser->calcMaxOldCSetLength(); + const uint min_old_cset_length = cset_chooser->calcMinOldCSetLength(); + const uint max_old_cset_length = cset_chooser->calcMaxOldCSetLength(); - size_t expensive_region_num = 0; + uint expensive_region_num = 0; bool check_time_remaining = adaptive_young_list_length(); HeapRegion* hr = cset_chooser->peek(); while (hr != NULL) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp index 1a51e4c757c..f897ffdb644 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @@ -128,19 +128,19 @@ private: SizerNewRatio }; SizerKind _sizer_kind; - size_t _min_desired_young_length; - size_t _max_desired_young_length; + uint _min_desired_young_length; + uint _max_desired_young_length; bool _adaptive_size; - size_t calculate_default_min_length(size_t new_number_of_heap_regions); - size_t calculate_default_max_length(size_t new_number_of_heap_regions); + uint calculate_default_min_length(uint new_number_of_heap_regions); + uint calculate_default_max_length(uint new_number_of_heap_regions); public: G1YoungGenSizer(); - void heap_size_changed(size_t new_number_of_heap_regions); - size_t min_desired_young_length() { + void heap_size_changed(uint new_number_of_heap_regions); + uint min_desired_young_length() { return _min_desired_young_length; } - size_t max_desired_young_length() { + uint max_desired_young_length() { return _max_desired_young_length; } bool adaptive_young_list_length() { @@ -175,7 +175,7 @@ private: double _cur_collection_start_sec; size_t _cur_collection_pause_used_at_start_bytes; - size_t _cur_collection_pause_used_regions_at_start; + uint _cur_collection_pause_used_regions_at_start; double _cur_collection_par_time_ms; double _cur_collection_code_root_fixup_time_ms; @@ -233,13 +233,13 @@ private: // indicates whether we are in young or mixed GC mode bool _gcs_are_young; - size_t _young_list_target_length; - size_t _young_list_fixed_length; + uint _young_list_target_length; + uint _young_list_fixed_length; size_t _prev_eden_capacity; // used for logging // The max number of regions we can extend the eden by while the GC // locker is active. This should be >= _young_list_target_length; - size_t _young_list_max_length; + uint _young_list_max_length; bool _last_gc_was_young; @@ -257,7 +257,7 @@ private: double _gc_overhead_perc; double _reserve_factor; - size_t _reserve_regions; + uint _reserve_regions; bool during_marking() { return _during_marking; @@ -292,18 +292,18 @@ private: G1YoungGenSizer* _young_gen_sizer; - size_t _eden_cset_region_length; - size_t _survivor_cset_region_length; - size_t _old_cset_region_length; + uint _eden_cset_region_length; + uint _survivor_cset_region_length; + uint _old_cset_region_length; - void init_cset_region_lengths(size_t eden_cset_region_length, - size_t survivor_cset_region_length); + void init_cset_region_lengths(uint eden_cset_region_length, + uint survivor_cset_region_length); - size_t eden_cset_region_length() { return _eden_cset_region_length; } - size_t survivor_cset_region_length() { return _survivor_cset_region_length; } - size_t old_cset_region_length() { return _old_cset_region_length; } + uint eden_cset_region_length() { return _eden_cset_region_length; } + uint survivor_cset_region_length() { return _survivor_cset_region_length; } + uint old_cset_region_length() { return _old_cset_region_length; } - size_t _free_regions_at_end_of_collection; + uint _free_regions_at_end_of_collection; size_t _recorded_rs_lengths; size_t _max_rs_lengths; @@ -496,10 +496,10 @@ public: void set_recorded_rs_lengths(size_t rs_lengths); - size_t cset_region_length() { return young_cset_region_length() + - old_cset_region_length(); } - size_t young_cset_region_length() { return eden_cset_region_length() + - survivor_cset_region_length(); } + uint cset_region_length() { return young_cset_region_length() + + old_cset_region_length(); } + uint young_cset_region_length() { return eden_cset_region_length() + + survivor_cset_region_length(); } void record_young_free_cset_time_ms(double time_ms) { _recorded_young_free_cset_time_ms = time_ms; @@ -720,12 +720,12 @@ private: // Calculate and return the minimum desired young list target // length. This is the minimum desired young list length according // to the user's inputs. - size_t calculate_young_list_desired_min_length(size_t base_min_length); + uint calculate_young_list_desired_min_length(uint base_min_length); // Calculate and return the maximum desired young list target // length. This is the maximum desired young list length according // to the user's inputs. - size_t calculate_young_list_desired_max_length(); + uint calculate_young_list_desired_max_length(); // Calculate and return the maximum young list target length that // can fit into the pause time goal. The parameters are: rs_lengths @@ -733,18 +733,18 @@ private: // be, base_min_length is the alreay existing number of regions in // the young list, min_length and max_length are the desired min and // max young list length according to the user's inputs. - size_t calculate_young_list_target_length(size_t rs_lengths, - size_t base_min_length, - size_t desired_min_length, - size_t desired_max_length); + uint calculate_young_list_target_length(size_t rs_lengths, + uint base_min_length, + uint desired_min_length, + uint desired_max_length); // Check whether a given young length (young_length) fits into the // given target pause time and whether the prediction for the amount // of objects to be copied for the given length will fit into the // given free space (expressed by base_free_regions). It is used by // calculate_young_list_target_length(). - bool predict_will_fit(size_t young_length, double base_time_ms, - size_t base_free_regions, double target_pause_time_ms); + bool predict_will_fit(uint young_length, double base_time_ms, + uint base_free_regions, double target_pause_time_ms); // Count the number of bytes used in the CS. void count_CS_bytes_used(); @@ -773,7 +773,7 @@ public: } // This should be called after the heap is resized. - void record_new_heap_size(size_t new_number_of_regions); + void record_new_heap_size(uint new_number_of_regions); void init(); @@ -1048,18 +1048,18 @@ public: } bool is_young_list_full() { - size_t young_list_length = _g1->young_list()->length(); - size_t young_list_target_length = _young_list_target_length; + uint young_list_length = _g1->young_list()->length(); + uint young_list_target_length = _young_list_target_length; return young_list_length >= young_list_target_length; } bool can_expand_young_list() { - size_t young_list_length = _g1->young_list()->length(); - size_t young_list_max_length = _young_list_max_length; + uint young_list_length = _g1->young_list()->length(); + uint young_list_max_length = _young_list_max_length; return young_list_length < young_list_max_length; } - size_t young_list_max_length() { + uint young_list_max_length() { return _young_list_max_length; } @@ -1097,7 +1097,7 @@ private: int _tenuring_threshold; // The limit on the number of regions allocated for survivors. - size_t _max_survivor_regions; + uint _max_survivor_regions; // For reporting purposes. size_t _eden_bytes_before_gc; @@ -1105,7 +1105,7 @@ private: size_t _capacity_before_gc; // The amount of survor regions after a collection. - size_t _recorded_survivor_regions; + uint _recorded_survivor_regions; // List of survivor regions. HeapRegion* _recorded_survivor_head; HeapRegion* _recorded_survivor_tail; @@ -1127,9 +1127,9 @@ public: return purpose == GCAllocForSurvived; } - static const size_t REGIONS_UNLIMITED = ~(size_t)0; + static const uint REGIONS_UNLIMITED = (uint) -1; - size_t max_regions(int purpose); + uint max_regions(int purpose); // The limit on regions for a particular purpose is reached. void note_alloc_region_limit_reached(int purpose) { @@ -1146,7 +1146,7 @@ public: _survivor_surv_rate_group->stop_adding_regions(); } - void record_survivor_regions(size_t regions, + void record_survivor_regions(uint regions, HeapRegion* head, HeapRegion* tail) { _recorded_survivor_regions = regions; @@ -1154,12 +1154,11 @@ public: _recorded_survivor_tail = tail; } - size_t recorded_survivor_regions() { + uint recorded_survivor_regions() { return _recorded_survivor_regions; } - void record_thread_age_table(ageTable* age_table) - { + void record_thread_age_table(ageTable* age_table) { _survivors_age_table.merge_par(age_table); } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp index 1e738fd9af0..20d34ddb7ff 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -120,7 +120,7 @@ public: // Single parameter format strings #define ergo_format_str(_name_) ", " _name_ ": %s" -#define ergo_format_region(_name_) ", " _name_ ": "SIZE_FORMAT" regions" +#define ergo_format_region(_name_) ", " _name_ ": %u regions" #define ergo_format_byte(_name_) ", " _name_ ": "SIZE_FORMAT" bytes" #define ergo_format_double(_name_) ", " _name_ ": %1.2f" #define ergo_format_perc(_name_) ", " _name_ ": %1.2f %%" diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp index 34542618f22..55627cb5100 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -177,19 +177,19 @@ void G1MonitoringSupport::recalculate_sizes() { // values we read here are possible (i.e., at a STW phase at the end // of a GC). - size_t young_list_length = g1->young_list()->length(); - size_t survivor_list_length = g1->g1_policy()->recorded_survivor_regions(); + uint young_list_length = g1->young_list()->length(); + uint survivor_list_length = g1->g1_policy()->recorded_survivor_regions(); assert(young_list_length >= survivor_list_length, "invariant"); - size_t eden_list_length = young_list_length - survivor_list_length; + uint eden_list_length = young_list_length - survivor_list_length; // Max length includes any potential extensions to the young gen // we'll do when the GC locker is active. - size_t young_list_max_length = g1->g1_policy()->young_list_max_length(); + uint young_list_max_length = g1->g1_policy()->young_list_max_length(); assert(young_list_max_length >= survivor_list_length, "invariant"); - size_t eden_list_max_length = young_list_max_length - survivor_list_length; + uint eden_list_max_length = young_list_max_length - survivor_list_length; _overall_used = g1->used_unlocked(); - _eden_used = eden_list_length * HeapRegion::GrainBytes; - _survivor_used = survivor_list_length * HeapRegion::GrainBytes; + _eden_used = (size_t) eden_list_length * HeapRegion::GrainBytes; + _survivor_used = (size_t) survivor_list_length * HeapRegion::GrainBytes; _young_region_num = young_list_length; _old_used = subtract_up_to_zero(_overall_used, _eden_used + _survivor_used); @@ -207,7 +207,7 @@ void G1MonitoringSupport::recalculate_sizes() { committed -= _survivor_committed + _old_committed; // Next, calculate and remove the committed size for the eden. - _eden_committed = eden_list_max_length * HeapRegion::GrainBytes; + _eden_committed = (size_t) eden_list_max_length * HeapRegion::GrainBytes; // Somewhat defensive: be robust in case there are inaccuracies in // the calculations _eden_committed = MIN2(_eden_committed, committed); @@ -237,10 +237,10 @@ void G1MonitoringSupport::recalculate_eden_size() { // When a new eden region is allocated, only the eden_used size is // affected (since we have recalculated everything else at the last GC). - size_t young_region_num = g1h()->young_list()->length(); + uint young_region_num = g1h()->young_list()->length(); if (young_region_num > _young_region_num) { - size_t diff = young_region_num - _young_region_num; - _eden_used += diff * HeapRegion::GrainBytes; + uint diff = young_region_num - _young_region_num; + _eden_used += (size_t) diff * HeapRegion::GrainBytes; // Somewhat defensive: cap the eden used size to make sure it // never exceeds the committed size. _eden_used = MIN2(_eden_used, _eden_committed); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp index a428b10378d..61e278a7ff7 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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,7 +147,7 @@ class G1MonitoringSupport : public CHeapObj { size_t _overall_committed; size_t _overall_used; - size_t _young_region_num; + uint _young_region_num; size_t _young_gen_committed; size_t _eden_committed; size_t _eden_used; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index 1ac7e9eb43e..44e3ac83346 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -334,7 +334,7 @@ void HeapRegion::setup_heap_region_size(uintx min_heap_size) { guarantee(GrainWords == 0, "we should only set it once"); GrainWords = GrainBytes >> LogHeapWordSize; - guarantee((size_t)(1 << LogOfHRGrainWords) == GrainWords, "sanity"); + guarantee((size_t) 1 << LogOfHRGrainWords == GrainWords, "sanity"); guarantee(CardsPerRegion == 0, "we should only set it once"); CardsPerRegion = GrainBytes >> CardTableModRefBS::card_shift; @@ -482,10 +482,10 @@ void HeapRegion::initialize(MemRegion mr, bool clear_space, bool mangle_space) { #endif // _MSC_VER -HeapRegion:: -HeapRegion(size_t hrs_index, G1BlockOffsetSharedArray* sharedOffsetArray, - MemRegion mr, bool is_zeroed) - : G1OffsetTableContigSpace(sharedOffsetArray, mr, is_zeroed), +HeapRegion::HeapRegion(uint hrs_index, + G1BlockOffsetSharedArray* sharedOffsetArray, + MemRegion mr, bool is_zeroed) : + G1OffsetTableContigSpace(sharedOffsetArray, mr, is_zeroed), _hrs_index(hrs_index), _humongous_type(NotHumongous), _humongous_start_region(NULL), _in_collection_set(false), diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp index b462389a652..8a99d2d3f7b 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp @@ -52,12 +52,15 @@ class HeapRegionRemSetIterator; class HeapRegion; class HeapRegionSetBase; -#define HR_FORMAT SIZE_FORMAT":(%s)["PTR_FORMAT","PTR_FORMAT","PTR_FORMAT"]" +#define HR_FORMAT "%u:(%s)["PTR_FORMAT","PTR_FORMAT","PTR_FORMAT"]" #define HR_FORMAT_PARAMS(_hr_) \ (_hr_)->hrs_index(), \ (_hr_)->is_survivor() ? "S" : (_hr_)->is_young() ? "E" : "-", \ (_hr_)->bottom(), (_hr_)->top(), (_hr_)->end() +// sentinel value for hrs_index +#define G1_NULL_HRS_INDEX ((uint) -1) + // A dirty card to oop closure for heap regions. It // knows how to get the G1 heap and how to use the bitmap // in the concurrent marker used by G1 to filter remembered @@ -235,7 +238,7 @@ class HeapRegion: public G1OffsetTableContigSpace { protected: // The index of this region in the heap region sequence. - size_t _hrs_index; + uint _hrs_index; HumongousType _humongous_type; // For a humongous region, region in which it starts. @@ -342,7 +345,7 @@ class HeapRegion: public G1OffsetTableContigSpace { public: // If "is_zeroed" is "true", the region "mr" can be assumed to contain zeros. - HeapRegion(size_t hrs_index, + HeapRegion(uint hrs_index, G1BlockOffsetSharedArray* sharedOffsetArray, MemRegion mr, bool is_zeroed); @@ -389,7 +392,7 @@ class HeapRegion: public G1OffsetTableContigSpace { // If this region is a member of a HeapRegionSeq, the index in that // sequence, otherwise -1. - size_t hrs_index() const { return _hrs_index; } + uint hrs_index() const { return _hrs_index; } // The number of bytes marked live in the region in the last marking phase. size_t marked_bytes() { return _prev_marked_bytes; } diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp index 47c41553838..a23bd79a7b3 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -577,7 +577,7 @@ void OtherRegionsTable::print_from_card_cache() { #endif void OtherRegionsTable::add_reference(OopOrNarrowOopStar from, int tid) { - size_t cur_hrs_ind = hr()->hrs_index(); + size_t cur_hrs_ind = (size_t) hr()->hrs_index(); #if HRRS_VERBOSE gclog_or_tty->print_cr("ORT::add_reference_work(" PTR_FORMAT "->" PTR_FORMAT ").", @@ -841,7 +841,7 @@ PosParPRT* OtherRegionsTable::delete_region_table() { #endif // Set the corresponding coarse bit. - size_t max_hrs_index = max->hr()->hrs_index(); + size_t max_hrs_index = (size_t) max->hr()->hrs_index(); if (!_coarse_map.at(max_hrs_index)) { _coarse_map.at_put(max_hrs_index, true); _n_coarse_entries++; @@ -866,17 +866,20 @@ PosParPRT* OtherRegionsTable::delete_region_table() { void OtherRegionsTable::scrub(CardTableModRefBS* ctbs, BitMap* region_bm, BitMap* card_bm) { // First eliminated garbage regions from the coarse map. - if (G1RSScrubVerbose) - gclog_or_tty->print_cr("Scrubbing region "SIZE_FORMAT":", - hr()->hrs_index()); + if (G1RSScrubVerbose) { + gclog_or_tty->print_cr("Scrubbing region %u:", hr()->hrs_index()); + } assert(_coarse_map.size() == region_bm->size(), "Precondition"); - if (G1RSScrubVerbose) - gclog_or_tty->print(" Coarse map: before = %d...", _n_coarse_entries); + if (G1RSScrubVerbose) { + gclog_or_tty->print(" Coarse map: before = "SIZE_FORMAT"...", + _n_coarse_entries); + } _coarse_map.set_intersection(*region_bm); _n_coarse_entries = _coarse_map.count_one_bits(); - if (G1RSScrubVerbose) - gclog_or_tty->print_cr(" after = %d.", _n_coarse_entries); + if (G1RSScrubVerbose) { + gclog_or_tty->print_cr(" after = "SIZE_FORMAT".", _n_coarse_entries); + } // Now do the fine-grained maps. for (size_t i = 0; i < _max_fine_entries; i++) { @@ -885,23 +888,27 @@ void OtherRegionsTable::scrub(CardTableModRefBS* ctbs, while (cur != NULL) { PosParPRT* nxt = cur->next(); // If the entire region is dead, eliminate. - if (G1RSScrubVerbose) - gclog_or_tty->print_cr(" For other region "SIZE_FORMAT":", + if (G1RSScrubVerbose) { + gclog_or_tty->print_cr(" For other region %u:", cur->hr()->hrs_index()); - if (!region_bm->at(cur->hr()->hrs_index())) { + } + if (!region_bm->at((size_t) cur->hr()->hrs_index())) { *prev = nxt; cur->set_next(NULL); _n_fine_entries--; - if (G1RSScrubVerbose) + if (G1RSScrubVerbose) { gclog_or_tty->print_cr(" deleted via region map."); + } PosParPRT::free(cur); } else { // Do fine-grain elimination. - if (G1RSScrubVerbose) + if (G1RSScrubVerbose) { gclog_or_tty->print(" occ: before = %4d.", cur->occupied()); + } cur->scrub(ctbs, card_bm); - if (G1RSScrubVerbose) + if (G1RSScrubVerbose) { gclog_or_tty->print_cr(" after = %4d.", cur->occupied()); + } // Did that empty the table completely? if (cur->occupied() == 0) { *prev = nxt; @@ -1003,7 +1010,7 @@ void OtherRegionsTable::clear() { void OtherRegionsTable::clear_incoming_entry(HeapRegion* from_hr) { MutexLockerEx x(&_m, Mutex::_no_safepoint_check_flag); - size_t hrs_ind = from_hr->hrs_index(); + size_t hrs_ind = (size_t) from_hr->hrs_index(); size_t ind = hrs_ind & _mod_max_fine_entries_mask; if (del_single_region_table(ind, from_hr)) { assert(!_coarse_map.at(hrs_ind), "Inv"); @@ -1011,7 +1018,7 @@ void OtherRegionsTable::clear_incoming_entry(HeapRegion* from_hr) { _coarse_map.par_at_put(hrs_ind, 0); } // Check to see if any of the fcc entries come from here. - size_t hr_ind = hr()->hrs_index(); + size_t hr_ind = (size_t) hr()->hrs_index(); for (int tid = 0; tid < HeapRegionRemSet::num_par_rem_sets(); tid++) { int fcc_ent = _from_card_cache[tid][hr_ind]; if (fcc_ent != -1) { @@ -1223,7 +1230,7 @@ bool HeapRegionRemSetIterator::coarse_has_next(size_t& card_index) { if ((size_t)_coarse_cur_region_index < _coarse_map->size()) { _coarse_cur_region_cur_card = 0; HeapWord* r_bot = - _g1h->region_at(_coarse_cur_region_index)->bottom(); + _g1h->region_at((uint) _coarse_cur_region_index)->bottom(); _cur_region_card_offset = _bosa->index_for(r_bot); } else { return false; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp index 453435098bb..504afa2ef04 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp @@ -329,13 +329,13 @@ public: // Declare the heap size (in # of regions) to the HeapRegionRemSet(s). // (Uses it to initialize from_card_cache). - static void init_heap(size_t max_regions) { - OtherRegionsTable::init_from_card_cache(max_regions); + static void init_heap(uint max_regions) { + OtherRegionsTable::init_from_card_cache((size_t) max_regions); } // Declares that only regions i s.t. 0 <= i < new_n_regs are in use. - static void shrink_heap(size_t new_n_regs) { - OtherRegionsTable::shrink_from_card_cache(new_n_regs); + static void shrink_heap(uint new_n_regs) { + OtherRegionsTable::shrink_from_card_cache((size_t) new_n_regs); } #ifndef PRODUCT diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp index fecdca15515..dfac7d47d29 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -31,16 +31,15 @@ // Private -size_t HeapRegionSeq::find_contiguous_from(size_t from, size_t num) { - size_t len = length(); +uint HeapRegionSeq::find_contiguous_from(uint from, uint num) { + uint len = length(); assert(num > 1, "use this only for sequences of length 2 or greater"); assert(from <= len, - err_msg("from: "SIZE_FORMAT" should be valid and <= than "SIZE_FORMAT, - from, len)); + err_msg("from: %u should be valid and <= than %u", from, len)); - size_t curr = from; - size_t first = G1_NULL_HRS_INDEX; - size_t num_so_far = 0; + uint curr = from; + uint first = G1_NULL_HRS_INDEX; + uint num_so_far = 0; while (curr < len && num_so_far < num) { if (at(curr)->is_empty()) { if (first == G1_NULL_HRS_INDEX) { @@ -60,7 +59,7 @@ size_t HeapRegionSeq::find_contiguous_from(size_t from, size_t num) { // we found enough space for the humongous object assert(from <= first && first < len, "post-condition"); assert(first < curr && (curr - first) == num, "post-condition"); - for (size_t i = first; i < first + num; ++i) { + for (uint i = first; i < first + num; ++i) { assert(at(i)->is_empty(), "post-condition"); } return first; @@ -73,10 +72,10 @@ size_t HeapRegionSeq::find_contiguous_from(size_t from, size_t num) { // Public void HeapRegionSeq::initialize(HeapWord* bottom, HeapWord* end, - size_t max_length) { - assert((size_t) bottom % HeapRegion::GrainBytes == 0, + uint max_length) { + assert((uintptr_t) bottom % HeapRegion::GrainBytes == 0, "bottom should be heap region aligned"); - assert((size_t) end % HeapRegion::GrainBytes == 0, + assert((uintptr_t) end % HeapRegion::GrainBytes == 0, "end should be heap region aligned"); _length = 0; @@ -88,8 +87,8 @@ void HeapRegionSeq::initialize(HeapWord* bottom, HeapWord* end, _max_length = max_length; _regions = NEW_C_HEAP_ARRAY(HeapRegion*, max_length); - memset(_regions, 0, max_length * sizeof(HeapRegion*)); - _regions_biased = _regions - ((size_t) bottom >> _region_shift); + memset(_regions, 0, (size_t) max_length * sizeof(HeapRegion*)); + _regions_biased = _regions - ((uintx) bottom >> _region_shift); assert(&_regions[0] == &_regions_biased[addr_to_index_biased(bottom)], "bottom should be included in the region with index 0"); @@ -105,7 +104,7 @@ MemRegion HeapRegionSeq::expand_by(HeapWord* old_end, assert(_heap_bottom <= next_bottom, "invariant"); while (next_bottom < new_end) { assert(next_bottom < _heap_end, "invariant"); - size_t index = length(); + uint index = length(); assert(index < _max_length, "otherwise we cannot expand further"); if (index == 0) { @@ -139,9 +138,9 @@ MemRegion HeapRegionSeq::expand_by(HeapWord* old_end, return MemRegion(old_end, next_bottom); } -size_t HeapRegionSeq::free_suffix() { - size_t res = 0; - size_t index = length(); +uint HeapRegionSeq::free_suffix() { + uint res = 0; + uint index = length(); while (index > 0) { index -= 1; if (!at(index)->is_empty()) { @@ -152,27 +151,24 @@ size_t HeapRegionSeq::free_suffix() { return res; } -size_t HeapRegionSeq::find_contiguous(size_t num) { +uint HeapRegionSeq::find_contiguous(uint num) { assert(num > 1, "use this only for sequences of length 2 or greater"); assert(_next_search_index <= length(), - err_msg("_next_search_indeex: "SIZE_FORMAT" " - "should be valid and <= than "SIZE_FORMAT, + err_msg("_next_search_index: %u should be valid and <= than %u", _next_search_index, length())); - size_t start = _next_search_index; - size_t res = find_contiguous_from(start, num); + uint start = _next_search_index; + uint res = find_contiguous_from(start, num); if (res == G1_NULL_HRS_INDEX && start > 0) { // Try starting from the beginning. If _next_search_index was 0, // no point in doing this again. res = find_contiguous_from(0, num); } if (res != G1_NULL_HRS_INDEX) { - assert(res < length(), - err_msg("res: "SIZE_FORMAT" should be valid", res)); + assert(res < length(), err_msg("res: %u should be valid", res)); _next_search_index = res + num; assert(_next_search_index <= length(), - err_msg("_next_search_indeex: "SIZE_FORMAT" " - "should be valid and <= than "SIZE_FORMAT, + err_msg("_next_search_index: %u should be valid and <= than %u", _next_search_index, length())); } return res; @@ -183,20 +179,20 @@ void HeapRegionSeq::iterate(HeapRegionClosure* blk) const { } void HeapRegionSeq::iterate_from(HeapRegion* hr, HeapRegionClosure* blk) const { - size_t hr_index = 0; + uint hr_index = 0; if (hr != NULL) { - hr_index = (size_t) hr->hrs_index(); + hr_index = hr->hrs_index(); } - size_t len = length(); - for (size_t i = hr_index; i < len; i += 1) { + uint len = length(); + for (uint i = hr_index; i < len; i += 1) { bool res = blk->doHeapRegion(at(i)); if (res) { blk->incomplete(); return; } } - for (size_t i = 0; i < hr_index; i += 1) { + for (uint i = 0; i < hr_index; i += 1) { bool res = blk->doHeapRegion(at(i)); if (res) { blk->incomplete(); @@ -206,7 +202,7 @@ void HeapRegionSeq::iterate_from(HeapRegion* hr, HeapRegionClosure* blk) const { } MemRegion HeapRegionSeq::shrink_by(size_t shrink_bytes, - size_t* num_regions_deleted) { + uint* num_regions_deleted) { // Reset this in case it's currently pointing into the regions that // we just removed. _next_search_index = 0; @@ -218,7 +214,7 @@ MemRegion HeapRegionSeq::shrink_by(size_t shrink_bytes, assert(_allocated_length > 0, "we should have at least one region committed"); // around the loop, i will be the next region to be removed - size_t i = length() - 1; + uint i = length() - 1; assert(i > 0, "we should never remove all regions"); // [last_start, end) is the MemRegion that covers the regions we will remove. HeapWord* end = at(i)->end(); @@ -249,29 +245,24 @@ MemRegion HeapRegionSeq::shrink_by(size_t shrink_bytes, #ifndef PRODUCT void HeapRegionSeq::verify_optional() { guarantee(_length <= _allocated_length, - err_msg("invariant: _length: "SIZE_FORMAT" " - "_allocated_length: "SIZE_FORMAT, + err_msg("invariant: _length: %u _allocated_length: %u", _length, _allocated_length)); guarantee(_allocated_length <= _max_length, - err_msg("invariant: _allocated_length: "SIZE_FORMAT" " - "_max_length: "SIZE_FORMAT, + err_msg("invariant: _allocated_length: %u _max_length: %u", _allocated_length, _max_length)); guarantee(_next_search_index <= _length, - err_msg("invariant: _next_search_index: "SIZE_FORMAT" " - "_length: "SIZE_FORMAT, + err_msg("invariant: _next_search_index: %u _length: %u", _next_search_index, _length)); HeapWord* prev_end = _heap_bottom; - for (size_t i = 0; i < _allocated_length; i += 1) { + for (uint i = 0; i < _allocated_length; i += 1) { HeapRegion* hr = _regions[i]; - guarantee(hr != NULL, err_msg("invariant: i: "SIZE_FORMAT, i)); + guarantee(hr != NULL, err_msg("invariant: i: %u", i)); guarantee(hr->bottom() == prev_end, - err_msg("invariant i: "SIZE_FORMAT" "HR_FORMAT" " - "prev_end: "PTR_FORMAT, + err_msg("invariant i: %u "HR_FORMAT" prev_end: "PTR_FORMAT, i, HR_FORMAT_PARAMS(hr), prev_end)); guarantee(hr->hrs_index() == i, - err_msg("invariant: i: "SIZE_FORMAT" hrs_index(): "SIZE_FORMAT, - i, hr->hrs_index())); + err_msg("invariant: i: %u hrs_index(): %u", i, hr->hrs_index())); if (i < _length) { // Asserts will fire if i is >= _length HeapWord* addr = hr->bottom(); @@ -290,8 +281,8 @@ void HeapRegionSeq::verify_optional() { prev_end = hr->end(); } } - for (size_t i = _allocated_length; i < _max_length; i += 1) { - guarantee(_regions[i] == NULL, err_msg("invariant i: "SIZE_FORMAT, i)); + for (uint i = _allocated_length; i < _max_length; i += 1) { + guarantee(_regions[i] == NULL, err_msg("invariant i: %u", i)); } } #endif // PRODUCT diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp index 3df8d738bdc..94f4c0f7699 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -29,8 +29,6 @@ class HeapRegion; class HeapRegionClosure; class FreeRegionList; -#define G1_NULL_HRS_INDEX ((size_t) -1) - // This class keeps track of the region metadata (i.e., HeapRegion // instances). They are kept in the _regions array in address // order. A region's index in the array corresponds to its index in @@ -65,7 +63,7 @@ class HeapRegionSeq: public CHeapObj { HeapRegion** _regions_biased; // The number of regions committed in the heap. - size_t _length; + uint _length; // The address of the first reserved word in the heap. HeapWord* _heap_bottom; @@ -74,32 +72,32 @@ class HeapRegionSeq: public CHeapObj { HeapWord* _heap_end; // The log of the region byte size. - size_t _region_shift; + uint _region_shift; // A hint for which index to start searching from for humongous // allocations. - size_t _next_search_index; + uint _next_search_index; // The number of regions for which we have allocated HeapRegions for. - size_t _allocated_length; + uint _allocated_length; // The maximum number of regions in the heap. - size_t _max_length; + uint _max_length; // Find a contiguous set of empty regions of length num, starting // from the given index. - size_t find_contiguous_from(size_t from, size_t num); + uint find_contiguous_from(uint from, uint num); // Map a heap address to a biased region index. Assume that the // address is valid. - inline size_t addr_to_index_biased(HeapWord* addr) const; + inline uintx addr_to_index_biased(HeapWord* addr) const; - void increment_length(size_t* length) { + void increment_length(uint* length) { assert(*length < _max_length, "pre-condition"); *length += 1; } - void decrement_length(size_t* length) { + void decrement_length(uint* length) { assert(*length > 0, "pre-condition"); *length -= 1; } @@ -108,11 +106,11 @@ class HeapRegionSeq: public CHeapObj { // Empty contructor, we'll initialize it with the initialize() method. HeapRegionSeq() { } - void initialize(HeapWord* bottom, HeapWord* end, size_t max_length); + void initialize(HeapWord* bottom, HeapWord* end, uint max_length); // Return the HeapRegion at the given index. Assume that the index // is valid. - inline HeapRegion* at(size_t index) const; + inline HeapRegion* at(uint index) const; // If addr is within the committed space return its corresponding // HeapRegion, otherwise return NULL. @@ -123,10 +121,10 @@ class HeapRegionSeq: public CHeapObj { inline HeapRegion* addr_to_region_unsafe(HeapWord* addr) const; // Return the number of regions that have been committed in the heap. - size_t length() const { return _length; } + uint length() const { return _length; } // Return the maximum number of regions in the heap. - size_t max_length() const { return _max_length; } + uint max_length() const { return _max_length; } // Expand the sequence to reflect that the heap has grown from // old_end to new_end. Either create new HeapRegions, or re-use @@ -139,12 +137,12 @@ class HeapRegionSeq: public CHeapObj { // Return the number of contiguous regions at the end of the sequence // that are available for allocation. - size_t free_suffix(); + uint free_suffix(); // Find a contiguous set of empty regions of length num and return // the index of the first region or G1_NULL_HRS_INDEX if the // search was unsuccessful. - size_t find_contiguous(size_t num); + uint find_contiguous(uint num); // Apply blk->doHeapRegion() on all committed regions in address order, // terminating the iteration early if doHeapRegion() returns true. @@ -159,7 +157,7 @@ class HeapRegionSeq: public CHeapObj { // sequence. Return a MemRegion that corresponds to the address // range of the uncommitted regions. Assume shrink_bytes is page and // heap region aligned. - MemRegion shrink_by(size_t shrink_bytes, size_t* num_regions_deleted); + MemRegion shrink_by(size_t shrink_bytes, uint* num_regions_deleted); // Do some sanity checking. void verify_optional() PRODUCT_RETURN; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp index 3cc5aa8a619..e840287edc7 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -28,11 +28,11 @@ #include "gc_implementation/g1/heapRegion.hpp" #include "gc_implementation/g1/heapRegionSeq.hpp" -inline size_t HeapRegionSeq::addr_to_index_biased(HeapWord* addr) const { +inline uintx HeapRegionSeq::addr_to_index_biased(HeapWord* addr) const { assert(_heap_bottom <= addr && addr < _heap_end, err_msg("addr: "PTR_FORMAT" bottom: "PTR_FORMAT" end: "PTR_FORMAT, addr, _heap_bottom, _heap_end)); - size_t index = (size_t) addr >> _region_shift; + uintx index = (uintx) addr >> _region_shift; return index; } @@ -40,7 +40,7 @@ inline HeapRegion* HeapRegionSeq::addr_to_region_unsafe(HeapWord* addr) const { assert(_heap_bottom <= addr && addr < _heap_end, err_msg("addr: "PTR_FORMAT" bottom: "PTR_FORMAT" end: "PTR_FORMAT, addr, _heap_bottom, _heap_end)); - size_t index_biased = addr_to_index_biased(addr); + uintx index_biased = addr_to_index_biased(addr); HeapRegion* hr = _regions_biased[index_biased]; assert(hr != NULL, "invariant"); return hr; @@ -55,7 +55,7 @@ inline HeapRegion* HeapRegionSeq::addr_to_region(HeapWord* addr) const { return NULL; } -inline HeapRegion* HeapRegionSeq::at(size_t index) const { +inline HeapRegion* HeapRegionSeq::at(uint index) const { assert(index < length(), "pre-condition"); HeapRegion* hr = _regions[index]; assert(hr != NULL, "sanity"); diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp index e21cdd74d85..ac5f96b9093 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -25,28 +25,26 @@ #include "precompiled.hpp" #include "gc_implementation/g1/heapRegionSet.inline.hpp" -size_t HeapRegionSetBase::_unrealistically_long_length = 0; +uint HeapRegionSetBase::_unrealistically_long_length = 0; HRSPhase HeapRegionSetBase::_phase = HRSPhaseNone; //////////////////// HeapRegionSetBase //////////////////// -void HeapRegionSetBase::set_unrealistically_long_length(size_t len) { +void HeapRegionSetBase::set_unrealistically_long_length(uint len) { guarantee(_unrealistically_long_length == 0, "should only be set once"); _unrealistically_long_length = len; } -size_t HeapRegionSetBase::calculate_region_num(HeapRegion* hr) { +uint HeapRegionSetBase::calculate_region_num(HeapRegion* hr) { assert(hr->startsHumongous(), "pre-condition"); assert(hr->capacity() % HeapRegion::GrainBytes == 0, "invariant"); - size_t region_num = hr->capacity() >> HeapRegion::LogOfHRGrainBytes; + uint region_num = (uint) (hr->capacity() >> HeapRegion::LogOfHRGrainBytes); assert(region_num > 0, "sanity"); return region_num; } void HeapRegionSetBase::fill_in_ext_msg(hrs_ext_msg* msg, const char* message) { - msg->append("[%s] %s " - "ln: "SIZE_FORMAT" rn: "SIZE_FORMAT" " - "cy: "SIZE_FORMAT" ud: "SIZE_FORMAT, + msg->append("[%s] %s ln: %u rn: %u cy: "SIZE_FORMAT" ud: "SIZE_FORMAT, name(), message, length(), region_num(), total_capacity_bytes(), total_used_bytes()); fill_in_ext_msg_extra(msg); @@ -170,13 +168,11 @@ void HeapRegionSetBase::verify_end() { hrs_ext_msg(this, "verification should be in progress")); guarantee(length() == _calc_length, - hrs_err_msg("[%s] length: "SIZE_FORMAT" should be == " - "calc length: "SIZE_FORMAT, + hrs_err_msg("[%s] length: %u should be == calc length: %u", name(), length(), _calc_length)); guarantee(region_num() == _calc_region_num, - hrs_err_msg("[%s] region num: "SIZE_FORMAT" should be == " - "calc region num: "SIZE_FORMAT, + hrs_err_msg("[%s] region num: %u should be == calc region num: %u", name(), region_num(), _calc_region_num)); guarantee(total_capacity_bytes() == _calc_total_capacity_bytes, @@ -211,8 +207,8 @@ void HeapRegionSetBase::print_on(outputStream* out, bool print_contents) { out->print_cr(" humongous : %s", BOOL_TO_STR(regions_humongous())); out->print_cr(" empty : %s", BOOL_TO_STR(regions_empty())); out->print_cr(" Attributes"); - out->print_cr(" length : "SIZE_FORMAT_W(14), length()); - out->print_cr(" region num : "SIZE_FORMAT_W(14), region_num()); + out->print_cr(" length : %14u", length()); + out->print_cr(" region num : %14u", region_num()); out->print_cr(" total capacity : "SIZE_FORMAT_W(14)" bytes", total_capacity_bytes()); out->print_cr(" total used : "SIZE_FORMAT_W(14)" bytes", @@ -243,14 +239,12 @@ void HeapRegionSet::update_from_proxy(HeapRegionSet* proxy_set) { if (proxy_set->is_empty()) return; assert(proxy_set->length() <= _length, - hrs_err_msg("[%s] proxy set length: "SIZE_FORMAT" " - "should be <= length: "SIZE_FORMAT, + hrs_err_msg("[%s] proxy set length: %u should be <= length: %u", name(), proxy_set->length(), _length)); _length -= proxy_set->length(); assert(proxy_set->region_num() <= _region_num, - hrs_err_msg("[%s] proxy set region num: "SIZE_FORMAT" " - "should be <= region num: "SIZE_FORMAT, + hrs_err_msg("[%s] proxy set region num: %u should be <= region num: %u", name(), proxy_set->region_num(), _region_num)); _region_num -= proxy_set->region_num(); @@ -369,17 +363,17 @@ void HeapRegionLinkedList::remove_all() { verify_optional(); } -void HeapRegionLinkedList::remove_all_pending(size_t target_count) { +void HeapRegionLinkedList::remove_all_pending(uint target_count) { hrs_assert_mt_safety_ok(this); assert(target_count > 1, hrs_ext_msg(this, "pre-condition")); assert(!is_empty(), hrs_ext_msg(this, "pre-condition")); verify_optional(); - DEBUG_ONLY(size_t old_length = length();) + DEBUG_ONLY(uint old_length = length();) HeapRegion* curr = _head; HeapRegion* prev = NULL; - size_t count = 0; + uint count = 0; while (curr != NULL) { hrs_assert_region_ok(this, curr, this); HeapRegion* next = curr->next(); @@ -387,7 +381,7 @@ void HeapRegionLinkedList::remove_all_pending(size_t target_count) { if (curr->pending_removal()) { assert(count < target_count, hrs_err_msg("[%s] should not come across more regions " - "pending for removal than target_count: "SIZE_FORMAT, + "pending for removal than target_count: %u", name(), target_count)); if (prev == NULL) { @@ -422,12 +416,11 @@ void HeapRegionLinkedList::remove_all_pending(size_t target_count) { } assert(count == target_count, - hrs_err_msg("[%s] count: "SIZE_FORMAT" should be == " - "target_count: "SIZE_FORMAT, name(), count, target_count)); + hrs_err_msg("[%s] count: %u should be == target_count: %u", + name(), count, target_count)); assert(length() + target_count == old_length, hrs_err_msg("[%s] new length should be consistent " - "new length: "SIZE_FORMAT" old length: "SIZE_FORMAT" " - "target_count: "SIZE_FORMAT, + "new length: %u old length: %u target_count: %u", name(), length(), old_length, target_count)); verify_optional(); @@ -444,16 +437,16 @@ void HeapRegionLinkedList::verify() { HeapRegion* curr = _head; HeapRegion* prev1 = NULL; HeapRegion* prev0 = NULL; - size_t count = 0; + uint count = 0; while (curr != NULL) { verify_next_region(curr); count += 1; guarantee(count < _unrealistically_long_length, - hrs_err_msg("[%s] the calculated length: "SIZE_FORMAT" " + hrs_err_msg("[%s] the calculated length: %u " "seems very long, is there maybe a cycle? " "curr: "PTR_FORMAT" prev0: "PTR_FORMAT" " - "prev1: "PTR_FORMAT" length: "SIZE_FORMAT, + "prev1: "PTR_FORMAT" length: %u", name(), count, curr, prev0, prev1, length())); prev1 = prev0; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp index 8231c772d3b..1f0ffe1670c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp @@ -62,20 +62,20 @@ class HeapRegionSetBase VALUE_OBJ_CLASS_SPEC { friend class VMStructs; protected: - static size_t calculate_region_num(HeapRegion* hr); + static uint calculate_region_num(HeapRegion* hr); - static size_t _unrealistically_long_length; + static uint _unrealistically_long_length; // The number of regions added to the set. If the set contains // only humongous regions, this reflects only 'starts humongous' // regions and does not include 'continues humongous' ones. - size_t _length; + uint _length; // The total number of regions represented by the set. If the set // does not contain humongous regions, this should be the same as // _length. If the set contains only humongous regions, this will // include the 'continues humongous' regions. - size_t _region_num; + uint _region_num; // We don't keep track of the total capacity explicitly, we instead // recalculate it based on _region_num and the heap region size. @@ -86,8 +86,8 @@ protected: const char* _name; bool _verify_in_progress; - size_t _calc_length; - size_t _calc_region_num; + uint _calc_length; + uint _calc_region_num; size_t _calc_total_capacity_bytes; size_t _calc_total_used_bytes; @@ -153,18 +153,18 @@ protected: HeapRegionSetBase(const char* name); public: - static void set_unrealistically_long_length(size_t len); + static void set_unrealistically_long_length(uint len); const char* name() { return _name; } - size_t length() { return _length; } + uint length() { return _length; } bool is_empty() { return _length == 0; } - size_t region_num() { return _region_num; } + uint region_num() { return _region_num; } size_t total_capacity_bytes() { - return region_num() << HeapRegion::LogOfHRGrainBytes; + return (size_t) region_num() << HeapRegion::LogOfHRGrainBytes; } size_t total_used_bytes() { return _total_used_bytes; } @@ -341,7 +341,7 @@ public: // of regions that are pending for removal in the list, and // target_count should be > 1 (currently, we never need to remove a // single region using this). - void remove_all_pending(size_t target_count); + void remove_all_pending(uint target_count); virtual void verify(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp index 9cb40b52754..8705f40cf95 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, 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 @@ -54,15 +54,15 @@ inline void HeapRegionSetBase::update_for_removal(HeapRegion* hr) { assert(_length > 0, hrs_ext_msg(this, "pre-condition")); _length -= 1; - size_t region_num_diff; + uint region_num_diff; if (!hr->isHumongous()) { region_num_diff = 1; } else { region_num_diff = calculate_region_num(hr); } assert(region_num_diff <= _region_num, - hrs_err_msg("[%s] region's region num: "SIZE_FORMAT" " - "should be <= region num: "SIZE_FORMAT, + hrs_err_msg("[%s] region's region num: %u " + "should be <= region num: %u", name(), region_num_diff, _region_num)); _region_num -= region_num_diff; diff --git a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp index 5cdd101404b..64b1be2460f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, 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 @@ -481,8 +481,7 @@ size_t SparsePRT::mem_size() const { bool SparsePRT::add_card(RegionIdx_t region_id, CardIdx_t card_index) { #if SPARSE_PRT_VERBOSE - gclog_or_tty->print_cr(" Adding card %d from region %d to region " - SIZE_FORMAT" sparse.", + gclog_or_tty->print_cr(" Adding card %d from region %d to region %u sparse.", card_index, region_id, _hr->hrs_index()); #endif if (_next->occupied_entries() * 2 > _next->capacity()) { @@ -534,7 +533,7 @@ void SparsePRT::expand() { _next = new RSHashTable(last->capacity() * 2); #if SPARSE_PRT_VERBOSE - gclog_or_tty->print_cr(" Expanded sparse table for "SIZE_FORMAT" to %d.", + gclog_or_tty->print_cr(" Expanded sparse table for %u to %d.", _hr->hrs_index(), _next->capacity()); #endif for (size_t i = 0; i < last->capacity(); i++) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp b/hotspot/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp index a646b48b0c5..5507dee5f80 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vmStructs_g1.hpp @@ -34,7 +34,7 @@ static_field(HeapRegion, GrainBytes, size_t) \ \ nonstatic_field(HeapRegionSeq, _regions, HeapRegion**) \ - nonstatic_field(HeapRegionSeq, _length, size_t) \ + nonstatic_field(HeapRegionSeq, _length, uint) \ \ nonstatic_field(G1CollectedHeap, _hrs, HeapRegionSeq) \ nonstatic_field(G1CollectedHeap, _g1_committed, MemRegion) \ @@ -50,8 +50,8 @@ nonstatic_field(G1MonitoringSupport, _old_committed, size_t) \ nonstatic_field(G1MonitoringSupport, _old_used, size_t) \ \ - nonstatic_field(HeapRegionSetBase, _length, size_t) \ - nonstatic_field(HeapRegionSetBase, _region_num, size_t) \ + nonstatic_field(HeapRegionSetBase, _length, uint) \ + nonstatic_field(HeapRegionSetBase, _region_num, uint) \ nonstatic_field(HeapRegionSetBase, _total_used_bytes, size_t) \ From 899181bf7c5d1fbfd4849d889db3fc5138227ba5 Mon Sep 17 00:00:00 2001 From: Michael McMahon Date: Wed, 18 Apr 2012 16:04:19 +0100 Subject: [PATCH 70/82] 7162043: Add headless mode tests to problem list [macosx] Reviewed-by: alanb --- jdk/test/ProblemList.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 94db829ba11..1980d033038 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -161,6 +161,26 @@ demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java generic-all # Need to be marked othervm, or changed to be samevm safe com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java generic-all +# 7162111 +demo/jvmti/mtrace/TraceJFrame.java macosx-all +javax/script/CauseExceptionTest.java macosx-all +javax/script/GetInterfaceTest.java macosx-all +javax/script/JavaScriptScopeTest.java macosx-all +javax/script/NullUndefinedVarTest.java macosx-all +javax/script/PluggableContextTest.java macosx-all +javax/script/ProviderTest.sh macosx-all +javax/script/RhinoExceptionTest.java macosx-all +javax/script/StringWriterPrintTest.java macosx-all +javax/script/Test1.java macosx-all +javax/script/Test2.java macosx-all +javax/script/Test3.java macosx-all +javax/script/Test4.java macosx-all +javax/script/Test5.java macosx-all +javax/script/Test6.java macosx-all +javax/script/Test7.java macosx-all +javax/script/Test8.java macosx-all +javax/script/UnescapedBracketRegExTest.java macosx-all +javax/script/VersionTest.java macosx-all ############################################################################ # jdk_net @@ -202,6 +222,8 @@ java/net/DatagramSocket/SendDatagramToBadAddress.java macosx-all sun/net/www/protocol/http/B6299712.java macosx-all java/net/CookieHandler/CookieManagerTest.java macosx-all +# JPRT needs to set 127.0.0.1 in proxy bypass list +java/net/URLClassLoader/closetest/CloseTest.java macosx-all ############################################################################ # jdk_io From 846b62bbd6075339a0689ebb0cfe684045195ccc Mon Sep 17 00:00:00 2001 From: Leonid Romanov Date: Wed, 18 Apr 2012 21:08:38 +0400 Subject: [PATCH 71/82] 7124286: [macosx] Option modifier should work like AltGr as in Apple jdk Reviewed-by: anthony --- .../classes/sun/lwawt/macosx/LWCToolkit.java | 9 +++++++++ .../javax/swing/text/DefaultEditorKit.java | 19 ++++++++++++++----- jdk/src/share/classes/sun/awt/SunToolkit.java | 10 ++++++++++ 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java b/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java index fd4a15a3d6f..b4c5f453d8d 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java @@ -647,6 +647,15 @@ public class LWCToolkit extends LWToolkit { return InputEvent.CTRL_MASK | InputEvent.ALT_MASK; } + /** + * Tests whether specified key modifiers mask can be used to enter a printable + * character. + */ + @Override + public boolean isPrintableCharacterModifiersMask(int mods) { + return ((mods & (InputEvent.META_MASK | InputEvent.CTRL_MASK)) == 0); + } + // Extends PeerEvent because we want to pass long an ObjC mediator object and because we want these events to be posted early // Typically, rather than relying on the notifier to call notifyAll(), we use the mediator to stop the runloop public static class CPeerEvent extends PeerEvent { diff --git a/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java b/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java index ba90af7dcf2..775e7393cb6 100644 --- a/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java +++ b/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java @@ -24,6 +24,8 @@ */ package javax.swing.text; +import sun.awt.SunToolkit; + import java.io.*; import java.awt.*; import java.awt.event.ActionEvent; @@ -869,11 +871,18 @@ public class DefaultEditorKit extends EditorKit { } String content = e.getActionCommand(); int mod = e.getModifiers(); - if ((content != null) && (content.length() > 0) && - ((mod & ActionEvent.ALT_MASK) == (mod & ActionEvent.CTRL_MASK))) { - char c = content.charAt(0); - if ((c >= 0x20) && (c != 0x7F)) { - target.replaceSelection(content); + if ((content != null) && (content.length() > 0)) { + boolean isPrintableMask = true; + Toolkit tk = Toolkit.getDefaultToolkit(); + if (tk instanceof SunToolkit) { + isPrintableMask = ((SunToolkit)tk).isPrintableCharacterModifiersMask(mod); + } + + if (isPrintableMask) { + char c = content.charAt(0); + if ((c >= 0x20) && (c != 0x7F)) { + target.replaceSelection(content); + } } } } diff --git a/jdk/src/share/classes/sun/awt/SunToolkit.java b/jdk/src/share/classes/sun/awt/SunToolkit.java index 132c1d6c6d7..19cfdf41711 100644 --- a/jdk/src/share/classes/sun/awt/SunToolkit.java +++ b/jdk/src/share/classes/sun/awt/SunToolkit.java @@ -1125,6 +1125,16 @@ public abstract class SunToolkit extends Toolkit return InputEvent.ALT_MASK; } + /** + * Tests whether specified key modifiers mask can be used to enter a printable + * character. This is a default implementation of this method, which reflects + * the way things work on Windows: here, pressing ctrl + alt allows user to enter + * characters from the extended character set (like euro sign or math symbols) + */ + public boolean isPrintableCharacterModifiersMask(int mods) { + return ((mods & InputEvent.ALT_MASK) == (mods & InputEvent.CTRL_MASK)); + } + /** * Returns a new input method window, with behavior as specified in * {@link java.awt.im.spi.InputMethodContext#createInputMethodWindow}. From 0afaaf8d367118039c73cf26cde591b882be7c17 Mon Sep 17 00:00:00 2001 From: Antonios Printezis Date: Wed, 18 Apr 2012 13:39:55 -0400 Subject: [PATCH 72/82] 7145441: G1: collection set chooser-related cleanup Cleanup of the CSet chooser class: standardize on uints for region num and indexes (instead of int, jint, etc.), make the method / field naming style more consistent, remove a lot of dead code. Reviewed-by: johnc, brutisso --- .../g1/collectionSetChooser.cpp | 255 ++++-------------- .../g1/collectionSetChooser.hpp | 152 ++++------- .../gc_implementation/g1/concurrentMark.cpp | 105 +------- .../gc_implementation/g1/g1CollectedHeap.cpp | 2 - .../g1/g1CollectorPolicy.cpp | 146 +++------- .../g1/g1CollectorPolicy.hpp | 42 --- .../vm/gc_implementation/g1/g1_globals.hpp | 3 - .../vm/gc_implementation/g1/heapRegion.cpp | 4 +- .../vm/gc_implementation/g1/heapRegion.hpp | 16 +- 9 files changed, 147 insertions(+), 578 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp index 29a03275c61..663011a77b1 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp @@ -29,102 +29,6 @@ #include "gc_implementation/g1/g1ErgoVerbose.hpp" #include "memory/space.inline.hpp" -CSetChooserCache::CSetChooserCache() { - for (int i = 0; i < CacheLength; ++i) - _cache[i] = NULL; - clear(); -} - -void CSetChooserCache::clear() { - _occupancy = 0; - _first = 0; - for (int i = 0; i < CacheLength; ++i) { - HeapRegion *hr = _cache[i]; - if (hr != NULL) - hr->set_sort_index(-1); - _cache[i] = NULL; - } -} - -#ifndef PRODUCT -bool CSetChooserCache::verify() { - guarantee(false, "CSetChooserCache::verify(): don't call this any more"); - - int index = _first; - HeapRegion *prev = NULL; - for (int i = 0; i < _occupancy; ++i) { - guarantee(_cache[index] != NULL, "cache entry should not be empty"); - HeapRegion *hr = _cache[index]; - guarantee(!hr->is_young(), "should not be young!"); - if (prev != NULL) { - guarantee(prev->gc_efficiency() >= hr->gc_efficiency(), - "cache should be correctly ordered"); - } - guarantee(hr->sort_index() == get_sort_index(index), - "sort index should be correct"); - index = trim_index(index + 1); - prev = hr; - } - - for (int i = 0; i < (CacheLength - _occupancy); ++i) { - guarantee(_cache[index] == NULL, "cache entry should be empty"); - index = trim_index(index + 1); - } - - guarantee(index == _first, "we should have reached where we started from"); - return true; -} -#endif // PRODUCT - -void CSetChooserCache::insert(HeapRegion *hr) { - guarantee(false, "CSetChooserCache::insert(): don't call this any more"); - - assert(!is_full(), "cache should not be empty"); - hr->calc_gc_efficiency(); - - int empty_index; - if (_occupancy == 0) { - empty_index = _first; - } else { - empty_index = trim_index(_first + _occupancy); - assert(_cache[empty_index] == NULL, "last slot should be empty"); - int last_index = trim_index(empty_index - 1); - HeapRegion *last = _cache[last_index]; - assert(last != NULL,"as the cache is not empty, last should not be empty"); - while (empty_index != _first && - last->gc_efficiency() < hr->gc_efficiency()) { - _cache[empty_index] = last; - last->set_sort_index(get_sort_index(empty_index)); - empty_index = last_index; - last_index = trim_index(last_index - 1); - last = _cache[last_index]; - } - } - _cache[empty_index] = hr; - hr->set_sort_index(get_sort_index(empty_index)); - - ++_occupancy; - assert(verify(), "cache should be consistent"); -} - -HeapRegion *CSetChooserCache::remove_first() { - guarantee(false, "CSetChooserCache::remove_first(): " - "don't call this any more"); - - if (_occupancy > 0) { - assert(_cache[_first] != NULL, "cache should have at least one region"); - HeapRegion *ret = _cache[_first]; - _cache[_first] = NULL; - ret->set_sort_index(-1); - --_occupancy; - _first = trim_index(_first + 1); - assert(verify(), "cache should be consistent"); - return ret; - } else { - return NULL; - } -} - // Even though we don't use the GC efficiency in our heuristics as // much as we used to, we still order according to GC efficiency. This // will cause regions with a lot of live objects and large RSets to @@ -134,7 +38,7 @@ HeapRegion *CSetChooserCache::remove_first() { // the ones we'll skip are ones with both large RSets and a lot of // live objects, not the ones with just a lot of live objects if we // ordered according to the amount of reclaimable bytes per region. -static int orderRegions(HeapRegion* hr1, HeapRegion* hr2) { +static int order_regions(HeapRegion* hr1, HeapRegion* hr2) { if (hr1 == NULL) { if (hr2 == NULL) { return 0; @@ -156,8 +60,8 @@ static int orderRegions(HeapRegion* hr1, HeapRegion* hr2) { } } -static int orderRegions(HeapRegion** hr1p, HeapRegion** hr2p) { - return orderRegions(*hr1p, *hr2p); +static int order_regions(HeapRegion** hr1p, HeapRegion** hr2p) { + return order_regions(*hr1p, *hr2p); } CollectionSetChooser::CollectionSetChooser() : @@ -175,105 +79,74 @@ CollectionSetChooser::CollectionSetChooser() : // // Note: containing object is allocated on C heap since it is CHeapObj. // - _markedRegions((ResourceObj::set_allocation_type((address)&_markedRegions, + _regions((ResourceObj::set_allocation_type((address) &_regions, ResourceObj::C_HEAP), 100), true /* C_Heap */), - _curr_index(0), _length(0), - _regionLiveThresholdBytes(0), _remainingReclaimableBytes(0), - _first_par_unreserved_idx(0) { - _regionLiveThresholdBytes = + _curr_index(0), _length(0), _first_par_unreserved_idx(0), + _region_live_threshold_bytes(0), _remaining_reclaimable_bytes(0) { + _region_live_threshold_bytes = HeapRegion::GrainBytes * (size_t) G1OldCSetRegionLiveThresholdPercent / 100; } #ifndef PRODUCT -bool CollectionSetChooser::verify() { - guarantee(_length >= 0, err_msg("_length: %d", _length)); - guarantee(0 <= _curr_index && _curr_index <= _length, - err_msg("_curr_index: %d _length: %d", _curr_index, _length)); - int index = 0; +void CollectionSetChooser::verify() { + guarantee(_length <= regions_length(), + err_msg("_length: %u regions length: %u", _length, regions_length())); + guarantee(_curr_index <= _length, + err_msg("_curr_index: %u _length: %u", _curr_index, _length)); + uint index = 0; size_t sum_of_reclaimable_bytes = 0; while (index < _curr_index) { - guarantee(_markedRegions.at(index) == NULL, + guarantee(regions_at(index) == NULL, "all entries before _curr_index should be NULL"); index += 1; } HeapRegion *prev = NULL; while (index < _length) { - HeapRegion *curr = _markedRegions.at(index++); - guarantee(curr != NULL, "Regions in _markedRegions array cannot be NULL"); - int si = curr->sort_index(); + HeapRegion *curr = regions_at(index++); + guarantee(curr != NULL, "Regions in _regions array cannot be NULL"); guarantee(!curr->is_young(), "should not be young!"); guarantee(!curr->isHumongous(), "should not be humongous!"); - guarantee(si > -1 && si == (index-1), "sort index invariant"); if (prev != NULL) { - guarantee(orderRegions(prev, curr) != 1, + guarantee(order_regions(prev, curr) != 1, err_msg("GC eff prev: %1.4f GC eff curr: %1.4f", prev->gc_efficiency(), curr->gc_efficiency())); } sum_of_reclaimable_bytes += curr->reclaimable_bytes(); prev = curr; } - guarantee(sum_of_reclaimable_bytes == _remainingReclaimableBytes, + guarantee(sum_of_reclaimable_bytes == _remaining_reclaimable_bytes, err_msg("reclaimable bytes inconsistent, " "remaining: "SIZE_FORMAT" sum: "SIZE_FORMAT, - _remainingReclaimableBytes, sum_of_reclaimable_bytes)); - return true; + _remaining_reclaimable_bytes, sum_of_reclaimable_bytes)); } -#endif +#endif // !PRODUCT -void CollectionSetChooser::fillCache() { - guarantee(false, "fillCache: don't call this any more"); - - while (!_cache.is_full() && (_curr_index < _length)) { - HeapRegion* hr = _markedRegions.at(_curr_index); - assert(hr != NULL, - err_msg("Unexpected NULL hr in _markedRegions at index %d", - _curr_index)); - _curr_index += 1; - assert(!hr->is_young(), "should not be young!"); - assert(hr->sort_index() == _curr_index-1, "sort_index invariant"); - _markedRegions.at_put(hr->sort_index(), NULL); - _cache.insert(hr); - assert(!_cache.is_empty(), "cache should not be empty"); - } - assert(verify(), "cache should be consistent"); -} - -void CollectionSetChooser::sortMarkedHeapRegions() { +void CollectionSetChooser::sort_regions() { // First trim any unused portion of the top in the parallel case. if (_first_par_unreserved_idx > 0) { - if (G1PrintParCleanupStats) { - gclog_or_tty->print(" Truncating _markedRegions from %d to %d.\n", - _markedRegions.length(), _first_par_unreserved_idx); - } - assert(_first_par_unreserved_idx <= _markedRegions.length(), + assert(_first_par_unreserved_idx <= regions_length(), "Or we didn't reserved enough length"); - _markedRegions.trunc_to(_first_par_unreserved_idx); + regions_trunc_to(_first_par_unreserved_idx); } - _markedRegions.sort(orderRegions); - assert(_length <= _markedRegions.length(), "Requirement"); - assert(_length == 0 || _markedRegions.at(_length - 1) != NULL, - "Testing _length"); - assert(_length == _markedRegions.length() || - _markedRegions.at(_length) == NULL, "Testing _length"); - if (G1PrintParCleanupStats) { - gclog_or_tty->print_cr(" Sorted %d marked regions.", _length); - } - for (int i = 0; i < _length; i++) { - assert(_markedRegions.at(i) != NULL, "Should be true by sorting!"); - _markedRegions.at(i)->set_sort_index(i); + _regions.sort(order_regions); + assert(_length <= regions_length(), "Requirement"); +#ifdef ASSERT + for (uint i = 0; i < _length; i++) { + assert(regions_at(i) != NULL, "Should be true by sorting!"); } +#endif // ASSERT if (G1PrintRegionLivenessInfo) { G1PrintRegionLivenessInfoClosure cl(gclog_or_tty, "Post-Sorting"); - for (int i = 0; i < _length; ++i) { - HeapRegion* r = _markedRegions.at(i); + for (uint i = 0; i < _length; ++i) { + HeapRegion* r = regions_at(i); cl.doHeapRegion(r); } } - assert(verify(), "CSet chooser verification"); + verify(); } -uint CollectionSetChooser::calcMinOldCSetLength() { +uint CollectionSetChooser::calc_min_old_cset_length() { // The min old CSet region bound is based on the maximum desired // number of mixed GCs after a cycle. I.e., even if some old regions // look expensive, we should add them to the CSet anyway to make @@ -294,7 +167,7 @@ uint CollectionSetChooser::calcMinOldCSetLength() { return (uint) result; } -uint CollectionSetChooser::calcMaxOldCSetLength() { +uint CollectionSetChooser::calc_max_old_cset_length() { // The max old CSet region bound is based on the threshold expressed // as a percentage of the heap size. I.e., it should bound the // number of old regions added to the CSet irrespective of how many @@ -311,18 +184,18 @@ uint CollectionSetChooser::calcMaxOldCSetLength() { return (uint) result; } -void CollectionSetChooser::addMarkedHeapRegion(HeapRegion* hr) { +void CollectionSetChooser::add_region(HeapRegion* hr) { assert(!hr->isHumongous(), "Humongous regions shouldn't be added to the collection set"); assert(!hr->is_young(), "should not be young!"); - _markedRegions.append(hr); + _regions.append(hr); _length++; - _remainingReclaimableBytes += hr->reclaimable_bytes(); + _remaining_reclaimable_bytes += hr->reclaimable_bytes(); hr->calc_gc_efficiency(); } -void CollectionSetChooser::prepareForAddMarkedHeapRegionsPar(uint n_regions, - uint chunkSize) { +void CollectionSetChooser::prepare_for_par_region_addition(uint n_regions, + uint chunk_size) { _first_par_unreserved_idx = 0; uint n_threads = (uint) ParallelGCThreads; if (UseDynamicNumberOfGCThreads) { @@ -335,56 +208,46 @@ void CollectionSetChooser::prepareForAddMarkedHeapRegionsPar(uint n_regions, n_threads = MAX2(G1CollectedHeap::heap()->workers()->active_workers(), 1U); } - uint max_waste = n_threads * chunkSize; - // it should be aligned with respect to chunkSize - uint aligned_n_regions = (n_regions + chunkSize - 1) / chunkSize * chunkSize; - assert(aligned_n_regions % chunkSize == 0, "should be aligned"); - _markedRegions.at_put_grow((int) (aligned_n_regions + max_waste - 1), NULL); + uint max_waste = n_threads * chunk_size; + // it should be aligned with respect to chunk_size + uint aligned_n_regions = (n_regions + chunk_size - 1) / chunk_size * chunk_size; + assert(aligned_n_regions % chunk_size == 0, "should be aligned"); + regions_at_put_grow(aligned_n_regions + max_waste - 1, NULL); } -jint CollectionSetChooser::getParMarkedHeapRegionChunk(jint n_regions) { - // Don't do this assert because this can be called at a point - // where the loop up stream will not execute again but might - // try to claim more chunks (loop test has not been done yet). - // assert(_markedRegions.length() > _first_par_unreserved_idx, - // "Striding beyond the marked regions"); - jint res = Atomic::add(n_regions, &_first_par_unreserved_idx); - assert(_markedRegions.length() > res + n_regions - 1, +uint CollectionSetChooser::claim_array_chunk(uint chunk_size) { + uint res = (uint) Atomic::add((jint) chunk_size, + (volatile jint*) &_first_par_unreserved_idx); + assert(regions_length() > res + chunk_size - 1, "Should already have been expanded"); - return res - n_regions; + return res - chunk_size; } -void CollectionSetChooser::setMarkedHeapRegion(jint index, HeapRegion* hr) { - assert(_markedRegions.at(index) == NULL, "precondition"); +void CollectionSetChooser::set_region(uint index, HeapRegion* hr) { + assert(regions_at(index) == NULL, "precondition"); assert(!hr->is_young(), "should not be young!"); - _markedRegions.at_put(index, hr); + regions_at_put(index, hr); hr->calc_gc_efficiency(); } -void CollectionSetChooser::updateTotals(jint region_num, - size_t reclaimable_bytes) { +void CollectionSetChooser::update_totals(uint region_num, + size_t reclaimable_bytes) { // Only take the lock if we actually need to update the totals. if (region_num > 0) { assert(reclaimable_bytes > 0, "invariant"); // We could have just used atomics instead of taking the // lock. However, we currently don't have an atomic add for size_t. MutexLockerEx x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag); - _length += (int) region_num; - _remainingReclaimableBytes += reclaimable_bytes; + _length += region_num; + _remaining_reclaimable_bytes += reclaimable_bytes; } else { assert(reclaimable_bytes == 0, "invariant"); } } -void CollectionSetChooser::clearMarkedHeapRegions() { - for (int i = 0; i < _markedRegions.length(); i++) { - HeapRegion* r = _markedRegions.at(i); - if (r != NULL) { - r->set_sort_index(-1); - } - } - _markedRegions.clear(); +void CollectionSetChooser::clear() { + _regions.clear(); _curr_index = 0; _length = 0; - _remainingReclaimableBytes = 0; + _remaining_reclaimable_bytes = 0; }; diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp index caf18206066..e52476586c5 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp @@ -28,77 +28,42 @@ #include "gc_implementation/g1/heapRegion.hpp" #include "utilities/growableArray.hpp" -class CSetChooserCache VALUE_OBJ_CLASS_SPEC { -private: - enum { - CacheLength = 16 - } PrivateConstants; - - HeapRegion* _cache[CacheLength]; - int _occupancy; // number of regions in cache - int _first; // (index of) "first" region in the cache - - // adding CacheLength to deal with negative values - inline int trim_index(int index) { - return (index + CacheLength) % CacheLength; - } - - inline int get_sort_index(int index) { - return -index-2; - } - inline int get_index(int sort_index) { - return -sort_index-2; - } - -public: - CSetChooserCache(void); - - inline int occupancy(void) { return _occupancy; } - inline bool is_full() { return _occupancy == CacheLength; } - inline bool is_empty() { return _occupancy == 0; } - - void clear(void); - void insert(HeapRegion *hr); - HeapRegion *remove_first(void); - inline HeapRegion *get_first(void) { - return _cache[_first]; - } - -#ifndef PRODUCT - bool verify (void); - bool region_in_cache(HeapRegion *hr) { - int sort_index = hr->sort_index(); - if (sort_index < -1) { - int index = get_index(sort_index); - guarantee(index < CacheLength, "should be within bounds"); - return _cache[index] == hr; - } else - return 0; - } -#endif // PRODUCT -}; - class CollectionSetChooser: public CHeapObj { - GrowableArray _markedRegions; + GrowableArray _regions; + + // Unfortunately, GrowableArray uses ints for length and indexes. To + // avoid excessive casting in the rest of the class the following + // wrapper methods are provided that use uints. + + uint regions_length() { return (uint) _regions.length(); } + HeapRegion* regions_at(uint i) { return _regions.at((int) i); } + void regions_at_put(uint i, HeapRegion* hr) { + _regions.at_put((int) i, hr); + } + void regions_at_put_grow(uint i, HeapRegion* hr) { + _regions.at_put_grow((int) i, hr); + } + void regions_trunc_to(uint i) { _regions.trunc_to((uint) i); } // The index of the next candidate old region to be considered for // addition to the CSet. - int _curr_index; + uint _curr_index; // The number of candidate old regions added to the CSet chooser. - int _length; + uint _length; - CSetChooserCache _cache; - jint _first_par_unreserved_idx; + // Keeps track of the start of the next array chunk to be claimed by + // parallel GC workers. + uint _first_par_unreserved_idx; // If a region has more live bytes than this threshold, it will not // be added to the CSet chooser and will not be a candidate for // collection. - size_t _regionLiveThresholdBytes; + size_t _region_live_threshold_bytes; // The sum of reclaimable bytes over all the regions in the CSet chooser. - size_t _remainingReclaimableBytes; + size_t _remaining_reclaimable_bytes; public: @@ -107,9 +72,9 @@ public: HeapRegion* peek() { HeapRegion* res = NULL; if (_curr_index < _length) { - res = _markedRegions.at(_curr_index); + res = regions_at(_curr_index); assert(res != NULL, - err_msg("Unexpected NULL hr in _markedRegions at index %d", + err_msg("Unexpected NULL hr in _regions at index %u", _curr_index)); } return res; @@ -121,90 +86,71 @@ public: void remove_and_move_to_next(HeapRegion* hr) { assert(hr != NULL, "pre-condition"); assert(_curr_index < _length, "pre-condition"); - assert(_markedRegions.at(_curr_index) == hr, "pre-condition"); - hr->set_sort_index(-1); - _markedRegions.at_put(_curr_index, NULL); - assert(hr->reclaimable_bytes() <= _remainingReclaimableBytes, + assert(regions_at(_curr_index) == hr, "pre-condition"); + regions_at_put(_curr_index, NULL); + assert(hr->reclaimable_bytes() <= _remaining_reclaimable_bytes, err_msg("remaining reclaimable bytes inconsistent " "from region: "SIZE_FORMAT" remaining: "SIZE_FORMAT, - hr->reclaimable_bytes(), _remainingReclaimableBytes)); - _remainingReclaimableBytes -= hr->reclaimable_bytes(); + hr->reclaimable_bytes(), _remaining_reclaimable_bytes)); + _remaining_reclaimable_bytes -= hr->reclaimable_bytes(); _curr_index += 1; } CollectionSetChooser(); - void sortMarkedHeapRegions(); - void fillCache(); + void sort_regions(); // Determine whether to add the given region to the CSet chooser or // not. Currently, we skip humongous regions (we never add them to // the CSet, we only reclaim them during cleanup) and regions whose // live bytes are over the threshold. - bool shouldAdd(HeapRegion* hr) { + bool should_add(HeapRegion* hr) { assert(hr->is_marked(), "pre-condition"); assert(!hr->is_young(), "should never consider young regions"); return !hr->isHumongous() && - hr->live_bytes() < _regionLiveThresholdBytes; + hr->live_bytes() < _region_live_threshold_bytes; } // Calculate the minimum number of old regions we'll add to the CSet // during a mixed GC. - uint calcMinOldCSetLength(); + uint calc_min_old_cset_length(); // Calculate the maximum number of old regions we'll add to the CSet // during a mixed GC. - uint calcMaxOldCSetLength(); + uint calc_max_old_cset_length(); // Serial version. - void addMarkedHeapRegion(HeapRegion *hr); + void add_region(HeapRegion *hr); - // Must be called before calls to getParMarkedHeapRegionChunk. - // "n_regions" is the number of regions, "chunkSize" the chunk size. - void prepareForAddMarkedHeapRegionsPar(uint n_regions, uint chunkSize); - // Returns the first index in a contiguous chunk of "n_regions" indexes + // Must be called before calls to claim_array_chunk(). + // n_regions is the number of regions, chunk_size the chunk size. + void prepare_for_par_region_addition(uint n_regions, uint chunk_size); + // Returns the first index in a contiguous chunk of chunk_size indexes // that the calling thread has reserved. These must be set by the - // calling thread using "setMarkedHeapRegion" (to NULL if necessary). - jint getParMarkedHeapRegionChunk(jint n_regions); + // calling thread using set_region() (to NULL if necessary). + uint claim_array_chunk(uint chunk_size); // Set the marked array entry at index to hr. Careful to claim the index // first if in parallel. - void setMarkedHeapRegion(jint index, HeapRegion* hr); + void set_region(uint index, HeapRegion* hr); // Atomically increment the number of added regions by region_num // and the amount of reclaimable bytes by reclaimable_bytes. - void updateTotals(jint region_num, size_t reclaimable_bytes); + void update_totals(uint region_num, size_t reclaimable_bytes); - void clearMarkedHeapRegions(); + void clear(); // Return the number of candidate regions that remain to be collected. - uint remainingRegions() { return (uint) (_length - _curr_index); } + uint remaining_regions() { return _length - _curr_index; } // Determine whether the CSet chooser has more candidate regions or not. - bool isEmpty() { return remainingRegions() == 0; } + bool is_empty() { return remaining_regions() == 0; } // Return the reclaimable bytes that remain to be collected on // all the candidate regions in the CSet chooser. - size_t remainingReclaimableBytes () { return _remainingReclaimableBytes; } + size_t remaining_reclaimable_bytes() { return _remaining_reclaimable_bytes; } - // Returns true if the used portion of "_markedRegions" is properly + // Returns true if the used portion of "_regions" is properly // sorted, otherwise asserts false. -#ifndef PRODUCT - bool verify(void); - bool regionProperlyOrdered(HeapRegion* r) { - int si = r->sort_index(); - if (si > -1) { - guarantee(_curr_index <= si && si < _length, - err_msg("curr: %d sort index: %d: length: %d", - _curr_index, si, _length)); - guarantee(_markedRegions.at(si) == r, - err_msg("sort index: %d at: "PTR_FORMAT" r: "PTR_FORMAT, - si, _markedRegions.at(si), r)); - } else { - guarantee(si == -1, err_msg("sort index: %d", si)); - } - return true; - } -#endif - + void verify() PRODUCT_RETURN; }; #endif // SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 15eb1b6ea56..ba29b3120db 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -1192,11 +1192,6 @@ class CalcLiveObjectsClosure: public HeapRegionClosure { BitMap* _region_bm; BitMap* _card_bm; - // Debugging - size_t _tot_words_done; - size_t _tot_live; - size_t _tot_used; - size_t _region_marked_bytes; intptr_t _bottom_card_num; @@ -1215,9 +1210,7 @@ public: CalcLiveObjectsClosure(CMBitMapRO *bm, ConcurrentMark *cm, BitMap* region_bm, BitMap* card_bm) : _bm(bm), _cm(cm), _region_bm(region_bm), _card_bm(card_bm), - _region_marked_bytes(0), _tot_words_done(0), - _tot_live(0), _tot_used(0), - _bottom_card_num(cm->heap_bottom_card_num()) { } + _region_marked_bytes(0), _bottom_card_num(cm->heap_bottom_card_num()) { } // It takes a region that's not empty (i.e., it has at least one // live object in it and sets its corresponding bit on the region @@ -1262,9 +1255,6 @@ public: "start: "PTR_FORMAT", nextTop: "PTR_FORMAT", end: "PTR_FORMAT, start, nextTop, hr->end())); - // Record the number of word's we'll examine. - size_t words_done = (nextTop - start); - // Find the first marked object at or after "start". start = _bm->getNextMarkedWordAddress(start, nextTop); @@ -1343,19 +1333,10 @@ public: // it can be queried by a calling verificiation routine _region_marked_bytes = marked_bytes; - _tot_live += hr->next_live_bytes(); - _tot_used += hr->used(); - _tot_words_done = words_done; - return false; } size_t region_marked_bytes() const { return _region_marked_bytes; } - - // Debugging - size_t tot_words_done() const { return _tot_words_done; } - size_t tot_live() const { return _tot_live; } - size_t tot_used() const { return _tot_used; } }; // Heap region closure used for verifying the counting data @@ -1574,10 +1555,6 @@ class FinalCountDataUpdateClosure: public HeapRegionClosure { BitMap* _region_bm; BitMap* _card_bm; - size_t _total_live_bytes; - size_t _total_used_bytes; - size_t _total_words_done; - void set_card_bitmap_range(BitMap::idx_t start_idx, BitMap::idx_t last_idx) { assert(start_idx <= last_idx, "sanity"); @@ -1621,8 +1598,7 @@ class FinalCountDataUpdateClosure: public HeapRegionClosure { FinalCountDataUpdateClosure(ConcurrentMark* cm, BitMap* region_bm, BitMap* card_bm) : - _cm(cm), _region_bm(region_bm), _card_bm(card_bm), - _total_words_done(0), _total_live_bytes(0), _total_used_bytes(0) { } + _cm(cm), _region_bm(region_bm), _card_bm(card_bm) { } bool doHeapRegion(HeapRegion* hr) { @@ -1644,8 +1620,6 @@ class FinalCountDataUpdateClosure: public HeapRegionClosure { assert(hr->bottom() <= start && start <= hr->end() && hr->bottom() <= ntams && ntams <= hr->end(), "Preconditions."); - size_t words_done = ntams - hr->bottom(); - if (start < ntams) { // Region was changed between remark and cleanup pauses // We need to add (ntams - start) to the marked bytes @@ -1676,16 +1650,8 @@ class FinalCountDataUpdateClosure: public HeapRegionClosure { set_bit_for_region(hr); } - _total_words_done += words_done; - _total_used_bytes += hr->used(); - _total_live_bytes += hr->next_marked_bytes(); - return false; } - - size_t total_words_done() const { return _total_words_done; } - size_t total_live_bytes() const { return _total_live_bytes; } - size_t total_used_bytes() const { return _total_used_bytes; } }; class G1ParFinalCountTask: public AbstractGangTask { @@ -1697,9 +1663,6 @@ protected: uint _n_workers; - size_t *_live_bytes; - size_t *_used_bytes; - public: G1ParFinalCountTask(G1CollectedHeap* g1h, BitMap* region_bm, BitMap* card_bm) : AbstractGangTask("G1 final counting"), @@ -1707,8 +1670,7 @@ public: _actual_region_bm(region_bm), _actual_card_bm(card_bm), _n_workers(0) { // Use the value already set as the number of active threads - // in the call to run_task(). Needed for the allocation of - // _live_bytes and _used_bytes. + // in the call to run_task(). if (G1CollectedHeap::use_parallel_gc_threads()) { assert( _g1h->workers()->active_workers() > 0, "Should have been previously set"); @@ -1716,14 +1678,6 @@ public: } else { _n_workers = 1; } - - _live_bytes = NEW_C_HEAP_ARRAY(size_t, (size_t) _n_workers); - _used_bytes = NEW_C_HEAP_ARRAY(size_t, (size_t) _n_workers); - } - - ~G1ParFinalCountTask() { - FREE_C_HEAP_ARRAY(size_t, _live_bytes); - FREE_C_HEAP_ARRAY(size_t, _used_bytes); } void work(uint worker_id) { @@ -1741,23 +1695,6 @@ public: } else { _g1h->heap_region_iterate(&final_update_cl); } - - _live_bytes[worker_id] = final_update_cl.total_live_bytes(); - _used_bytes[worker_id] = final_update_cl.total_used_bytes(); - } - - size_t live_bytes() { - size_t live_bytes = 0; - for (uint i = 0; i < _n_workers; ++i) - live_bytes += _live_bytes[i]; - return live_bytes; - } - - size_t used_bytes() { - size_t used_bytes = 0; - for (uint i = 0; i < _n_workers; ++i) - used_bytes += _used_bytes[i]; - return used_bytes; } }; @@ -1892,15 +1829,6 @@ public: HeapRegionRemSet::finish_cleanup_task(&hrrs_cleanup_task); } - double end = os::elapsedTime(); - if (G1PrintParCleanupStats) { - gclog_or_tty->print(" Worker thread %d [%8.3f..%8.3f = %8.3f ms] " - "claimed %u regions (tot = %8.3f ms, max = %8.3f ms).\n", - worker_id, start, end, (end-start)*1000.0, - g1_note_end.regions_claimed(), - g1_note_end.claimed_region_time_sec()*1000.0, - g1_note_end.max_region_time_sec()*1000.0); - } } size_t max_live_bytes() { return _max_live_bytes; } size_t freed_bytes() { return _freed_bytes; } @@ -2011,29 +1939,11 @@ void ConcurrentMark::cleanup() { guarantee(g1_par_verify_task.failures() == 0, "Unexpected accounting failures"); } - size_t known_garbage_bytes = - g1_par_count_task.used_bytes() - g1_par_count_task.live_bytes(); - g1p->set_known_garbage_bytes(known_garbage_bytes); - size_t start_used_bytes = g1h->used(); g1h->set_marking_complete(); - ergo_verbose4(ErgoConcCycles, - "finish cleanup", - ergo_format_byte("occupancy") - ergo_format_byte("capacity") - ergo_format_byte_perc("known garbage"), - start_used_bytes, g1h->capacity(), - known_garbage_bytes, - ((double) known_garbage_bytes / (double) g1h->capacity()) * 100.0); - double count_end = os::elapsedTime(); double this_final_counting_time = (count_end - start); - if (G1PrintParCleanupStats) { - gclog_or_tty->print_cr("Cleanup:"); - gclog_or_tty->print_cr(" Finalize counting: %8.3f ms", - this_final_counting_time*1000.0); - } _total_counting_time += this_final_counting_time; if (G1PrintRegionLivenessInfo) { @@ -2047,7 +1957,6 @@ void ConcurrentMark::cleanup() { g1h->reset_gc_time_stamp(); // Note end of marking in all heap regions. - double note_end_start = os::elapsedTime(); G1ParNoteEndTask g1_par_note_end_task(g1h, &_cleanup_list); if (G1CollectedHeap::use_parallel_gc_threads()) { g1h->set_par_threads((int)n_workers); @@ -2066,11 +1975,6 @@ void ConcurrentMark::cleanup() { // regions that there will be more free regions coming soon. g1h->set_free_regions_coming(); } - double note_end_end = os::elapsedTime(); - if (G1PrintParCleanupStats) { - gclog_or_tty->print_cr(" note end of marking: %8.3f ms.", - (note_end_end - note_end_start)*1000.0); - } // call below, since it affects the metric by which we sort the heap // regions. @@ -2109,9 +2013,6 @@ void ConcurrentMark::cleanup() { g1h->capacity()); } - size_t cleaned_up_bytes = start_used_bytes - g1h->used(); - g1p->decrease_known_garbage_bytes(cleaned_up_bytes); - // Clean up will have freed any regions completely full of garbage. // Update the soft reference policy with the new heap occupancy. Universe::update_heap_info_at_gc(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 924296718e8..2711a52d01b 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -4064,7 +4064,6 @@ void G1CollectedHeap::finalize_for_evac_failure() { void G1CollectedHeap::remove_self_forwarding_pointers() { assert(check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity"); - assert(g1_policy()->assertMarkedBytesDataOK(), "Should be!"); G1ParRemoveSelfForwardPtrsTask rsfp_task(this); @@ -4082,7 +4081,6 @@ void G1CollectedHeap::remove_self_forwarding_pointers() { reset_cset_heap_region_claim_values(); assert(check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity"); - assert(g1_policy()->assertMarkedBytesDataOK(), "Should be!"); // Now restore saved marks, if any. if (_objs_with_preserved_marks != NULL) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 44409fee471..d656f260ba1 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -192,11 +192,6 @@ G1CollectorPolicy::G1CollectorPolicy() : _in_marking_window(false), _in_marking_window_im(false), - _known_garbage_ratio(0.0), - _known_garbage_bytes(0), - - _young_gc_eff_seq(new TruncatedSeq(TruncatedSeqLength)), - _recent_prev_end_times_for_all_gcs_sec( new TruncatedSeq(NumPrevPausesForHeuristics)), @@ -868,8 +863,6 @@ void G1CollectorPolicy::record_full_collection_end() { _last_young_gc = false; clear_initiate_conc_mark_if_possible(); clear_during_initial_mark_pause(); - _known_garbage_bytes = 0; - _known_garbage_ratio = 0.0; _in_marking_window = false; _in_marking_window_im = false; @@ -882,7 +875,7 @@ void G1CollectorPolicy::record_full_collection_end() { // Reset survivors SurvRateGroup. _survivor_surv_rate_group->reset(); update_young_list_target_length(); - _collectionSetChooser->clearMarkedHeapRegions(); + _collectionSetChooser->clear(); } void G1CollectorPolicy::record_stop_world_start() { @@ -1456,16 +1449,6 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { } } - // Update the efficiency-since-mark vars. - double proc_ms = elapsed_ms * (double) _parallel_gc_threads; - if (elapsed_ms < MIN_TIMER_GRANULARITY) { - // This usually happens due to the timer not having the required - // granularity. Some Linuxes are the usual culprits. - // We'll just set it to something (arbitrarily) small. - proc_ms = 1.0; - } - double cur_efficiency = (double) freed_bytes / proc_ms; - bool new_in_marking_window = _in_marking_window; bool new_in_marking_window_im = false; if (during_initial_mark_pause()) { @@ -1500,10 +1483,6 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { } } - if (_last_gc_was_young && !_during_marking) { - _young_gc_eff_seq->add(cur_efficiency); - } - _short_lived_surv_rate_group->start_adding_regions(); // do that for any other surv rate groupsx @@ -1618,7 +1597,7 @@ void G1CollectorPolicy::record_collection_pause_end(int no_of_gc_threads) { double update_rs_time_goal_ms = _mmu_tracker->max_gc_time() * MILLIUNITS * G1RSetUpdatingPauseTimePercent / 100.0; adjust_concurrent_refinement(update_rs_time, update_rs_processed_buffers, update_rs_time_goal_ms); - assert(assertMarkedBytesDataOK(), "Marked regions not OK at pause end."); + _collectionSetChooser->verify(); } #define EXT_SIZE_FORMAT "%d%s" @@ -2065,28 +2044,6 @@ void G1CollectorPolicy::update_survivors_policy() { HeapRegion::GrainWords * _max_survivor_regions); } -#ifndef PRODUCT -class HRSortIndexIsOKClosure: public HeapRegionClosure { - CollectionSetChooser* _chooser; -public: - HRSortIndexIsOKClosure(CollectionSetChooser* chooser) : - _chooser(chooser) {} - - bool doHeapRegion(HeapRegion* r) { - if (!r->continuesHumongous()) { - assert(_chooser->regionProperlyOrdered(r), "Ought to be."); - } - return false; - } -}; - -bool G1CollectorPolicy::assertMarkedBytesDataOK() { - HRSortIndexIsOKClosure cl(_collectionSetChooser); - _g1->heap_region_iterate(&cl); - return true; -} -#endif - bool G1CollectorPolicy::force_initial_mark_if_outside_cycle( GCCause::Cause gc_cause) { bool during_cycle = _g1->concurrent_mark()->cmThread()->during_cycle(); @@ -2184,8 +2141,8 @@ public: // We will skip any region that's currently used as an old GC // alloc region (we should not consider those for collection // before we fill them up). - if (_hrSorted->shouldAdd(r) && !_g1h->is_old_gc_alloc_region(r)) { - _hrSorted->addMarkedHeapRegion(r); + if (_hrSorted->should_add(r) && !_g1h->is_old_gc_alloc_region(r)) { + _hrSorted->add_region(r); } } return false; @@ -2195,16 +2152,14 @@ public: class ParKnownGarbageHRClosure: public HeapRegionClosure { G1CollectedHeap* _g1h; CollectionSetChooser* _hrSorted; - jint _marked_regions_added; + uint _marked_regions_added; size_t _reclaimable_bytes_added; - jint _chunk_size; - jint _cur_chunk_idx; - jint _cur_chunk_end; // Cur chunk [_cur_chunk_idx, _cur_chunk_end) - int _worker; - int _invokes; + uint _chunk_size; + uint _cur_chunk_idx; + uint _cur_chunk_end; // Cur chunk [_cur_chunk_idx, _cur_chunk_end) void get_new_chunk() { - _cur_chunk_idx = _hrSorted->getParMarkedHeapRegionChunk(_chunk_size); + _cur_chunk_idx = _hrSorted->claim_array_chunk(_chunk_size); _cur_chunk_end = _cur_chunk_idx + _chunk_size; } void add_region(HeapRegion* r) { @@ -2212,7 +2167,7 @@ class ParKnownGarbageHRClosure: public HeapRegionClosure { get_new_chunk(); } assert(_cur_chunk_idx < _cur_chunk_end, "postcondition"); - _hrSorted->setMarkedHeapRegion(_cur_chunk_idx, r); + _hrSorted->set_region(_cur_chunk_idx, r); _marked_regions_added++; _reclaimable_bytes_added += r->reclaimable_bytes(); _cur_chunk_idx++; @@ -2220,78 +2175,55 @@ class ParKnownGarbageHRClosure: public HeapRegionClosure { public: ParKnownGarbageHRClosure(CollectionSetChooser* hrSorted, - jint chunk_size, - int worker) : + uint chunk_size) : _g1h(G1CollectedHeap::heap()), - _hrSorted(hrSorted), _chunk_size(chunk_size), _worker(worker), + _hrSorted(hrSorted), _chunk_size(chunk_size), _marked_regions_added(0), _reclaimable_bytes_added(0), - _cur_chunk_idx(0), _cur_chunk_end(0), _invokes(0) { } + _cur_chunk_idx(0), _cur_chunk_end(0) { } bool doHeapRegion(HeapRegion* r) { - // We only include humongous regions in collection - // sets when concurrent mark shows that their contained object is - // unreachable. - _invokes++; - // Do we have any marking information for this region? if (r->is_marked()) { // We will skip any region that's currently used as an old GC // alloc region (we should not consider those for collection // before we fill them up). - if (_hrSorted->shouldAdd(r) && !_g1h->is_old_gc_alloc_region(r)) { + if (_hrSorted->should_add(r) && !_g1h->is_old_gc_alloc_region(r)) { add_region(r); } } return false; } - jint marked_regions_added() { return _marked_regions_added; } + uint marked_regions_added() { return _marked_regions_added; } size_t reclaimable_bytes_added() { return _reclaimable_bytes_added; } - int invokes() { return _invokes; } }; class ParKnownGarbageTask: public AbstractGangTask { CollectionSetChooser* _hrSorted; - jint _chunk_size; + uint _chunk_size; G1CollectedHeap* _g1; public: - ParKnownGarbageTask(CollectionSetChooser* hrSorted, jint chunk_size) : + ParKnownGarbageTask(CollectionSetChooser* hrSorted, uint chunk_size) : AbstractGangTask("ParKnownGarbageTask"), _hrSorted(hrSorted), _chunk_size(chunk_size), _g1(G1CollectedHeap::heap()) { } void work(uint worker_id) { - ParKnownGarbageHRClosure parKnownGarbageCl(_hrSorted, - _chunk_size, - worker_id); + ParKnownGarbageHRClosure parKnownGarbageCl(_hrSorted, _chunk_size); + // Back to zero for the claim value. _g1->heap_region_par_iterate_chunked(&parKnownGarbageCl, worker_id, _g1->workers()->active_workers(), HeapRegion::InitialClaimValue); - jint regions_added = parKnownGarbageCl.marked_regions_added(); + uint regions_added = parKnownGarbageCl.marked_regions_added(); size_t reclaimable_bytes_added = parKnownGarbageCl.reclaimable_bytes_added(); - _hrSorted->updateTotals(regions_added, reclaimable_bytes_added); - if (G1PrintParCleanupStats) { - gclog_or_tty->print_cr(" Thread %d called %d times, added %d regions to list.", - worker_id, parKnownGarbageCl.invokes(), regions_added); - } + _hrSorted->update_totals(regions_added, reclaimable_bytes_added); } }; void G1CollectorPolicy::record_concurrent_mark_cleanup_end(int no_of_gc_threads) { - double start_sec; - if (G1PrintParCleanupStats) { - start_sec = os::elapsedTime(); - } - - _collectionSetChooser->clearMarkedHeapRegions(); - double clear_marked_end_sec; - if (G1PrintParCleanupStats) { - clear_marked_end_sec = os::elapsedTime(); - gclog_or_tty->print_cr(" clear marked regions: %8.3f ms.", - (clear_marked_end_sec - start_sec) * 1000.0); - } + _collectionSetChooser->clear(); uint region_num = _g1->n_regions(); if (G1CollectedHeap::use_parallel_gc_threads()) { @@ -2314,8 +2246,8 @@ G1CollectorPolicy::record_concurrent_mark_cleanup_end(int no_of_gc_threads) { MAX2(region_num / (uint) (ParallelGCThreads * OverpartitionFactor), MinWorkUnit); } - _collectionSetChooser->prepareForAddMarkedHeapRegionsPar(_g1->n_regions(), - WorkUnit); + _collectionSetChooser->prepare_for_par_region_addition(_g1->n_regions(), + WorkUnit); ParKnownGarbageTask parKnownGarbageTask(_collectionSetChooser, (int) WorkUnit); _g1->workers()->run_task(&parKnownGarbageTask); @@ -2326,20 +2258,10 @@ G1CollectorPolicy::record_concurrent_mark_cleanup_end(int no_of_gc_threads) { KnownGarbageClosure knownGarbagecl(_collectionSetChooser); _g1->heap_region_iterate(&knownGarbagecl); } - double known_garbage_end_sec; - if (G1PrintParCleanupStats) { - known_garbage_end_sec = os::elapsedTime(); - gclog_or_tty->print_cr(" compute known garbage: %8.3f ms.", - (known_garbage_end_sec - clear_marked_end_sec) * 1000.0); - } - _collectionSetChooser->sortMarkedHeapRegions(); + _collectionSetChooser->sort_regions(); + double end_sec = os::elapsedTime(); - if (G1PrintParCleanupStats) { - gclog_or_tty->print_cr(" sorting: %8.3f ms.", - (end_sec - known_garbage_end_sec) * 1000.0); - } - double elapsed_time_ms = (end_sec - _mark_cleanup_start_sec) * 1000.0; _concurrent_mark_cleanup_times_ms->add(elapsed_time_ms); _cur_mark_stop_world_time_ms += elapsed_time_ms; @@ -2555,13 +2477,13 @@ void G1CollectorPolicy::print_collection_set(HeapRegion* list_head, outputStream bool G1CollectorPolicy::next_gc_should_be_mixed(const char* true_action_str, const char* false_action_str) { CollectionSetChooser* cset_chooser = _collectionSetChooser; - if (cset_chooser->isEmpty()) { + if (cset_chooser->is_empty()) { ergo_verbose0(ErgoMixedGCs, false_action_str, ergo_format_reason("candidate old regions not available")); return false; } - size_t reclaimable_bytes = cset_chooser->remainingReclaimableBytes(); + size_t reclaimable_bytes = cset_chooser->remaining_reclaimable_bytes(); size_t capacity_bytes = _g1->capacity(); double perc = (double) reclaimable_bytes * 100.0 / (double) capacity_bytes; double threshold = (double) G1HeapWastePercent; @@ -2572,7 +2494,7 @@ bool G1CollectorPolicy::next_gc_should_be_mixed(const char* true_action_str, ergo_format_region("candidate old regions") ergo_format_byte_perc("reclaimable") ergo_format_perc("threshold"), - cset_chooser->remainingRegions(), + cset_chooser->remaining_regions(), reclaimable_bytes, perc, threshold); return false; } @@ -2583,7 +2505,7 @@ bool G1CollectorPolicy::next_gc_should_be_mixed(const char* true_action_str, ergo_format_region("candidate old regions") ergo_format_byte_perc("reclaimable") ergo_format_perc("threshold"), - cset_chooser->remainingRegions(), + cset_chooser->remaining_regions(), reclaimable_bytes, perc, threshold); return true; } @@ -2666,9 +2588,9 @@ void G1CollectorPolicy::finalize_cset(double target_pause_time_ms) { if (!gcs_are_young()) { CollectionSetChooser* cset_chooser = _collectionSetChooser; - assert(cset_chooser->verify(), "CSet Chooser verification - pre"); - const uint min_old_cset_length = cset_chooser->calcMinOldCSetLength(); - const uint max_old_cset_length = cset_chooser->calcMaxOldCSetLength(); + cset_chooser->verify(); + const uint min_old_cset_length = cset_chooser->calc_min_old_cset_length(); + const uint max_old_cset_length = cset_chooser->calc_max_old_cset_length(); uint expensive_region_num = 0; bool check_time_remaining = adaptive_young_list_length(); @@ -2755,7 +2677,7 @@ void G1CollectorPolicy::finalize_cset(double target_pause_time_ms) { time_remaining_ms); } - assert(cset_chooser->verify(), "CSet Chooser verification - post"); + cset_chooser->verify(); } stop_incremental_cset_building(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp index f897ffdb644..7cdf79d7feb 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @@ -288,8 +288,6 @@ private: TruncatedSeq* _cost_per_byte_ms_during_cm_seq; - TruncatedSeq* _young_gc_eff_seq; - G1YoungGenSizer* _young_gen_sizer; uint _eden_cset_region_length; @@ -315,9 +313,6 @@ private: size_t _rs_lengths_prediction; - size_t _known_garbage_bytes; - double _known_garbage_ratio; - double sigma() { return _sigma; } // A function that prevents us putting too much stock in small sample @@ -509,10 +504,6 @@ public: _recorded_non_young_free_cset_time_ms = time_ms; } - double predict_young_gc_eff() { - return get_new_neg_prediction(_young_gc_eff_seq); - } - double predict_survivor_regions_evac_time(); void cset_regions_freed() { @@ -522,20 +513,6 @@ public: // also call it on any more surv rate groups } - void set_known_garbage_bytes(size_t known_garbage_bytes) { - _known_garbage_bytes = known_garbage_bytes; - size_t heap_bytes = _g1->capacity(); - _known_garbage_ratio = (double) _known_garbage_bytes / (double) heap_bytes; - } - - void decrease_known_garbage_bytes(size_t known_garbage_bytes) { - guarantee( _known_garbage_bytes >= known_garbage_bytes, "invariant" ); - - _known_garbage_bytes -= known_garbage_bytes; - size_t heap_bytes = _g1->capacity(); - _known_garbage_ratio = (double) _known_garbage_bytes / (double) heap_bytes; - } - G1MMUTracker* mmu_tracker() { return _mmu_tracker; } @@ -1026,12 +1003,6 @@ public: // exceeded the desired limit, return an amount to expand by. size_t expansion_amount(); -#ifndef PRODUCT - // Check any appropriate marked bytes info, asserting false if - // something's wrong, else returning "true". - bool assertMarkedBytesDataOK(); -#endif - // Print tracing information. void print_tracing_info() const; @@ -1074,19 +1045,6 @@ public: return _young_gen_sizer->adaptive_young_list_length(); } - inline double get_gc_eff_factor() { - double ratio = _known_garbage_ratio; - - double square = ratio * ratio; - // square = square * square; - double ret = square * 9.0 + 1.0; -#if 0 - gclog_or_tty->print_cr("ratio = %1.2lf, ret = %1.2lf", ratio, ret); -#endif // 0 - guarantee(0.0 <= ret && ret < 10.0, "invariant!"); - return ret; - } - private: // // Survivor regions policy. diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp index d25e5b94722..0378688c015 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp @@ -127,9 +127,6 @@ "Prints the liveness information for all regions in the heap " \ "at the end of a marking cycle.") \ \ - develop(bool, G1PrintParCleanupStats, false, \ - "When true, print extra stats about parallel cleanup.") \ - \ product(intx, G1UpdateBufferSize, 256, \ "Size of an update buffer") \ \ diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index 44e3ac83346..09b80cce581 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -370,7 +370,6 @@ void HeapRegion::hr_clear(bool par, bool clear_space) { _claimed = InitialClaimValue; } zero_marked_bytes(); - set_sort_index(-1); _offsets.resize(HeapRegion::GrainWords); init_top_at_mark_start(); @@ -491,8 +490,7 @@ HeapRegion::HeapRegion(uint hrs_index, _in_collection_set(false), _next_in_special_set(NULL), _orig_end(NULL), _claimed(InitialClaimValue), _evacuation_failed(false), - _prev_marked_bytes(0), _next_marked_bytes(0), _sort_index(-1), - _gc_efficiency(0.0), + _prev_marked_bytes(0), _next_marked_bytes(0), _gc_efficiency(0.0), _young_type(NotYoung), _next_young_region(NULL), _next_dirty_cards_region(NULL), _next(NULL), _pending_removal(false), #ifdef ASSERT diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp index 8a99d2d3f7b..cd6e164e136 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp @@ -281,12 +281,8 @@ class HeapRegion: public G1OffsetTableContigSpace { size_t _prev_marked_bytes; // Bytes known to be live via last completed marking. size_t _next_marked_bytes; // Bytes known to be live via in-progress marking. - // See "sort_index" method. -1 means is not in the array. - int _sort_index; - - // + // The calculated GC efficiency of the region. double _gc_efficiency; - // enum YoungType { NotYoung, // a region is not young @@ -629,16 +625,6 @@ class HeapRegion: public G1OffsetTableContigSpace { // last mark phase ended. bool is_marked() { return _prev_top_at_mark_start != bottom(); } - // If "is_marked()" is true, then this is the index of the region in - // an array constructed at the end of marking of the regions in a - // "desirability" order. - int sort_index() { - return _sort_index; - } - void set_sort_index(int i) { - _sort_index = i; - } - void init_top_at_conc_mark_count() { _top_at_conc_mark_count = bottom(); } From d7ad8620589ac0a85618257ebac27333a0c06c3b Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:32 -0700 Subject: [PATCH 73/82] Added tag jdk8-b35 for changeset 499f1fc13620 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 7314e1ff24a..13d4a6d1f39 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -156,3 +156,4 @@ cc771d92284f71765eca14d6d08703c4af254c04 jdk8-b21 88176171e940f02916a312c265a34c32552a8376 jdk8-b32 42f275168fa5d9e7c70b246614dca8cf81f52c2e jdk8-b33 894a478d2c4819a1a0f230bd7bdd09f3b2de9a8c jdk8-b34 +5285317ebb4e8e4f6d8d52b5616fa801e2ea844d jdk8-b35 From dadb671a173a0cd04100477d5c78cebe8168608b Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:41 -0700 Subject: [PATCH 74/82] Added tag jdk8-b35 for changeset b8ea05aeddf8 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 0d4513fe159..c899f5d15ca 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -156,3 +156,4 @@ e45d6b406d5f91ff5256a5c82456ab1e7eb8becd jdk8-b25 5d820cb6b1afd75b619e7fd69e4f2b0eb1d5d6a1 jdk8-b32 1e2ac1ea3f6c32a62bf88f3fa330120c30db59cb jdk8-b33 e24c5cc8b0f7cc48374eef0f995838fb4823e0eb jdk8-b34 +e3d735914edd0a621b16bb85417423f8e6af5d51 jdk8-b35 From 17f06f1623eefec81f1615f286821ba852753afa Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:46 -0700 Subject: [PATCH 75/82] Added tag jdk8-b35 for changeset f81ec813e7ee --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 63988b7a690..dcd090c5c36 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -239,3 +239,4 @@ cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06 785bcf415ead2eaa5f6677aaf528481008140bac jdk8-b33 7c6aba65acd2c334f1c3512b574f9038cddac24b hs24-b07 f284b08835584517c1ca3dd67341f569e763841f jdk8-b34 +f621660a297baa48fab9dca28e99d318826e8304 jdk8-b35 From 8e5fedeb4541afd0fd66bdab768a7cc2c73d2784 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:53 -0700 Subject: [PATCH 76/82] Added tag jdk8-b35 for changeset 4bca4ac90e85 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 150c8db72e1..3201a92a8f8 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -156,3 +156,4 @@ f3244c1f04864d35c41fa8d13669faf4f65b81e2 jdk8-b28 60960fbc75df8be4c1a2504aa69fc1428cc94f93 jdk8-b32 9bcab2b8b8ea578e594916a3d3df6dbec7984bcb jdk8-b33 8b91a897a04486cf901af0de7f684a3eb31f121f jdk8-b34 +e187f3ede64965dc2979df9a211107cd3d38eacb jdk8-b35 From c103c7f049263e4f00a49d9aa1c956df26975a7d Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:55 -0700 Subject: [PATCH 77/82] Added tag jdk8-b35 for changeset dc30e060f828 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index df67eb70f47..bd253d88711 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -156,3 +156,4 @@ b376d901e006cd9e0c59733c84e190aace23eec6 jdk8-b25 017a7dbfaa92f5a8b144e6c890d1cebdaecaf681 jdk8-b32 ea80b2388dce711fbde8e4fd6e07c2c64ad16743 jdk8-b33 f1d020a49c8c33667fb10c8caa255206a78a3675 jdk8-b34 +e8afc16522e190cb93c66bcb15d6fba0fe9e6833 jdk8-b35 From 26c6d93e07386d82d59655a4c7947dc49fc10006 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:18:58 -0700 Subject: [PATCH 78/82] Added tag jdk8-b35 for changeset 7d350b06fde4 --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index 3711a50fa63..7e7ca57558f 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -156,3 +156,4 @@ cdbb33303ea344d5e9013e2dd642e7a6e7768db6 jdk8-b30 ddfe5562f61f54ed2121ac0c73b688b94f3e66b5 jdk8-b32 78cea258caaba3980ba186c426da82c8fe41bfd7 jdk8-b33 29b680393f33bf953688c17d93aca7a870ca4024 jdk8-b34 +2e3e1356ffbddb2ae95c08da72830ba9ab8b3181 jdk8-b35 From d43b7a3a07421a0db1038f636a7280eb0ba367e0 Mon Sep 17 00:00:00 2001 From: David Katleman Date: Thu, 19 Apr 2012 12:19:06 -0700 Subject: [PATCH 79/82] Added tag jdk8-b35 for changeset 55cc12e59097 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 5a574206090..871a3f48c5a 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -156,3 +156,4 @@ b28cfbe7e8b196da954bed9a22bfd790e55333aa jdk8-b31 be069d72dde2bfe6f996c46325a320961ca854c2 jdk8-b32 46831c72b7f6c69fef2cc2935001863643a65f94 jdk8-b33 6b105afbb77ca9600a99eade31f686d070c70581 jdk8-b34 +defd666a786334465496c8901fa302b779c7e045 jdk8-b35 From 240c3c4839306d8aee7c174cf4b029f986f9cf3e Mon Sep 17 00:00:00 2001 From: Alejandro Murillo Date: Fri, 20 Apr 2012 16:23:49 -0700 Subject: [PATCH 80/82] Added tag hs24-b08 for changeset 55ac5f20c7bf --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index dcd090c5c36..d8da4eb47f9 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -240,3 +240,4 @@ cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06 7c6aba65acd2c334f1c3512b574f9038cddac24b hs24-b07 f284b08835584517c1ca3dd67341f569e763841f jdk8-b34 f621660a297baa48fab9dca28e99d318826e8304 jdk8-b35 +dff6e3459210f8dd0430b9b03ccc99280560da30 hs24-b08 From d0b48aded17db1add95f0b7a359e7bb365510bd0 Mon Sep 17 00:00:00 2001 From: "J. Duke" Date: Wed, 5 Jul 2017 18:07:58 +0200 Subject: [PATCH 81/82] Added tag jdk8-b34 for changeset 0ae89825c75c --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 3f0316de8e5..a3f525a3dbc 100644 --- a/.hgtags +++ b/.hgtags @@ -155,3 +155,4 @@ e070119aa56ee4dc5506c19d2c4d2eecab8ad429 jdk8-b29 bac81e9f7d57b75fba5ab31b571f3fe0dc08af69 jdk8-b31 2c5208ccb863db936eab523f49450b3fcd230348 jdk8-b32 a6e6d42203e6d35f9e8b31eac25b0021b4dd58ad jdk8-b33 +0ae89825c75c9492e44efb3aca3d9ee3d8a209df jdk8-b34 From cdc63696c6129cf1c0ce832d6932be8ef06ac894 Mon Sep 17 00:00:00 2001 From: "J. Duke" Date: Wed, 5 Jul 2017 18:08:21 +0200 Subject: [PATCH 82/82] Added tag jdk8-b35 for changeset f151d5833912 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index a3f525a3dbc..a4213072502 100644 --- a/.hgtags +++ b/.hgtags @@ -156,3 +156,4 @@ bac81e9f7d57b75fba5ab31b571f3fe0dc08af69 jdk8-b31 2c5208ccb863db936eab523f49450b3fcd230348 jdk8-b32 a6e6d42203e6d35f9e8b31eac25b0021b4dd58ad jdk8-b33 0ae89825c75c9492e44efb3aca3d9ee3d8a209df jdk8-b34 +f151d5833912a82cd4f203944da0305c3be83ecc jdk8-b35