src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Cdiff src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java

src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2004, 2007, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2004, 2018, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 43,53 **** * @author Brian Doherty * @since 1.5 */ public class LocalVmManager { private String userName; // user name for monitored jvm ! private File tmpdir; private Pattern userPattern; private Matcher userMatcher; private FilenameFilter userFilter; private Pattern filePattern; private Matcher fileMatcher; --- 43,53 ---- * @author Brian Doherty * @since 1.5 */ public class LocalVmManager { private String userName; // user name for monitored jvm ! private String[] tmpdirs; private Pattern userPattern; private Matcher userMatcher; private FilenameFilter userFilter; private Pattern filePattern; private Matcher fileMatcher;
*** 75,97 **** * @param user the name of the user */ public LocalVmManager(String user) { this.userName = user; if (userName == null) { ! tmpdir = new File(PerfDataFile.getTempDirectory()); userPattern = Pattern.compile(PerfDataFile.userDirNamePattern); userMatcher = userPattern.matcher(""); userFilter = new FilenameFilter() { public boolean accept(File dir, String name) { userMatcher.reset(name); return userMatcher.lookingAt(); } }; } else { ! tmpdir = new File(PerfDataFile.getTempDirectory(userName)); } filePattern = Pattern.compile(PerfDataFile.fileNamePattern); fileMatcher = filePattern.matcher(""); --- 75,98 ---- * @param user the name of the user */ public LocalVmManager(String user) { this.userName = user; + if (userName == null) { ! tmpdirs = PerfDataFile.getTempDirectories(null, 0); userPattern = Pattern.compile(PerfDataFile.userDirNamePattern); userMatcher = userPattern.matcher(""); userFilter = new FilenameFilter() { public boolean accept(File dir, String name) { userMatcher.reset(name); return userMatcher.lookingAt(); } }; } else { ! tmpdirs = PerfDataFile.getTempDirectories(userName, 0); } filePattern = Pattern.compile(PerfDataFile.fileNamePattern); fileMatcher = filePattern.matcher("");
*** 132,165 **** * called by multiple threads. Before this method was synchronized, * we'd see strange file names being matched by the matcher. */ Set<Integer> jvmSet = new HashSet<Integer>(); if (! tmpdir.isDirectory()) { ! return jvmSet; } if (userName == null) { /* * get a list of all of the user temporary directories and * iterate over the list to find any files within those directories. */ File[] dirs = tmpdir.listFiles(userFilter); - for (int i = 0 ; i < dirs.length; i ++) { if (!dirs[i].isDirectory()) { continue; } // get a list of files from the directory File[] files = dirs[i].listFiles(fileFilter); - if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! jvmSet.add( ! PerfDataFile.getLocalVmId(files[j])); } } } } } else { --- 133,168 ---- * called by multiple threads. Before this method was synchronized, * we'd see strange file names being matched by the matcher. */ Set<Integer> jvmSet = new HashSet<Integer>(); + for (int t = 0; t < tmpdirs.length; t++) { + File tmpdir = new File(tmpdirs[t]); if (! tmpdir.isDirectory()) { ! continue; } if (userName == null) { /* * get a list of all of the user temporary directories and * iterate over the list to find any files within those directories. */ File[] dirs = tmpdir.listFiles(userFilter); for (int i = 0 ; i < dirs.length; i ++) { if (!dirs[i].isDirectory()) { continue; } // get a list of files from the directory File[] files = dirs[i].listFiles(fileFilter); if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! int vmid = PerfDataFile.getLocalVmId(files[j]); ! if (vmid != -1) { ! jvmSet.add(vmid); ! } } } } } } else {
*** 173,198 **** File[] files = tmpdir.listFiles(fileFilter); if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! jvmSet.add( ! PerfDataFile.getLocalVmId(files[j])); } } } } // look for any 1.4.1 files File[] files = tmpdir.listFiles(tmpFileFilter); if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! jvmSet.add( ! PerfDataFile.getLocalVmId(files[j])); } } } return jvmSet; } } --- 176,206 ---- File[] files = tmpdir.listFiles(fileFilter); if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! int vmid = PerfDataFile.getLocalVmId(files[j]); ! if (vmid != -1) { ! jvmSet.add(vmid); ! } } } } } // look for any 1.4.1 files File[] files = tmpdir.listFiles(tmpFileFilter); if (files != null) { for (int j = 0; j < files.length; j++) { if (files[j].isFile() && files[j].canRead()) { ! int vmid = PerfDataFile.getLocalVmId(files[j]); ! if (vmid != -1) { ! jvmSet.add(vmid); ! } } } } + } return jvmSet; } }
src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File