Fixed storage close operations
This commit is contained in:
parent
6bc474615f
commit
a7cfee656a
|
@ -104,6 +104,33 @@ public class Storage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void shutdown() {
|
||||||
|
synchronized(storages) {
|
||||||
|
Collection<Storage> values = storages.values();
|
||||||
|
for (Storage storage : values) {
|
||||||
|
while (!storage.decrementReference()) {
|
||||||
|
}
|
||||||
|
storage.close();
|
||||||
|
}
|
||||||
|
storages.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void delete(File file) {
|
||||||
|
synchronized(storages) {
|
||||||
|
Storage remove = storages.remove(file);
|
||||||
|
if (remove != null) {
|
||||||
|
remove.close();
|
||||||
|
}
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void delete(Storage storage) {
|
||||||
|
File file = storage.getFile();
|
||||||
|
delete(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void copyFields(Object source, Object dest) {
|
private static void copyFields(Object source, Object dest) {
|
||||||
Class<? extends Object> sourceClass = source.getClass();
|
Class<? extends Object> sourceClass = source.getClass();
|
||||||
|
@ -215,33 +242,6 @@ public class Storage {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void shutdown() {
|
|
||||||
synchronized(storages) {
|
|
||||||
Collection<Storage> values = storages.values();
|
|
||||||
for (Storage storage : values) {
|
|
||||||
while (!storage.decrementReference()) {
|
|
||||||
}
|
|
||||||
storage.close();
|
|
||||||
}
|
|
||||||
storages.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(File file) {
|
|
||||||
synchronized(storages) {
|
|
||||||
Storage remove = storages.remove(file);
|
|
||||||
if (remove != null) {
|
|
||||||
remove.close();
|
|
||||||
}
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(Storage storage) {
|
|
||||||
File file = storage.getFile();
|
|
||||||
delete(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -503,11 +503,12 @@ public class Storage {
|
||||||
* Closes the database and file.
|
* Closes the database and file.
|
||||||
*/
|
*/
|
||||||
private final void close() {
|
private final void close() {
|
||||||
this.isOpen.set(false);
|
|
||||||
|
|
||||||
// timer action runs on THIS thread, not timer thread
|
// timer action runs on THIS thread, not timer thread
|
||||||
this.timer.delay(0L);
|
this.timer.delay(0L);
|
||||||
|
|
||||||
|
// have to "close" it after we run the timer!
|
||||||
|
this.isOpen.set(false);
|
||||||
|
|
||||||
this.storage.close();
|
this.storage.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user