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 */