changeset 424:e730324e3e98

Merge
author mchung
date Fri, 08 Feb 2013 23:20:05 -0800
parents b5ad012bfc21 (current diff) 8d65b381880b (diff)
children 202f158b31f0
files .hgtags
diffstat 18 files changed, 228 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Dec 14 16:11:34 2012 -0800
+++ b/.hgtags	Fri Feb 08 23:20:05 2013 -0800
@@ -195,3 +195,11 @@
 5cf3c69a93d6d088a1cdfa28031d4f0f9438c0de jdk8-b65
 e6af1ad464e3d9b1154b9f9ed9a5373b97d129fc jdk8-b66
 83df3493ca3cf0be077f1d0dd90119456f266f54 jdk8-b67
+b854e70084214e9dcf1b37373f6e4b1a68760e03 jdk8-b68
+789a855de959f7e9600e57759c6c3dbb0b24d78b jdk8-b69
+6ec9edffc286c9c9ac96c9cd2050b01cb5d514a8 jdk8-b70
+499be952a291cec1dc774a84a238941d6faf772d jdk8-b71
+bdf2af722a6b54fca47d8c51d17a1b8f41dd7a3e jdk8-b72
+84946404d1e1de003ed2bf218ef8d48906a90e37 jdk8-b73
+2087e24a4357eceb6432e94918e75fdc706a27d6 jdk8-b74
+ff0b73a6b3f6cea644d37d56d746a37743419fa7 jdk8-b75
--- a/makefiles/BuildJaxp.gmk	Fri Dec 14 16:11:34 2012 -0800
+++ b/makefiles/BuildJaxp.gmk	Fri Feb 08 23:20:05 2013 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2013, 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
@@ -47,11 +47,23 @@
 $(eval $(call SetupJavaCompilation,BUILD_JAXP,\
 		SETUP:=GENERATE_NEWBYTECODE_DEBUG,\
 		SRC:=$(JAXP_TOPDIR)/src,\
-		CLEAN:=.properties,\
 		BIN:=$(JAXP_OUTPUTDIR)/classes,\
 		SRCZIP:=$(JAXP_OUTPUTDIR)/dist/lib/src.zip))
 
