Use Destroyable values instead of session listeners.
[jsvc.git] / src / dolda / jsvc / util / PerSession.java
index 7973e0a..d4e4d73 100644 (file)
@@ -19,11 +19,11 @@ public class PerSession implements Responder {
     private Object makedata(Session sess) {
        try {
            try {
-               return(dcl.getConstructor().newInstance());
+               return(dcl.getConstructor(Session.class).newInstance(sess));
            } catch(NoSuchMethodException e) {
            }
            try {
-               return(dcl.getConstructor(Session.class).newInstance(sess));
+               return(dcl.getConstructor().newInstance());
            } catch(NoSuchMethodException e) {
            }
        } catch(InstantiationException e) {
@@ -88,7 +88,7 @@ public class PerSession implements Responder {
     public void respond(Request req) {
        Session sess = Session.get(req);
        Responder resp;
-       synchronized(sess) {
+       synchronized(this) {
            resp = (Responder)sess.get(rcl, null);
            if(resp == null) {
                resp = create(sess);