# HG changeset patch # User smarks # Date 1555009618 25200 # Node ID 50b34791a1d2d97fd2c1dee416fb47c36a076edb # Parent c201ca660afdc294790cde49eb5c71b79ecfd757 8217405: rmic should reject class files with preview features enabled Reviewed-by: lancea, alanb diff -r c201ca660afd -r 50b34791a1d2 src/jdk.rmic/share/classes/sun/tools/java/BinaryClass.java --- a/src/jdk.rmic/share/classes/sun/tools/java/BinaryClass.java Thu Apr 11 14:14:30 2019 -0400 +++ b/src/jdk.rmic/share/classes/sun/tools/java/BinaryClass.java Thu Apr 11 12:06:58 2019 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2019, 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 @@ -122,6 +122,13 @@ sun.tools.javac.Main.getText( "javac.err.version.too.old", String.valueOf(version))); + } else if ((version >= JAVA_MIN_PREVIEW_MAJOR_VERSION) + && (minor_version == JAVA_PREVIEW_MINOR_VERSION)) { + // reject all class files that have preview features enabled + throw new ClassFormatError( + sun.tools.javac.Main.getText( + "javac.err.version.preview", + version+"."+minor_version)); } else if ((version > JAVA_MAX_SUPPORTED_VERSION) || (version == JAVA_MAX_SUPPORTED_VERSION && minor_version > JAVA_MAX_SUPPORTED_MINOR_VERSION)) { diff -r c201ca660afd -r 50b34791a1d2 src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java --- a/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java Thu Apr 11 14:14:30 2019 -0400 +++ b/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java Thu Apr 11 12:06:58 2019 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2019, 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 @@ -69,6 +69,8 @@ int JAVA_MIN_SUPPORTED_VERSION = 45; int JAVA_MAX_SUPPORTED_VERSION = 57; int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0; + int JAVA_MIN_PREVIEW_MAJOR_VERSION = 55; // preview intro'd in JDK 11 + int JAVA_PREVIEW_MINOR_VERSION = 0xffff; /* Generate class file version for 1.1 by default */ int JAVA_DEFAULT_VERSION = 45; diff -r c201ca660afd -r 50b34791a1d2 src/jdk.rmic/share/classes/sun/tools/javac/resources/javac.properties --- a/src/jdk.rmic/share/classes/sun/tools/javac/resources/javac.properties Thu Apr 11 14:14:30 2019 -0400 +++ b/src/jdk.rmic/share/classes/sun/tools/javac/resources/javac.properties Thu Apr 11 12:06:58 2019 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2019, 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 @@ -579,6 +579,9 @@ javac.err.version.too.recent=\ The major.minor version ''{0}'' is too recent for this tool \ to understand. +javac.err.version.preview=\ + The major.minor version ''{0}'' indicates the class was compiled with \ + preview features enabled, which this tool does not support. # benv.parsed_in=[parsed {0} in {1} ms] benv.loaded_in=[loaded {0} in {1} ms]