-$(eval $(call SetupArchive,ARCHIVE_JAXP,$(BUILD_JAXP),\
+# Imitate the property cleaning mechanism in the old build. This will likely be replaced 
+# by the unified functionality in JavaCompilation.gmk, but keep it the same as old build
+# for now, even though it actually breaks properties containing # in the value.
+# Using nawk to avoid solaris sed.
+$(JAXP_OUTPUTDIR)/classes/%.properties: $(JAXP_TOPDIR)/src/%.properties
+	$(MKDIR) -p $(@D)
+	$(RM) $@ $@.tmp
+	$(CAT) $< | LANG=C $(NAWK) '{ sub(/#.*$$/,"#"); print }' > $@.tmp
+	$(MV) $@.tmp $@
+
+SRC_PROP_FILES := $(shell $(FIND) $(JAXP_TOPDIR)/src -name "*.properties")
+TARGET_PROP_FILES := $(patsubst $(JAXP_TOPDIR)/src/%,$(JAXP_OUTPUTDIR)/classes/%,$(SRC_PROP_FILES))
+
+$(eval $(call SetupArchive,ARCHIVE_JAXP,$(BUILD_JAXP) $(TARGET_PROP_FILES),\
 		SRCS:=$(JAXP_OUTPUTDIR)/classes,\
 		SUFFIXES:=.class .properties,\
 		JAR:=$(JAXP_OUTPUTDIR)/dist/lib/classes.jar))
--- a/src/com/sun/org/apache/bcel/internal/Constants.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/Constants.java	Fri Feb 08 23:20:05 2013 -0800
@@ -746,27 +746,29 @@
 
   /** Attributes and their corresponding names.
    */
-  public static final byte ATTR_UNKNOWN              = -1;
-  public static final byte ATTR_SOURCE_FILE          = 0;
-  public static final byte ATTR_CONSTANT_VALUE       = 1;
-  public static final byte ATTR_CODE                 = 2;
-  public static final byte ATTR_EXCEPTIONS           = 3;
-  public static final byte ATTR_LINE_NUMBER_TABLE    = 4;
-  public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
-  public static final byte ATTR_INNER_CLASSES        = 6;
-  public static final byte ATTR_SYNTHETIC            = 7;
-  public static final byte ATTR_DEPRECATED           = 8;
-  public static final byte ATTR_PMG                  = 9;
-  public static final byte ATTR_SIGNATURE            = 10;
-  public static final byte ATTR_STACK_MAP            = 11;
+  public static final byte ATTR_UNKNOWN                                 = -1;
+  public static final byte ATTR_SOURCE_FILE                             = 0;
+  public static final byte ATTR_CONSTANT_VALUE                          = 1;
+  public static final byte ATTR_CODE                                    = 2;
+  public static final byte ATTR_EXCEPTIONS                              = 3;
+  public static final byte ATTR_LINE_NUMBER_TABLE                       = 4;
+  public static final byte ATTR_LOCAL_VARIABLE_TABLE                    = 5;
+  public static final byte ATTR_INNER_CLASSES                           = 6;
+  public static final byte ATTR_SYNTHETIC                               = 7;
+  public static final byte ATTR_DEPRECATED                              = 8;
+  public static final byte ATTR_PMG                                     = 9;
+  public static final byte ATTR_SIGNATURE                               = 10;
+  public static final byte ATTR_STACK_MAP                               = 11;
+  public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE               = 12;
 
-  public static final short KNOWN_ATTRIBUTES = 12;
+  public static final short KNOWN_ATTRIBUTES = 13;
 
   public static final String[] ATTRIBUTE_NAMES = {
     "SourceFile", "ConstantValue", "Code", "Exceptions",
     "LineNumberTable", "LocalVariableTable",
     "InnerClasses", "Synthetic", "Deprecated",
-    "PMGClass", "Signature", "StackMap"
+    "PMGClass", "Signature", "StackMap",
+    "LocalVariableTypeTable"
   };
 
   /** Constants used in the StackMap attribute.
--- a/src/com/sun/org/apache/bcel/internal/classfile/Attribute.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/classfile/Attribute.java	Fri Feb 08 23:20:05 2013 -0800
@@ -206,6 +206,9 @@
     case Constants.ATTR_LOCAL_VARIABLE_TABLE:
       return new LocalVariableTable(name_index, length, file, constant_pool);
 
+    case Constants.ATTR_LOCAL_VARIABLE_TYPE_TABLE:
+      return new LocalVariableTypeTable(name_index, length, file, constant_pool);
+
     case Constants.ATTR_INNER_CLASSES:
       return new InnerClasses(name_index, length, file, constant_pool);
 
--- a/src/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java	Fri Feb 08 23:20:05 2013 -0800
@@ -210,6 +210,12 @@
     stack.pop();
   }
 
+  public void visitLocalVariableTypeTable(LocalVariableTypeTable obj) {
+    stack.push(obj);
+    obj.accept(visitor);
+    stack.pop();
+  }
+
   public void visitStackMap(StackMap table) {
     stack.push(table);
     table.accept(visitor);
--- a/src/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java	Fri Feb 08 23:20:05 2013 -0800
@@ -98,6 +98,7 @@
   public void visitLineNumberTable(LineNumberTable obj) {}
   public void visitLocalVariable(LocalVariable obj) {}
   public void visitLocalVariableTable(LocalVariableTable obj) {}
+  public void visitLocalVariableTypeTable(LocalVariableTypeTable obj) {}
   public void visitMethod(Method obj) {}
   public void visitSignature(Signature obj) {}
   public void visitSourceFile(SourceFile obj) {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java	Fri Feb 08 23:20:05 2013 -0800
@@ -0,0 +1,146 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+package com.sun.org.apache.bcel.internal.classfile;
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.
+ */
+
+import  com.sun.org.apache.bcel.internal.Constants;
+import  java.io.*;
+
+// The new table is used when generic types are about...
+
+//LocalVariableTable_attribute {
+//         u2 attribute_name_index;
+//         u4 attribute_length;
+//         u2 local_variable_table_length;
+//         {  u2 start_pc;
+//            u2 length;
+//            u2 name_index;
+//            u2 descriptor_index;
+//            u2 index;
+//         } local_variable_table[local_variable_table_length];
+//       }
+
+//LocalVariableTypeTable_attribute {
+//    u2 attribute_name_index;
+//    u4 attribute_length;
+//    u2 local_variable_type_table_length;
+//    {
+//      u2 start_pc;
+//      u2 length;
+//      u2 name_index;
+//      u2 signature_index;
+//      u2 index;
+//    } local_variable_type_table[local_variable_type_table_length];
+//  }
+// J5TODO: Needs some testing !
+public class LocalVariableTypeTable extends Attribute {
+  private static final long serialVersionUID = -1082157891095177114L;
+private int             local_variable_type_table_length; // Table of local
+  private LocalVariable[] local_variable_type_table;        // variables
+
+  public LocalVariableTypeTable(LocalVariableTypeTable c) {
+    this(c.getNameIndex(), c.getLength(), c.getLocalVariableTypeTable(),
+         c.getConstantPool());
+  }
+
+  public LocalVariableTypeTable(int name_index, int length,
+                            LocalVariable[] local_variable_table,
+                            ConstantPool    constant_pool)
+  {
+    super(Constants.ATTR_LOCAL_VARIABLE_TYPE_TABLE, name_index, length, constant_pool);
+    setLocalVariableTable(local_variable_table);
+  }
+
+  LocalVariableTypeTable(int nameIdx, int len, DataInputStream dis,ConstantPool cpool) throws IOException {
+    this(nameIdx, len, (LocalVariable[])null, cpool);
+
+    local_variable_type_table_length = (dis.readUnsignedShort());
+    local_variable_type_table = new LocalVariable[local_variable_type_table_length];
+
+    for(int i=0; i < local_variable_type_table_length; i++)
+      local_variable_type_table[i] = new LocalVariable(dis, cpool);
+  }
+
+  @Override
+public void accept(Visitor v) {
+    v.visitLocalVariableTypeTable(this);
+  }
+
+  @Override
+public final void dump(DataOutputStream file) throws IOException
+  {
+    super.dump(file);
+    file.writeShort(local_variable_type_table_length);
+    for(int i=0; i < local_variable_type_table_length; i++)
+      local_variable_type_table[i].dump(file);
+  }
+
+  public final LocalVariable[] getLocalVariableTypeTable() {
+    return local_variable_type_table;
+  }
+
+  public final LocalVariable getLocalVariable(int index) {
+    for(int i=0; i < local_variable_type_table_length; i++)
+      if(local_variable_type_table[i].getIndex() == index)
+        return local_variable_type_table[i];
+
+    return null;
+  }
+
+  public final void setLocalVariableTable(LocalVariable[] local_variable_table)
+  {
+    this.local_variable_type_table = local_variable_table;
+    local_variable_type_table_length = (local_variable_table == null)? 0 :
+      local_variable_table.length;
+  }
+
+  /**
+   * @return String representation.
+   */
+  @Override
+public final String toString() {
+      StringBuilder buf = new StringBuilder();
+
+    for(int i=0; i < local_variable_type_table_length; i++) {
+      buf.append(local_variable_type_table[i].toString());
+
+      if(i < local_variable_type_table_length - 1) buf.append('\n');
+    }
+
+    return buf.toString();
+  }
+
+  /**
+   * @return deep copy of this attribute
+   */
+  @Override
+public Attribute copy(ConstantPool constant_pool) {
+    LocalVariableTypeTable c = (LocalVariableTypeTable)clone();
+
+    c.local_variable_type_table = new LocalVariable[local_variable_type_table_length];
+    for(int i=0; i < local_variable_type_table_length; i++)
+      c.local_variable_type_table[i] = local_variable_type_table[i].copy();
+
+    c.constant_pool = constant_pool;
+    return c;
+  }
+
+  public final int getTableLength() { return local_variable_type_table_length; }
+}
--- a/src/com/sun/org/apache/bcel/internal/classfile/Visitor.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/classfile/Visitor.java	Fri Feb 08 23:20:05 2013 -0800
@@ -94,6 +94,7 @@
   public void visitLineNumberTable(LineNumberTable obj);
   public void visitLocalVariable(LocalVariable obj);
   public void visitLocalVariableTable(LocalVariableTable obj);
+  public void visitLocalVariableTypeTable(LocalVariableTypeTable obj);
   public void visitMethod(Method obj);
   public void visitSignature(Signature obj);
   public void visitSourceFile(SourceFile obj);
--- a/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Fri Feb 08 23:20:05 2013 -0800
@@ -258,6 +258,23 @@
               addLocalVariable(l.getName(), Type.getType(l.getSignature()),
                                l.getIndex(), start, end);
             }
+          } else if (a instanceof LocalVariableTypeTable) {
+             LocalVariable[] lv = ((LocalVariableTypeTable) a).getLocalVariableTypeTable();
+             removeLocalVariables();
+             for (int k = 0; k < lv.length; k++) {
+                 LocalVariable l = lv[k];
+                 InstructionHandle start = il.findHandle(l.getStartPC());
+                 InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength());
+                 // Repair malformed handles
+                 if (null == start) {
+                     start = il.getStart();
+                 }
+                 if (null == end) {
+                     end = il.getEnd();
+                 }
+                 addLocalVariable(l.getName(), Type.getType(l.getSignature()), l
+                         .getIndex(), start, end);
+              }
           } else
             addCodeAttribute(a);
         }
