提交 755ffd51 编写于 作者: R robm

Merge

/* /*
* Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1111,7 +1111,7 @@ implements ReferenceType { ...@@ -1111,7 +1111,7 @@ implements ReferenceType {
this.genericSignatureGotten = true; this.genericSignatureGotten = true;
} }
private static boolean isPrimitiveArray(String signature) { private static boolean isOneDimensionalPrimitiveArray(String signature) {
int i = signature.lastIndexOf('['); int i = signature.lastIndexOf('[');
/* /*
* TO DO: Centralize JNI signature knowledge. * TO DO: Centralize JNI signature knowledge.
...@@ -1120,7 +1120,7 @@ implements ReferenceType { ...@@ -1120,7 +1120,7 @@ implements ReferenceType {
* jdk1.4/doc/guide/jpda/jdi/com/sun/jdi/doc-files/signature.html * jdk1.4/doc/guide/jpda/jdi/com/sun/jdi/doc-files/signature.html
*/ */
boolean isPA; boolean isPA;
if (i < 0) { if (i < 0 || signature.startsWith("[[")) {
isPA = false; isPA = false;
} else { } else {
char c = signature.charAt(i + 1); char c = signature.charAt(i + 1);
...@@ -1144,7 +1144,7 @@ implements ReferenceType { ...@@ -1144,7 +1144,7 @@ implements ReferenceType {
ClassLoaderReferenceImpl loader = ClassLoaderReferenceImpl loader =
(ClassLoaderReferenceImpl)classLoader(); (ClassLoaderReferenceImpl)classLoader();
if ((loader == null) || if ((loader == null) ||
(isPrimitiveArray(signature)) //Work around 4450091 (isOneDimensionalPrimitiveArray(signature)) //Work around 4450091
) { ) {
// Caller wants type of boot class field // Caller wants type of boot class field
type = vm.findBootType(signature); type = vm.findBootType(signature);
......
/* /*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -66,6 +66,8 @@ class LinuxFileStore ...@@ -66,6 +66,8 @@ class LinuxFileStore
} }
// step 2: find mount point // step 2: find mount point
List<UnixMountEntry> procMountsEntries =
fs.getMountEntries("/proc/mounts");
UnixPath parent = path.getParent(); UnixPath parent = path.getParent();
while (parent != null) { while (parent != null) {
UnixFileAttributes attrs = null; UnixFileAttributes attrs = null;
...@@ -74,16 +76,23 @@ class LinuxFileStore ...@@ -74,16 +76,23 @@ class LinuxFileStore
} catch (UnixException x) { } catch (UnixException x) {
x.rethrowAsIOException(parent); x.rethrowAsIOException(parent);
} }
if (attrs.dev() != dev()) if (attrs.dev() != dev()) {
break; // step 3: lookup mounted file systems (use /proc/mounts to
// ensure we find the file system even when not in /etc/mtab)
byte[] dir = path.asByteArray();
for (UnixMountEntry entry : procMountsEntries) {
if (Arrays.equals(dir, entry.dir()))
return entry;
}
}
path = parent; path = parent;
parent = parent.getParent(); parent = parent.getParent();
} }
// step 3: lookup mounted file systems (use /proc/mounts to ensure we // step 3: lookup mounted file systems (use /proc/mounts to
// find the file system even when not in /etc/mtab) // ensure we find the file system even when not in /etc/mtab)
byte[] dir = path.asByteArray(); byte[] dir = path.asByteArray();
for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts")) { for (UnixMountEntry entry : procMountsEntries) {
if (Arrays.equals(dir, entry.dir())) if (Arrays.equals(dir, entry.dir()))
return entry; return entry;
} }
......
/* /*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -75,7 +75,7 @@ class LinuxFileSystem extends UnixFileSystem { ...@@ -75,7 +75,7 @@ class LinuxFileSystem extends UnixFileSystem {
/** /**
* Returns object to iterate over the mount entries in the given fstab file. * Returns object to iterate over the mount entries in the given fstab file.
*/ */
Iterable<UnixMountEntry> getMountEntries(String fstab) { List<UnixMountEntry> getMountEntries(String fstab) {
ArrayList<UnixMountEntry> entries = new ArrayList<>(); ArrayList<UnixMountEntry> entries = new ArrayList<>();
try { try {
long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r")); long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r"));
...@@ -101,7 +101,7 @@ class LinuxFileSystem extends UnixFileSystem { ...@@ -101,7 +101,7 @@ class LinuxFileSystem extends UnixFileSystem {
* Returns object to iterate over the mount entries in /etc/mtab * Returns object to iterate over the mount entries in /etc/mtab
*/ */
@Override @Override
Iterable<UnixMountEntry> getMountEntries() { List<UnixMountEntry> getMountEntries() {
return getMountEntries("/etc/mtab"); return getMountEntries("/etc/mtab");
} }
......
# #
# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
# @test # @test
# @bug 8024302 # @bug 8024302
# @bug 8026037 # @bug 8026037 8134124
# @summary Clarify jar verifications # @summary Clarify jar verifications
# #
...@@ -43,13 +43,16 @@ case "$OS" in ...@@ -43,13 +43,16 @@ case "$OS" in
;; ;;
esac esac
# make the test locale independent
TESTTOOLVMOPTS="$TESTTOOLVMOPTS -J-Duser.language=en -J-Duser.country=US"
KS=warnings.jks KS=warnings.jks
JFILE=warnings.jar JFILE=warnings.jar
KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit \ KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit \
-keystore $KS" -keystore $KS"
JAR=$TESTJAVA${FS}bin${FS}jar JAR=$TESTJAVA${FS}bin${FS}jar
JARSIGNER="$TESTJAVA${FS}bin${FS}jarsigner -keystore $KS -storepass changeit" JARSIGNER="$TESTJAVA${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} -keystore $KS -storepass changeit"
rm $KS 2> /dev/null rm $KS 2> /dev/null
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册