Hi Thanks for reporting https://issues.apache.org/jira/browse/CAMEL-20820
On Fri, May 31, 2024 at 10:37 AM Roger Goossens <r.p.h.gooss...@gmail.com> wrote: > Hello everybody, > > We're hitting a small issue in Camel that unfortunately causes Hawtio to > crash after upgrading to Camel 4 (and Hawtio 4). > > Hawtio crashes due to a duplicate MBean operation being exposed when using > a json-validator endpoint (and possibly some other endpoints as well). I > made a small project with a json-validator endpoint to reproduce the issue. > The project is available here: > https://github.com/rphgoossens/json-validation > When you start it up and try to open the Hawtio dashboard ( > http://localhost:8080/actuator/hawtio), you'll notice it won't display > anything and there's an error visible in the web console. > > The underlying issue (after some digging) appears to be a duplicate MBean > Operation being exposed for the json-validator endpoint > (clearContentCache()) > > [image: Screenshot 2024-05-31 at 09.58.41.jpg] > > The duplication is a result of a ManagedOperation annotation being present > on the clearContentCache method of the ResourceEndpoint class (a superclass > of the JsonValdatorEndpoint class) and a ManagedOperation annotation being > present on the clearContentCache method of the ManagedResourceEndpointMBean > interface (an interface that the JsonValidatorEndpoint class implements). > When you hover over both buttons in VisualVm (picture above), you'll both > buttons having different descriptions (one has the description of the > annotation in the ResourceEndpoint class and the other gets its description > from the ManagedResourceEndpointMBean interface) > > [image: Screenshot 2024-05-31 at 10.03.26.jpg] > [image: Screenshot 2024-05-31 at 10.03.49.jpg] > > Funny thing is that the duplication of the operation will NOT take place > if the descriptions in the ManagedOperation annotations are the same (which > they currently are not obviously). I tested this by shadowing the > ResourceEndpoint class in my project and adjusting the description. > ManagedAttribute annotations that are duplicated in ResourceEndpoint and > ManagedResourceEndpointMBean (like isContentCache()) with different > descriptions are not duplicated in the MBean exposure funny enough. > > You can argue that this shouldn't cause a crash in Hawtio (and it didn't > in the 3 version), but the duplicate MBean operation is a small bug IMHO, > since both operations in the end will call the same method. Only the one > coming from the class at the bottom of the hierarchy (in this case > the ResourceEndpoint one) should be exposed. > > So my request would be to create a Camel issue to solve this in a future > Camel version. > > The only workaround we currently have is to set the > camel.main.jms-management-m-beans-level to contextonly. Then Hawtio will > load without errors, but then we're missing a lot MBean functionality, eg. > stop and start individual routes in the project. > > I hope the information I provided was helpful and complete. Feel free to > mail me for any additional questions and please let me know if you will > create an issue for this. > > Best Regards, > Roger Goossens. > > > > -- Claus Ibsen ----------------- @davsclaus Camel in Action 2: https://www.manning.com/ibsen2