Token implements Writable { public void decodeFromUrlString(String newValue) throws IOException { decodeWritable(this, newValue); } Token(T id, SecretManager<T> mgr);  Token(byte[] identifier, byte[] password, Text kind, Text service);  Token();  Token(Token<T> other);  Token(TokenProto tokenPB); Token<T> copyToken(); TokenProto toTokenProto(); byte[] getIdentifier(); @SuppressWarnings("unchecked") T decodeIdentifier(); byte[] getPassword(); synchronized Text getKind(); @InterfaceAudience.Private synchronized void setKind(Text newKind); Text getService(); void setService(Text newService); boolean isPrivate(); boolean isPrivateCloneOf(Text thePublicService); Token<T> privateClone(Text newService); @Override void readFields(DataInput in); @Override void write(DataOutput out); String encodeToUrlString(); void decodeFromUrlString(String newValue); @SuppressWarnings("unchecked") @Override boolean equals(Object right); @Override int hashCode(); @Override String toString(); String buildCacheKey(); boolean isManaged(); long renew(Configuration conf
                    ); void cancel(Configuration conf
                     ); static final Logger LOG; }
@Test public void testDecodeWritableArgSanityCheck() throws Exception { Token<AbstractDelegationTokenIdentifier> token = new Token<AbstractDelegationTokenIdentifier>(); try { token.decodeFromUrlString(null); fail("Should have thrown HadoopIllegalArgumentException"); } catch (HadoopIllegalArgumentException e) { Token.LOG.info("Test decodeWritable() sanity check success."); } }