--- a/src/com/sun/org/apache/xalan/internal/XalanConstants.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xalan/internal/XalanConstants.java	Fri Feb 08 23:20:05 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
+ * 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
--- a/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java	Fri Feb 08 23:20:05 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
+ * 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
--- a/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java	Fri Feb 08 23:20:05 2013 -0800
@@ -1005,7 +1005,7 @@
     {
       Class clazz = ObjectFactory.findProviderClass(DOM_CLASS, true);
 
-      Method method = clazz.getMethod(DOM_LEVEL3_METHOD, null);
+      Method method = clazz.getMethod(DOM_LEVEL3_METHOD, (Class<?>[])null);
 
       // If we succeeded, we have loaded interfaces from a
       //  level 3 DOM somewhere
--- a/src/com/sun/org/apache/xerces/internal/impl/Version.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/Version.java	Fri Feb 08 23:20:05 2013 -0800
@@ -74,7 +74,7 @@
 
     /** Version string.
      * @deprecated  getVersion() should be used instead.  */
-    public static String fVersion = "Xerces-J 2.7.1";
+    public static final String fVersion = getVersion();
 
     private static final String fImmutableVersion = "Xerces-J 2.7.1";
 
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java	Fri Feb 08 23:20:05 2013 -0800
@@ -193,9 +193,12 @@
                 null,
     };
 
