X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fstorage%2FDatabaseMessages.java;h=b37be8dbb1a769f068786549c232a33171f101e9;hb=5757f37a1bc4e2dcad3054a66611b1a02fb7d8b3;hp=0950f90b1c1fba8aa6de8f039b73789059896c1e;hpb=635db236fe78484b5f7f0158ad8054b189bf7a79;p=mir.git diff --git a/source/mircoders/storage/DatabaseMessages.java b/source/mircoders/storage/DatabaseMessages.java index 0950f90b..b37be8db 100755 --- a/source/mircoders/storage/DatabaseMessages.java +++ b/source/mircoders/storage/DatabaseMessages.java @@ -7,9 +7,9 @@ import java.util.*; import freemarker.template.*; -import webdb.storage.*; -import webdb.entity.*; -import webdb.misc.*; +import mir.storage.*; +import mir.entity.*; +import mir.misc.*; /** @@ -24,26 +24,26 @@ import webdb.misc.*; public class DatabaseMessages extends Database implements StorageObject{ - private static DatabaseMessages instance; - - public static DatabaseMessages getInstance() throws StorageObjectException { - if (instance == null) { - instance = new DatabaseMessages(); - instance.myselfDatabase = instance; - } - return instance; - } - - private DatabaseMessages() throws StorageObjectException - { - super(); - this.cache = new HashMap(); - this.theTable="messages"; - try { - this.theEntityClass = Class.forName("mir.entity.EntityMessage"); - } - catch (Exception e) { throw new StorageObjectException(e.toString()); } - } + private static DatabaseMessages instance; + + // the following *has* to be sychronized cause this static method + // could get preemted and we could end up with 2 instances of DatabaseFoo.. + // see the "Singletons with needles and thread" article at JavaWorld -mh + public synchronized static DatabaseMessages getInstance() + throws StorageObjectException { + if (instance == null) { + instance = new DatabaseMessages(); + instance.myselfDatabase = instance; + } + return instance; + } + + private DatabaseMessages() throws StorageObjectException + { + super(); + //this.cache = new DatabaseCache(10); + this.theTable="messages"; + } }