[ 
http://issues.apache.org/jira/browse/HIVEMIND-124?page=comments#action_65899 ]
     
Knut Wannheden commented on HIVEMIND-124:
-----------------------------------------

Yes, SmartTranslator is special because HiveMind uses it as the default. But 
what also makes it special, which I think is what is most relevant in this 
discussion, is the fact that it uses the passed 'propertyType' argument to 
decide on how to parse the 'inputValue'. I think it would be unfortunate if the 
BuilderPropertyFacet treated the SmartTranslator differently, as it would make 
it difficult to implement other similar translators.

I can't really think of any good reasons why the BuilderPropertyFacet should 
not log the exception caught before returning false. The reason I thought it 
would be better to report the error in BuilderPropertyFacet is that it can do 
this using the HiveMind ErrorHandler which isn't available to the Translator.

I don't like the idea of having the SmartTranslator return null if the value 
can't be parsed. This would be inconsistent with other Translators.

I agree that the exception caught in isAssignableToType() indicates a failure. 
It will result in a constructor not being applicable or a property not being 
settable. Yet I think it would be appropriate to delegate this to the 
ErrorHandler and return a 'false' to the client. Is there a case where this is 
not such a good strategy?

> Report a proper message when a constructor argument in BuilderFactory is 
> invalid
> --------------------------------------------------------------------------------
>
>          Key: HIVEMIND-124
>          URL: http://issues.apache.org/jira/browse/HIVEMIND-124
>      Project: HiveMind
>         Type: Bug
>   Components: framework
>     Reporter: Richard Hensley
>  Attachments: patch.txt, patch_with_smarttranslator_specialcase.txt
>
> My situation is that I use constructor arguments for all my required 
> parameters of objects. The code inside of the BuilderFactoryLogic uses the 
> BuilderPropertyFactet.isAssignableFrom() method to figure out if a particular 
> parameter in a constructor is right. The 
> BuilderPropertyFactet.isAssignableFrom() eats an ApplicationRuntimeException 
> and returns false. This is bad when you miss-spell a service name, for 
> instance:
> <service>service:MyServic</service>
> When you meant,
> <service>service:MyService</service>
> The error that Hivemind throws is that it had trouble finding a valid 
> constructor, when the real problem was that it had problems finding your 
> service to even check if the constructor was valid.

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to