[tor-bugs] #22141 [Metrics/metrics-lib]: Deprecate `DescriptorFile` and add relevant information to `Descriptor`

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jun 15 06:35:38 UTC 2017


#22141: Deprecate `DescriptorFile` and add relevant information to `Descriptor`
---------------------------------+-----------------------------------
 Reporter:  karsten              |          Owner:  karsten
     Type:  enhancement          |         Status:  needs_review
 Priority:  Medium               |      Milestone:  metrics-lib 1.9.0
Component:  Metrics/metrics-lib  |        Version:
 Severity:  Normal               |     Resolution:
 Keywords:                       |  Actual Points:
Parent ID:                       |         Points:
 Reviewer:                       |        Sponsor:
---------------------------------+-----------------------------------

Comment (by iwakeh):

 Replying to [comment:22 karsten]:
 > Replying to [comment:20 iwakeh]:
 > > Oh, only the interface was added.
 > > What could getAnnotations, getUnrecognizedLines return when called on
 an UnparseableDescriptor?
 >
 > Right now they don't return anything, that is, they return an empty list
 or `null`.
 >
 > But in theory we could return whatever annotations or unrecognized lines
 we found until running into a `DescriptorParseException`.  I have an idea
 how to build this with ''relatively'' little code changes, but I'll hold
 off until I hear whether that's even a good idea.

 No client would really want to use the possibly mangled content of these
 two methods, would they?
 A client would -- if at all -- use the raw bytes.

 >
 > Another solution that I don't like as much is that we introduce a new
 interface `ParsedDescriptor` that extends `Descriptor` and that other
 (parsed) descriptors extend.  That new interface could then contain these
 two methods, so they're not available in `UnparseableDescriptor`.  The
 part that I don't like there is that we'd have to deprecate the current
 methods in `Descriptor`, and applications depending on them would have to
 downcast their `Descriptor` instances to `ParsedDescriptor` instances just
 to get the annotations (or unrecognized lines).  Slightly eww.
 >
 > What do you think?

 I'd rather state in the javadoc that there won't be any useful content to
 expect.
 The methods could be simply returning the default or even be implemented
 to throw an exception "Not available".  That'll be sufficient.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/22141#comment:23>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list