Made ObjectAccessException a nestable exception; modified
objectAvailable() error dispatching to not incorrectly report a failure to create an object. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@918 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: DEventUtil.java,v 1.3 2001/10/11 04:07:52 mdb Exp $
|
// $Id: DEventUtil.java,v 1.4 2002/02/02 09:42:36 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.presents.dobj;
|
package com.threerings.presents.dobj;
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ public class DEventUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
} catch (SecurityException se) {
|
} catch (SecurityException se) {
|
||||||
throw new ObjectAccessException("Reflection error: " + se);
|
throw new ObjectAccessException("Reflection error", se);
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure we found a matching method
|
// make sure we found a matching method
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: DObject.java,v 1.31 2001/10/12 20:12:48 mdb Exp $
|
// $Id: DObject.java,v 1.32 2002/02/02 09:42:36 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.presents.dobj;
|
package com.threerings.presents.dobj;
|
||||||
|
|
||||||
@@ -378,8 +378,8 @@ public class DObject
|
|||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errmsg = "Attribute setting failure [name=" + name +
|
String errmsg = "Attribute setting failure [name=" + name +
|
||||||
", value=" + value + ", error=" + e + "].";
|
", value=" + value + "].";
|
||||||
throw new ObjectAccessException(errmsg);
|
throw new ObjectAccessException(errmsg, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,9 +396,8 @@ public class DObject
|
|||||||
return getClass().getField(name).get(this);
|
return getClass().getField(name).get(this);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errmsg = "Attribute getting failure [name=" + name +
|
String errmsg = "Attribute getting failure [name=" + name + "].";
|
||||||
", error=" + e + "].";
|
throw new ObjectAccessException(errmsg, e);
|
||||||
throw new ObjectAccessException(errmsg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
//
|
//
|
||||||
// $Id: ObjectAccessException.java,v 1.2 2001/10/11 04:07:52 mdb Exp $
|
// $Id: ObjectAccessException.java,v 1.3 2002/02/02 09:42:36 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.presents.dobj;
|
package com.threerings.presents.dobj;
|
||||||
|
|
||||||
|
import org.apache.commons.util.exception.NestableException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object access exception is delivered when an object is not
|
* An object access exception is delivered when an object is not
|
||||||
* accessible to a requesting subscriber for some reason or other. For
|
* accessible to a requesting subscriber for some reason or other. For
|
||||||
@@ -10,10 +12,32 @@ package com.threerings.presents.dobj;
|
|||||||
* the error. For others, a message string explaining the access failure
|
* the error. For others, a message string explaining the access failure
|
||||||
* is provided.
|
* is provided.
|
||||||
*/
|
*/
|
||||||
public class ObjectAccessException extends Exception
|
public class ObjectAccessException extends NestableException
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Constructs a object access exception with the specified error
|
||||||
|
* message.
|
||||||
|
*/
|
||||||
public ObjectAccessException (String message)
|
public ObjectAccessException (String message)
|
||||||
{
|
{
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a object access exception with the specified error
|
||||||
|
* message and the chained causing event.
|
||||||
|
*/
|
||||||
|
public ObjectAccessException (String message, Exception cause)
|
||||||
|
{
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a object access exception with the specified chained
|
||||||
|
* causing event.
|
||||||
|
*/
|
||||||
|
public ObjectAccessException (Exception cause)
|
||||||
|
{
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: PresentsDObjectMgr.java,v 1.20 2001/12/04 01:01:54 mdb Exp $
|
// $Id: PresentsDObjectMgr.java,v 1.21 2002/02/02 09:42:36 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.presents.server;
|
package com.threerings.presents.server;
|
||||||
|
|
||||||
@@ -477,15 +477,6 @@ public class PresentsDObjectMgr implements RootDObjectManager
|
|||||||
|
|
||||||
// Log.info("Created object [obj=" + obj + "].");
|
// Log.info("Created object [obj=" + obj + "].");
|
||||||
|
|
||||||
if (_target != null) {
|
|
||||||
// add the subscriber to this object's subscriber list
|
|
||||||
obj.addSubscriber(_target);
|
|
||||||
|
|
||||||
// let the target subscriber know that their object is
|
|
||||||
// available
|
|
||||||
informObjectAvailable(_target, obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.warning("Object creation failure " +
|
Log.warning("Object creation failure " +
|
||||||
"[class=" + _class.getName() +
|
"[class=" + _class.getName() +
|
||||||
@@ -493,10 +484,21 @@ public class PresentsDObjectMgr implements RootDObjectManager
|
|||||||
|
|
||||||
// let the subscriber know shit be fucked
|
// let the subscriber know shit be fucked
|
||||||
if (_target != null) {
|
if (_target != null) {
|
||||||
String errmsg = "Object instantiation failed: " + e;
|
String errmsg = "Object instantiation failed";
|
||||||
_target.requestFailed(
|
_target.requestFailed(
|
||||||
oid, new ObjectAccessException(errmsg));
|
oid, new ObjectAccessException(errmsg, e));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_target != null) {
|
||||||
|
// add the subscriber to this object's subscriber list
|
||||||
|
obj.addSubscriber(_target);
|
||||||
|
|
||||||
|
// let the target subscriber know that their object is
|
||||||
|
// available
|
||||||
|
informObjectAvailable(_target, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
// and return false to ensure that this event is not
|
// and return false to ensure that this event is not
|
||||||
|
|||||||
Reference in New Issue
Block a user