@Test(expected = IllegalArgumentException.class) public void exception() throws Exception { obj.getTag("non existent"); }
@Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; }
BaseTaggableObject implements TaggableObject { @Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; } }
BaseTaggableObject implements TaggableObject { @Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; }  }
BaseTaggableObject implements TaggableObject { @Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; }  @Override @Nullable synchronized ByteString maybeGetTag(String tag); @Override ByteString getTag(String tag); @Override synchronized void setTag(String tag, ByteString value); @Override synchronized Map<String, ByteString> getTags(); }
BaseTaggableObject implements TaggableObject { @Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; }  @Override @Nullable synchronized ByteString maybeGetTag(String tag); @Override ByteString getTag(String tag); @Override synchronized void setTag(String tag, ByteString value); @Override synchronized Map<String, ByteString> getTags();  }