-    protected static final char [] cdata = {'[','C','D','A','T','A','['};
-    protected static final char [] xmlDecl = {'<','?','x','m','l'};
-    protected static final char [] endTag = {'<','/'};
+    private static final char [] cdata = {'[','C','D','A','T','A','['};
+    private static final char [] endTag = {'<','/'};
+
+    //this variable is also used by XMLDocumentScannerImpl in the same package
+    static final char [] xmlDecl = {'<','?','x','m','l'};
+
     // debugging
 
     /** Debug scanner state. */
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java	Fri Feb 08 23:20:05 2013 -0800
@@ -71,7 +71,7 @@
     /** Listeners which should know when load is being called */
     private Vector listeners = new Vector();
 
-    public static final boolean [] VALID_NAMES = new boolean[127];
+    private static final boolean [] VALID_NAMES = new boolean[127];
 
     /**
      * Debug printing of buffer. This debugging flag works best when you
--- a/src/javax/xml/transform/FactoryFinder.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/javax/xml/transform/FactoryFinder.java	Fri Feb 08 23:20:05 2013 -0800
@@ -210,7 +210,7 @@
                 providerClass.getDeclaredMethod(
                     "newTransformerFactoryNoServiceLoader"
                 );
-                return creationMethod.invoke(null, null);
+                return creationMethod.invoke(null, (Object[])null);
             } catch (NoSuchMethodException exc) {
                 return null;
             } catch (Exception exc) {
--- a/src/javax/xml/validation/SchemaFactoryFinder.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/javax/xml/validation/SchemaFactoryFinder.java	Fri Feb 08 23:20:05 2013 -0800
@@ -357,7 +357,7 @@
                 providerClass.getDeclaredMethod(
                     "newXMLSchemaFactoryNoServiceLoader"
                 );
-                return creationMethod.invoke(null, null);
+                return creationMethod.invoke(null, (Object[])null);
             } catch (NoSuchMethodException exc) {
                 return null;
             } catch (Exception exc) {
--- a/src/javax/xml/xpath/XPathFactoryFinder.java	Fri Dec 14 16:11:34 2012 -0800
+++ b/src/javax/xml/xpath/XPathFactoryFinder.java	Fri Feb 08 23:20:05 2013 -0800
@@ -333,7 +333,7 @@
                 providerClass.getDeclaredMethod(
                     "newXPathFactoryNoServiceLoader"
                 );
-                return creationMethod.invoke(null, null);
+                return creationMethod.invoke(null, (Object[])null);
             } catch (NoSuchMethodException exc) {
                 return null;
             } catch (Exception exc) {