Who can help, who knows SpotBugs?

On Wed, Mar 15, 2023 at 1:14 AM Kai Levy <kl...@toasttab.com> wrote:

> Thanks for the suggestion Asaf, unfortunately that hasn't resolved the
> issue with SpotBugs. You can see the commit here
> <
> https://github.com/apache/pulsar/commit/033087134e5f5417af5d8fa5e0cace41b597a2a6
> >.
> When I try to compile, I receive the same error message.
>
> Best,
> Kai
>
> On Tue, Mar 14, 2023 at 2:02 AM Asaf Mesika <asaf.mes...@gmail.com> wrote:
>
> > Good catch by SpotBugs.
> >
> > What if in this method
> >
> > @Override
> > public ConsumerStatsRecorder getStats() {
> >     return stats;
> > }
> >
> > You change return type to ConsumerStats so it's immutable ?
> >
> >
> > On Sat, Mar 11, 2023 at 4:41 AM Kai Levy <kl...@toasttab.com> wrote:
> >
> > > I made a start on the implementation with `setRetryLetterProducer`.
> > > Unfortunately, the spotbugs plugin has issues with it, because now
> > > ConsumerImpl is returning a mutable object from getStats. You can see
> my
> > > progress here
> > > <
> > >
> >
> https://github.com/apache/pulsar/compare/master...klevy-toast:pulsar:PIP-253-expose-deadLetter-retryLetter-stats?expand=1
> > > >.
> > > The spotbugs errors are below:
> > >
> > > [ERROR] Medium: org.apache.pulsar.client.impl.ConsumerImpl.getStats()
> may
> > > expose internal representation by returning ConsumerImpl.stats
> > > [org.apache.pulsar.client.impl.ConsumerImpl] At ConsumerImpl.java:[line
> > > 2518] EI_EXPOSE_REP
> > > [ERROR] Medium:
> > > org.apache.pulsar.client.impl.MultiTopicsConsumerImpl.getStats() may
> > expose
> > > internal representation by returning MultiTopicsConsumerImpl.stats
> > > [org.apache.pulsar.client.impl.MultiTopicsConsumerImpl] At
> > > MultiTopicsConsumerImpl.java:[line 851] EI_EXPOSE_REP
> > >
> > >
> > > I would appreciate input on the best path forward.
> > >
> > > Thanks,
> > > Kai
> > >
> > > On Tue, Mar 7, 2023 at 9:49 AM Kai Levy <kl...@toasttab.com> wrote:
> > >
> > > > Yes, that would work.
> > > >
> > > > Kai
> > > >
> > > > On Tue, Mar 7, 2023 at 12:41 AM Asaf Mesika <asaf.mes...@gmail.com>
> > > wrote:
> > > >
> > > >> On Mon, Mar 6, 2023 at 6:24 PM Kai Levy <kl...@toasttab.com> wrote:
> > > >>
> > > >> > I agree, adding it to the ConsumerStats interface makes more
> logical
> > > >> sense,
> > > >> > but I believe the implementation will be harder that way, since
> the
> > > >> > producers are lazily initialized. They won't be available when
> > > >> > ConsumerStats is created, and there isn't currently a way to
> access
> > > them
> > > >> > directly from the consumer.
> > > >> >
> > > >> >
> > > >> In `ConsumerImp` you have
> > > >>
> > > >> private volatile Producer<byte[]> retryLetterProducer;
> > > >>
> > > >> You can just add setRetryLetterProducer on `ConsumerStatsRecorder`
> > > >>
> > > >>
> > > >>
> > > >> Kai
> > > >> >
> > > >> > On Sun, Mar 5, 2023 at 5:19 AM Asaf Mesika <asaf.mes...@gmail.com
> >
> > > >> wrote:
> > > >> >
> > > >> > > I would rather see them as attributes of ConsumerStats .
> > > >> > > Add
> > > >> > >
> > > >> > > ProducerStats deadLetterProducerStats;
> > > >> > >
> > > >> > > ProducerStats retryLetterProducerStats();
> > > >> > >
> > > >> > >
> > > >> > > On Fri, Mar 3, 2023 at 2:54 AM Kai Levy <kl...@toasttab.com>
> > wrote:
> > > >> > >
> > > >> > > > Hello!
> > > >> > > >
> > > >> > > > I created a new PIP because I discovered there's no way for a
> > user
> > > >> to
> > > >> > > > access the metrics for a consumer's deadLetterProducer /
> > > >> > > > retryLetterProducer, since it is private to
> ConsumerImpl.java. I
> > > >> would
> > > >> > > like
> > > >> > > > to propose an API change that would expose those statistics.
> > More
> > > >> > details
> > > >> > > > on the github issue:
> > > >> > > > https://github.com/apache/pulsar/issues/19698
> > > >> > > >
> > > >> > > > Thanks!
> > > >> > > > Kai
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > >
> >
>

Reply via email to