You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hivemind.apache.org by ji...@apache.org on 2004/06/07 19:24:53 UTC

[jira] Commented: (HIVEMIND-4) Enhance logging of exceptions when setting a service property to a contribution

The following comment has been added to this issue:

     Author: Steve Gibson
    Created: Mon, 7 Jun 2004 10:24 AM
       Body:
Ahhh, yes. Found where the exception is caught...

BuilderFactory.setProperties
try
{
    Class targetType = PropertyUtils.getPropertyType(target, propertyName, facet);
    Object value = facet.getFacetValue(serviceId, invokingModule, targetType);
    HiveMind.setLocation(value, HiveMind.getLocation(facet));
    PropertyUtils.write(target, propertyName, value, facet);
}
catch (Exception ex)
{
    log.error(ex.getMessage());
}

So, this catches all RuntimeExceptions too, and assumes the exception has a message.
Perhaps this should do a check if ex instanceof RuntimeException and rethrow?


---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/HIVEMIND-4?page=comments#action_35942

---------------------------------------------------------------------
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: Unassigned
   Priority: Major

    Project: HiveMind
 Components: 
             framework
   Versions:
             1.0

   Assignee: 
   Reporter: Steve Gibson

    Created: Mon, 7 Jun 2004 10:17 AM
    Updated: Mon, 7 Jun 2004 10:24 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: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org