[
https://issues.apache.org/jira/browse/TINKERPOP-1251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15229208#comment-15229208
]
Dan LaRocque commented on TINKERPOP-1251:
-----------------------------------------
bq. I fixed also a potential compareTo bug related to NPE.
Can you link it? I noticed that compareTo would throw NPE if its parameter is
null, but that's the right behavior.
https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html
{quote}
Throws:
NullPointerException - if the specified object is null
{quote}
{{equals}} and {{hashCode}} were a bit trickier to read, but I think they are
correct because {{null instanceof X}} evaluates to false rather than throwing
an exception.
> NPE in ObjectWritable.toString
> ------------------------------
>
> Key: TINKERPOP-1251
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1251
> Project: TinkerPop
> Issue Type: Bug
> Components: io
> Affects Versions: 3.1.1-incubating
> Reporter: Dan LaRocque
> Assignee: Marko A. Rodriguez
> Fix For: 3.2.0-incubating, 3.1.2-incubating
>
>
> ObjectWritable is a fancy wrapper around single reference named {{t}}.
> ObjectWritable is internally inconsistent about whether {{t==null}} is
> allowed.
> {{toString}} suggests that {{t==null}} is an illegal state, since it throws
> NPE:
> {code}
> public String toString() {
> return this.t.toString();
> }
> {code}
> Compare with {{isEmpty}}, which suggests that {{t==null}} is a legal state:
> {code}
> public boolean isEmpty() {
> return null == this.t;
> }
> {code}
> IMO toString should just tolerate null.
> Why does this matter? One case where this {{toString}} gets invoked is Java
> serialization with debugging info turned on
> ("sun.io.serialization.extendedDebugInfo" sys prop). When so configured,
> Java serialization code (ObjectOutputStream) invokes {{toString}} on the
> objects it processes. If {{toString}} throws this NPE, serialization fails.
> This is frustrating, since serialization of null ObjectWritables works fine
> with debugging info suppressed, but breaks with debugging info enabled.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)