Our QE reported strange hitcount in our statistiscs and I discovered that ProbeListeners are sometimes called more than once. This is not issue related to multiple managed object registration (I checked this). I don't know why is this called; I can see in the log I called probe methods only once but ProbleListeners are invoked twice. ENVIRONMENT: java version "1.6.0_13" Darwin XXXX 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386 Glassfish V3 (rev 30570) STEPS TO REPRODUCE: # unzip glassfish unzip ./glassfish.zip # get latest jersey build and "install" it into gf (overwrite all) wget http://download.java.net/maven/2/com/sun/jersey/glassfish/v3/jersey-gfv3-core/1.1.2-ea-SNAPSHOT/jersey-gfv3-core-1.1.2-ea-SNAPSHOT-project.zip unzip ./jersey-gfv3-core-1.1.2-ea-SNAPSHOT-project.zip -d ./glassfishv3/ # get helloword-webapp sample, unzip, build wget http://download.java.net/maven/2/com/sun/jersey/samples/helloworld-webapp/1.1.2-ea-SNAPSHOT/helloworld-webapp-1.1.2-ea-SNAPSHOT-gf-project.zip unzip ./helloworld-webapp-1.1.2-ea-SNAPSHOT-gf-project.zip cd helloworld-webapp mvn clean install cd .. # start glassfish ./glassfishv3/glassfish/bin/asadmin start-domain # deploy helloword-webapp ./glassfishv3/glassfish/bin/asadmin deploy ./helloworld-webapp/target/helloworld-webapp.war # turn on monitoring ./glassfishv3/glassfish/bin/asadmin set configs.config.server-config.monitoring-service.module-monitoring-levels.web-container=HIGH # restart glassfish ./glassfishv3/glassfish/bin/asadmin stop-domain ./glassfishv3/glassfish/bin/asadmin start-domain #make a hit and check stats curl http://localhost:8080/helloworld-webapp/helloworld ./glassfishv3/glassfish/bin/asadmin get --monitor=true "*" | grep jersey # output: (so far so good) # server.applications.helloworld-webapp.jersey.resources.resourceClassHitCount = {com.sun.jersey.samples.helloworld.resources.HelloWorldResource=1} # server.applications.helloworld-webapp.jersey.resources.resourceClassHitCount-description = Resource class hit count # server.applications.helloworld-webapp.jersey.resources.resourceClassHitCount-lastsampletime = 1250689796132 # server.applications.helloworld-webapp.jersey.resources.resourceClassHitCount-starttime = 1250689796099 # server.applications.helloworld-webapp.jersey.resources.rootResourceClassHitCount = {com.sun.jersey.samples.helloworld.resources.HelloWorldResource=1} # server.applications.helloworld-webapp.jersey.resources.rootResourceClassHitCount-description = Root resource class hit count # server.applications.helloworld-webapp.jersey.resources.rootResourceClassHitCount-lastsampletime = 1250689796132 # server.applications.helloworld-webapp.jersey.resources.rootResourceClassHitCount-starttime = 1250689796099 # server.jersey.global.applicationList = [helloworld-webapp] # restart glassfish (just to be sure) ./glassfishv3/glassfish/bin/asadmin stop-domain ./glassfishv3/glassfish/bin/asadmin start-domain # turn monitoring off and on again ./glassfishv3/glassfish/bin/asadmin set configs.config.server-config.monitoring-service.module-monitoring-levels.web-container=OFF ./glassfishv3/glassfish/bin/asadmin set configs.config.server-config.monitoring-service.module-monitoring-levels.web-container=HIGH #make a hit and check stats curl http://localhost:8080/helloworld-webapp/helloworld ./glassfishv3/glassfish/bin/asadmin get --monitor=true "*" | grep jersey # output: (resource hit count may differ but it should be something like this; main point is that is not same as in previous case) # server.applications.helloworld-webapp.jersey.resources.resourceclasshitcount = {com.sun.jersey.samples.helloworld.resources.HelloWorldResource=2} # server.applications.helloworld-webapp.jersey.resources.resourceclasshitcount-description = Resource class hit count # server.applications.helloworld-webapp.jersey.resources.resourceclasshitcount-lastsampletime = 1250690224759 # server.applications.helloworld-webapp.jersey.resources.resourceclasshitcount-starttime = 1250690224725 # server.applications.helloworld-webapp.jersey.resources.rootresourceclasshitcount = {com.sun.jersey.samples.helloworld.resources.HelloWorldResource=4} # server.applications.helloworld-webapp.jersey.resources.rootresourceclasshitcount-description = Root resource class hit count # server.applications.helloworld-webapp.jersey.resources.rootresourceclasshitcount-lastsampletime = 1250690224759 # server.applications.helloworld-webapp.jersey.resources.rootresourceclasshitcount-starttime = 1250690224725 # server.jersey.global.applicationlist = [helloworld-webapp]