< prev index next >

core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/latency/BiasedLockingRevocationRule.java

Print this page




  91                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_WARNING_LIMIT_LONG), NUMBER,
  92                         NUMBER_UNITY.quantity(15));
  93 
  94         public static final TypedPreference<IQuantity> MAX_NUMBER_OF_CLASSES_TO_REPORT = new TypedPreference<>(
  95                         "biasedRevocation.classesToReport.limit", //$NON-NLS-1$
  96                         Messages.getString(Messages.General_CONFIG_CLASS_LIMIT),
  97                         Messages.getString(Messages.General_CONFIG_CLASS_LIMIT_LONG), NUMBER, NUMBER_UNITY.quantity(5));
  98 
  99         private static final TypedPreference<String> FILTERED_CLASSES = new TypedPreference<>(
 100                         "biasedRevocation.filtered.classes", //$NON-NLS-1$
 101                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_FILTERED_CLASSES),
 102                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_FILTERED_CLASSES_LONG),
 103                         UnitLookup.PLAIN_TEXT.getPersister(), "java.lang.ref.ReferenceQueue$Lock"); //$NON-NLS-1$
 104 
 105         private static final List<TypedPreference<?>> CONFIG_ATTRIBUTES = Arrays.<TypedPreference<?>> asList(WARNING_LIMIT,
 106                         MAX_NUMBER_OF_CLASSES_TO_REPORT, FILTERED_CLASSES);
 107 
 108         private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
 109                 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items,
 110                                 JdkTypeIDs.BIASED_LOCK_CLASS_REVOCATION);
 111                 if (eventAvailability == EventAvailability.UNAVAILABLE || eventAvailability == EventAvailability.DISABLED) {
 112                         return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability,
 113                                         JdkTypeIDs.BIASED_LOCK_CLASS_REVOCATION);
 114                 }
 115 
 116                 IItemCollection revokationEvents = items.apply(JdkFilters.BIASED_LOCKING_REVOCATIONS); // $NON-NLS-1$
 117                 if (!revokationEvents.hasItems()) {
 118                         return new Result(this, 0, Messages.getString(Messages.BiasedLockingRevocationPauseRule_TEXT_OK));
 119                 }
 120 
 121                 Set<String> filteredTypes = getFilteredTypes(valueProvider.getPreferenceValue(FILTERED_CLASSES));
 122 
 123                 IItemCollection revokedClassesEvents = revokationEvents
 124                                 .apply(ItemFilters.and(ItemFilters.hasAttribute(JdkAttributes.BIASED_REVOCATION_CLASS),
 125                                                 ItemFilters.equals(JdkAttributes.BIASED_REVOCATION_DISABLE_BIASING, Boolean.TRUE)));
 126                 Set<IMCType> revokedTypes = filter(filteredTypes,
 127                                 revokedClassesEvents.getAggregate(Aggregators.distinct(JdkAttributes.BIASED_REVOCATION_CLASS)));
 128 
 129                 StringBuilder shortMessage = new StringBuilder();
 130                 StringBuilder longMessage = new StringBuilder();
 131 




  91                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_WARNING_LIMIT_LONG), NUMBER,
  92                         NUMBER_UNITY.quantity(15));
  93 
  94         public static final TypedPreference<IQuantity> MAX_NUMBER_OF_CLASSES_TO_REPORT = new TypedPreference<>(
  95                         "biasedRevocation.classesToReport.limit", //$NON-NLS-1$
  96                         Messages.getString(Messages.General_CONFIG_CLASS_LIMIT),
  97                         Messages.getString(Messages.General_CONFIG_CLASS_LIMIT_LONG), NUMBER, NUMBER_UNITY.quantity(5));
  98 
  99         private static final TypedPreference<String> FILTERED_CLASSES = new TypedPreference<>(
 100                         "biasedRevocation.filtered.classes", //$NON-NLS-1$
 101                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_FILTERED_CLASSES),
 102                         Messages.getString(Messages.BiasedLockingRevocationRule_CONFIG_FILTERED_CLASSES_LONG),
 103                         UnitLookup.PLAIN_TEXT.getPersister(), "java.lang.ref.ReferenceQueue$Lock"); //$NON-NLS-1$
 104 
 105         private static final List<TypedPreference<?>> CONFIG_ATTRIBUTES = Arrays.<TypedPreference<?>> asList(WARNING_LIMIT,
 106                         MAX_NUMBER_OF_CLASSES_TO_REPORT, FILTERED_CLASSES);
 107 
 108         private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
 109                 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items,
 110                                 JdkTypeIDs.BIASED_LOCK_CLASS_REVOCATION);
 111                 if (eventAvailability == EventAvailability.UNKNOWN || eventAvailability == EventAvailability.DISABLED) {
 112                         return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability,
 113                                         JdkTypeIDs.BIASED_LOCK_CLASS_REVOCATION);
 114                 }
 115 
 116                 IItemCollection revokationEvents = items.apply(JdkFilters.BIASED_LOCKING_REVOCATIONS); // $NON-NLS-1$
 117                 if (!revokationEvents.hasItems()) {
 118                         return new Result(this, 0, Messages.getString(Messages.BiasedLockingRevocationPauseRule_TEXT_OK));
 119                 }
 120 
 121                 Set<String> filteredTypes = getFilteredTypes(valueProvider.getPreferenceValue(FILTERED_CLASSES));
 122 
 123                 IItemCollection revokedClassesEvents = revokationEvents
 124                                 .apply(ItemFilters.and(ItemFilters.hasAttribute(JdkAttributes.BIASED_REVOCATION_CLASS),
 125                                                 ItemFilters.equals(JdkAttributes.BIASED_REVOCATION_DISABLE_BIASING, Boolean.TRUE)));
 126                 Set<IMCType> revokedTypes = filter(filteredTypes,
 127                                 revokedClassesEvents.getAggregate(Aggregators.distinct(JdkAttributes.BIASED_REVOCATION_CLASS)));
 128 
 129                 StringBuilder shortMessage = new StringBuilder();
 130                 StringBuilder longMessage = new StringBuilder();
 131 


< prev index next >