You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2016/02/05 21:53:17 UTC

svn commit: r1728732 - in /db/derby/code/trunk/java: drda/org/apache/derby/drda/ engine/org/apache/derby/iapi/services/classfile/

Author: kahatlen
Date: Fri Feb  5 20:53:17 2016
New Revision: 1728732

URL: http://svn.apache.org/viewvc?rev=1728732&view=rev
Log:
DERBY-6857: Deprecate support for building Derby under JDKs 6 and 7

Make ClassInvestigator understand the new byte codes added in Java 7
to support InvokeDynamic and lambda. Also transform an inner class to
a lambda in the NetworkServerControl class to test that
ClassInvestigator understands the new codes.

Modified:
    db/derby/code/trunk/java/drda/org/apache/derby/drda/NetworkServerControl.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInput.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInvestigator.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/VMDescriptor.java

Modified: db/derby/code/trunk/java/drda/org/apache/derby/drda/NetworkServerControl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/drda/NetworkServerControl.java?rev=1728732&r1=1728731&r2=1728732&view=diff
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/drda/NetworkServerControl.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/drda/NetworkServerControl.java Fri Feb  5 20:53:17 2016
@@ -27,7 +27,7 @@ import java.net.InetAddress;
 import java.net.URL;
 import java.security.AccessController;
 import java.security.CodeSource;
-import java.security.PrivilegedExceptionAction;
+import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
 import java.util.Properties;
 import org.apache.derby.iapi.reference.Property;
@@ -323,14 +323,13 @@ public class NetworkServerControl{
             if (command == NetworkServerControlImpl.COMMAND_START &&
                     JVMInfo.JDK_ID >= JVMInfo.J2SE_17) {
                 try {
-                    AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<Void>() {
-                            public Void run() throws Exception {
-                                System.setProperty(
-                                    Property.SERVER_STARTED_FROM_CMD_LINE,
-                                    "true");
-                                return null;
-                            }});
+                    AccessController.doPrivileged((PrivilegedAction<Void>) () ->
+                    {
+                        System.setProperty(
+                                Property.SERVER_STARTED_FROM_CMD_LINE,
+                                "true");
+                        return null;
+                    });
                 } catch (Exception e) {
                     server.consoleExceptionPrintTrace(e);
                     System.exit(1);

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInput.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInput.java?rev=1728732&r1=1728731&r2=1728732&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInput.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInput.java Fri Feb  5 20:53:17 2016
@@ -36,6 +36,10 @@ class ClassInput extends DataInputStream
 		super(in);
 	}
 
+    int getU1() throws IOException {
+        return readUnsignedByte();
+    }
+
 	int getU2() throws IOException {
 		return readUnsignedShort();
 	}

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInvestigator.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInvestigator.java?rev=1728732&r1=1728731&r2=1728732&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInvestigator.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/ClassInvestigator.java Fri Feb  5 20:53:17 2016
@@ -469,12 +469,12 @@ public class ClassInvestigator extends C
 		throws IOException {
 
 		ConstantPoolEntry item;
-		int tag;		
-		tag = in.readUnsignedByte();
+        final int tag = in.getU1();
 
 		switch (tag) {
 		case VMDescriptor.CONSTANT_Class:
 		case VMDescriptor.CONSTANT_String:
+        case VMDescriptor.CONSTANT_MethodType:
 			item = new CONSTANT_Index_info(tag, in.getU2(), 0);
 			break;
 
@@ -482,6 +482,7 @@ public class ClassInvestigator extends C
 		case VMDescriptor.CONSTANT_Fieldref:
 		case VMDescriptor.CONSTANT_Methodref:
 		case VMDescriptor.CONSTANT_InterfaceMethodref:
+        case VMDescriptor.CONSTANT_InvokeDynamic:
 			item = new CONSTANT_Index_info(tag, in.getU2(), in.getU2());
 			break;
 
@@ -504,8 +505,13 @@ public class ClassInvestigator extends C
 		case VMDescriptor.CONSTANT_Utf8:
 			item = new CONSTANT_Utf8_info(in.readUTF());
 			break;
+
+        case VMDescriptor.CONSTANT_MethodHandle:
+            item = new CONSTANT_Index_info(tag, in.getU1(), in.getU2());
+            break;
+
 		default:
-			throw new ClassFormatError();
+            throw new ClassFormatError("Unknown tag: " + tag);
 		}
 
 		return item;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/VMDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/VMDescriptor.java?rev=1728732&r1=1728731&r2=1728732&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/VMDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/classfile/VMDescriptor.java Fri Feb  5 20:53:17 2016
@@ -68,6 +68,9 @@ public interface VMDescriptor {
 	int CONSTANT_Double = 6;
 	int CONSTANT_NameAndType = 12;
 	int CONSTANT_Utf8 = 1;
+    int CONSTANT_MethodHandle = 15;
+    int CONSTANT_MethodType = 16;
+    int CONSTANT_InvokeDynamic = 18;
 
 
 	/** Magic number for class file format - page 84 */