[ 
https://issues.apache.org/jira/browse/IGNITE-12511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17005343#comment-17005343
 ] 

Andrey Mashenkov commented on IGNITE-12511:
-------------------------------------------

I've found we use FQ class names in javadocs. 
What are benefits from adding few imports just for javadoc?

> Fix misleading javadoc. 
> ------------------------
>
>                 Key: IGNITE-12511
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12511
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>             Fix For: 2.9
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The interface *IgniteBinary* has method:
> {code:java}
> /**
>      * Converts provided object to instance of {@link 
> org.apache.ignite.binary.BinaryObject}.
>      *
>      * @param obj Object to convert.
>      * @return Converted object.
>      * @throws org.apache.ignite.binary.BinaryObjectException In case of 
> error.
>      */
>     public <T> T toBinary(@Nullable Object obj) throws BinaryObjectException;
> {code}
> As can be seen from the method signature, the value of the parameter value 
> can be *null*.
> But, the documentation does not say what the behavior of the method will be 
> in this case.
> {code:java}
> /**
>      * Gets type ID for given type name.
>      *
>      * @param typeName Type name.
>      * @return Type ID.
>      */
>     public int typeId(String typeName);
> {code}
> It is not clear from the documentation of this method what the behavior of 
> the method will be if:
> # *typeName* is *null*?
> # for *typeName* there is no* type id*?
> The class Marshaller has methods:
> {code:java}
> public interface Marshaller {
>     ....
>     /**
>      * Marshals object to the output stream. This method should not close
>      * given output stream.
>      *
>      * @param obj Object to marshal.
>      * @param out Output stream to marshal into.
>      * @throws IgniteCheckedException If marshalling failed.
>      */
>     public void marshal(@Nullable Object obj, OutputStream out) throws 
> IgniteCheckedException;
>         /**
>      * Marshals object to byte array.
>      *
>      * @param obj Object to marshal.
>      * @return Byte array.
>      * @throws IgniteCheckedException If marshalling failed.
>      */
>     public byte[] marshal(@Nullable Object obj) throws IgniteCheckedException;
> }
> {code}
> The method signature has the annotation @Nullable.
> But, from the documentation it is completely incomprehensible:
> # what happens as a result of calling the method with the passed *null* value 
> at the input - will be thrown *IgniteCheckedException* exception or 
> *NullPointerException* or something else
> # what's the point of allowing *null* value?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to