The following comment has been added to this issue:
Author: Steve Gibson
Created: Thu, 10 Jun 2004 6:16 AM
Body:
I guess this boils down to your earlier comments on fail-fast versus fail-soft
(?).
A runtime exception is thrown because it is not recoverable and the situation
leaves the system in an unknown state.
It would be nice if it was possible to validate the module descriptor, but to
me that would mean less flexibility, or a more complicated API when it comes to
rules, translators, factories, etc.
---------------------------------------------------------------------
View this comment:
http://issues.apache.org/jira/browse/HIVEMIND-4?page=comments#action_36016
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/HIVEMIND-4
Here is an overview of the issue:
---------------------------------------------------------------------
Key: HIVEMIND-4
Summary: Enhance logging of exceptions when setting a service property to a
contribution
Type: Improvement
Status: In Progress
Priority: Major
Project: HiveMind
Components:
framework
Versions:
1.0
Assignee: Howard M. Lewis Ship
Reporter: Steve Gibson
Created: Mon, 7 Jun 2004 10:17 AM
Updated: Thu, 10 Jun 2004 6:16 AM
Environment: hivemind-1.0.beta-1-snapshot.jar
Description:
I am guessing the source of the exception for this, so this may be a little
vague.
If an exception is thrown due to a bug in the schema definition or a
contribution to a configuration point, when a service using the affected
configuration point is instantiated, a message of limited usefulness is logged
of the form:
ERROR: <module-id>.<service-id> - Unable to update property <property-name> of
object <service-impl-class.toString()> (at <module-descriptor-url>, line <line
number of set-configuration>): null
To me, that suggests I am getting a NullPointerException somewhere, as I dig
through the source and find in PropertyAdaptor:
try
{
_writeMethod.invoke(target, new Object[] { value });
}
catch (Exception ex)
{
throw new ApplicationRuntimeException(
UtilMessages.writeFailure(_propertyName, target, location, ex),
target,
HiveMind.getLocation(location),
ex);
}
with UtilMessages.writeFailure containing:
return HiveMind.format(
"PropertyAdaptor.write-failure",
new Object[] {
propertyName,
target,
HiveMind.getLocationString(location),
cause.getMessage()});
With a NullPointerException, the cause is null, so perhaps a better approach
would be:
cause.getMessage()!=null?cause.getMessage():cause
I will attach my test code.
I will also investigate the chain of the ApplicationRuntimeException, though
its trace is not being logged.
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]