public static synchronized Sampler getSampler(final int sampleTimeMillis,
final int dumpTimeMillis, final SamplerSupplier collector,
final File dumpFolder, final String dumpFilePrefix) throws InterruptedException {
if (instance == null) {
try {
instance = new Sampler(sampleTimeMillis, dumpTimeMillis, collector,
dumpFolder.getCanonicalFile(), dumpFilePrefix);
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
instance.registerJmx();
return instance;
} else {
instance.dispose();
try {
instance = new Sampler(sampleTimeMillis, dumpTimeMillis, collector,
dumpFolder.getCanonicalFile(), dumpFilePrefix);
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
instance.registerJmx();
return instance;
}
}