From 95f15b59420a9d96412cceb218676eee07927689 Mon Sep 17 00:00:00 2001 From: Tobias Stamann Date: Wed, 13 Mar 2024 09:49:06 +0100 Subject: [PATCH] Add constraints --- .../processor/AnnotationWrapperProcessor.java | 2 +- .../AnnotationWrapperProcessorMessages.java | 2 +- .../AnnotationWrapperProcessorTest.java | 23 +- ...rapperAnnotationProcessorMessagesTest.java | 2 +- constraints/constraint-api/pom.xml | 85 ++ .../constraints/AnnotationConstraintSpi.java | 35 + .../aptk/constraints/Constraint.java | 19 + .../aptk/constraints/ManualConstraintSpi.java | 34 + .../io/toolisticon/aptk/constraints/On.java | 41 + .../OnAnnotationAttributeOfType.java | 42 + constraints/constraint-impl/pom.xml | 138 +++ .../AnnotationAttributeConstraints.java | 26 + .../constraints/AnnotationConstraints.java | 48 + .../aptk/constraints/BasicConstraints.java | 201 ++++ ...notationAttributeOfTypeConstraintImpl.java | 75 ++ .../aptk/constraints/OnConstraintImpl.java | 216 ++++ .../aptk/constraints/UtilityFunctions.java | 78 ++ .../aptk/constraints/package-info.java | 11 + .../constraints/BasicConstraintsTest.java | 102 ++ .../JustOnInterfacesAnnotation.java | 13 + .../JustOnStringAttributeAndIntegers.java | 6 + constraints/constraint-processor/pom.xml | 145 +++ .../processor/ConstraintProcessor.java | 49 + .../processor/ConstraintProcessorTest.java | 50 + .../constraints/processor/TestAnnotation.java | 13 + .../testcase/happyPath/HappyPath.java | 14 + .../InvalidUsage.java | 15 + .../manualConstraintsHappyPath/HappyPath.java | 16 + constraints/pom.xml | 22 + extensions/pom.xml | 1 - pom.xml | 24 +- tools/hs_err_pid34093.log | 920 ++++++++++++++++++ 32 files changed, 2439 insertions(+), 29 deletions(-) rename annotationwrapper/processor/src/main/java/io/toolisticon/aptk/{annotationwrapper => constraints}/processor/AnnotationWrapperProcessor.java (99%) rename annotationwrapper/processor/src/main/java/io/toolisticon/aptk/{annotationwrapper => constraints}/processor/AnnotationWrapperProcessorMessages.java (96%) rename annotationwrapper/processor/src/test/java/io/toolisticon/aptk/{annotationwrapper => constraints}/processor/AnnotationWrapperProcessorTest.java (97%) rename annotationwrapper/processor/src/test/java/io/toolisticon/aptk/{annotationwrapper => constraints}/processor/WrapperAnnotationProcessorMessagesTest.java (90%) create mode 100644 constraints/constraint-api/pom.xml create mode 100644 constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraintSpi.java create mode 100644 constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/Constraint.java create mode 100644 constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/ManualConstraintSpi.java create mode 100644 constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/On.java create mode 100644 constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfType.java create mode 100644 constraints/constraint-impl/pom.xml create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationAttributeConstraints.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraints.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/BasicConstraints.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfTypeConstraintImpl.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnConstraintImpl.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/UtilityFunctions.java create mode 100644 constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/package-info.java create mode 100644 constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/BasicConstraintsTest.java create mode 100644 constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnInterfacesAnnotation.java create mode 100644 constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnStringAttributeAndIntegers.java create mode 100644 constraints/constraint-processor/pom.xml create mode 100644 constraints/constraint-processor/src/main/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessor.java create mode 100644 constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessorTest.java create mode 100644 constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/TestAnnotation.java create mode 100644 constraints/constraint-processor/src/test/resources/testcase/happyPath/HappyPath.java create mode 100644 constraints/constraint-processor/src/test/resources/testcase/invalidUsageOnAnnotation/InvalidUsage.java create mode 100644 constraints/constraint-processor/src/test/resources/testcase/manualConstraintsHappyPath/HappyPath.java create mode 100644 constraints/pom.xml create mode 100644 tools/hs_err_pid34093.log diff --git a/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessor.java b/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessor.java similarity index 99% rename from annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessor.java rename to annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessor.java index 8d06875f..8d0c940c 100644 --- a/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessor.java +++ b/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessor.java @@ -1,4 +1,4 @@ -package io.toolisticon.aptk.annotationwrapper.processor; +package io.toolisticon.aptk.constraints.processor; import io.toolisticon.aptk.annotationwrapper.api.AnnotationWrapper; import io.toolisticon.aptk.annotationwrapper.api.CustomCodeMethod; diff --git a/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorMessages.java b/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorMessages.java similarity index 96% rename from annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorMessages.java rename to annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorMessages.java index 15fe89ca..d7127830 100644 --- a/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorMessages.java +++ b/annotationwrapper/processor/src/main/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorMessages.java @@ -1,4 +1,4 @@ -package io.toolisticon.aptk.annotationwrapper.processor; +package io.toolisticon.aptk.constraints.processor; import io.toolisticon.aptk.annotationwrapper.api.CustomCodeMethod; import io.toolisticon.aptk.tools.corematcher.ValidationMessage; diff --git a/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorTest.java b/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorTest.java similarity index 97% rename from annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorTest.java rename to annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorTest.java index a879db86..b63fc684 100644 --- a/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/AnnotationWrapperProcessorTest.java +++ b/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/AnnotationWrapperProcessorTest.java @@ -1,4 +1,4 @@ -package io.toolisticon.aptk.annotationwrapper.processor; +package io.toolisticon.aptk.constraints.processor; import io.toolisticon.aptk.cute.APTKUnitTestProcessor; import io.toolisticon.aptk.cute.APTKUnitTestProcessorForTestingAnnotationProcessors; @@ -149,27 +149,6 @@ public void aptkUnitTest(AnnotationWrapperProcessor unit, ProcessingEnvironment .executeTest(); } - @Test - public void test_AnnotationToWrap_getSimpleName() { - CompileTestBuilder.unitTest().defineTest(new APTKUnitTestProcessor() { - @Override - public void aptkUnitTest(ProcessingEnvironment processingEnvironment, TypeElement typeElement) { - - AnnotationWrapperProcessor.AnnotationToWrap unit = new AnnotationWrapperProcessor.AnnotationToWrap( - UnitTestAnnotation.class.getCanonicalName(), - new ArrayList<>(), - new AnnotationWrapperProcessor.AnnotationWrapperCustomCode(UnitTestAnnotation.class.getCanonicalName()), - new ArrayList<>() - ); - - MatcherAssert.assertThat(unit.getSimpleName(), Matchers.is(UnitTestAnnotation.class.getSimpleName())); - - } - }) - .compilationShouldSucceed() - .executeTest(); - } - @Test public void test_AnnotationToWrap_getQualifiedName() { CompileTestBuilder.unitTest().defineTest(new APTKUnitTestProcessor() { diff --git a/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/WrapperAnnotationProcessorMessagesTest.java b/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/WrapperAnnotationProcessorMessagesTest.java similarity index 90% rename from annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/WrapperAnnotationProcessorMessagesTest.java rename to annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/WrapperAnnotationProcessorMessagesTest.java index 552d3696..8759f6d2 100644 --- a/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/annotationwrapper/processor/WrapperAnnotationProcessorMessagesTest.java +++ b/annotationwrapper/processor/src/test/java/io/toolisticon/aptk/constraints/processor/WrapperAnnotationProcessorMessagesTest.java @@ -1,4 +1,4 @@ -package io.toolisticon.aptk.annotationwrapper.processor; +package io.toolisticon.aptk.constraints.processor; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; diff --git a/constraints/constraint-api/pom.xml b/constraints/constraint-api/pom.xml new file mode 100644 index 00000000..cefd4004 --- /dev/null +++ b/constraints/constraint-api/pom.xml @@ -0,0 +1,85 @@ + + 4.0.0 + + aptk-constraint-api + jar + + + io.toolisticon.aptk + extension-parent + 0.22.12-SNAPSHOT + + + aptk-constraint-api + + + + + + + junit + junit + ${junit.version} + provided + + + + org.hamcrest + hamcrest-library + ${hamcrest.version} + provided + + + + io.toolisticon.spiap + spiap-api + + + + + + + + + + + + maven-enforcer-plugin + + + enforce + + enforce + + + + + [3.0.4,) + + + ${java.version} + + + false + + * + + + *:*:*:*:test:* + *:*:*:*:provided:* + + + + + + + + + + + + + + + diff --git a/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraintSpi.java b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraintSpi.java new file mode 100644 index 00000000..a6563458 --- /dev/null +++ b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraintSpi.java @@ -0,0 +1,35 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.spiap.api.Spi; +import io.toolisticon.spiap.api.SpiServiceLocator; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import java.lang.annotation.Annotation; + +/** + * A spi interface to process annotation constraints. + */ +@Spi +public interface AnnotationConstraintSpi { + + /** + * Get the annotation supported by this spi implementation. + * + * @return the supported annotation + */ + Class getSupportedAnnotation(); + + + + /** + * Checks constraint. + * + * @param annotatedElement The annotated element + * @param annotationMirrorToCheck the annotation which has to be validated + * @param constraintAnnotationMirror the constraint annotation used for checking + * @param attributeNameToBeCheckedByConstraint the name of the annotation attribute with constraint or null if it is placed on annotation type + */ + boolean checkConstraints(Element annotatedElement, AnnotationMirror annotationMirrorToCheck, AnnotationMirror constraintAnnotationMirror, String attributeNameToBeCheckedByConstraint); + +} diff --git a/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/Constraint.java b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/Constraint.java new file mode 100644 index 00000000..a6fbb65f --- /dev/null +++ b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/Constraint.java @@ -0,0 +1,19 @@ +package io.toolisticon.aptk.constraints; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * + * This annotation documents that an annotation declares a constraint. + * + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(value = {ElementType.ANNOTATION_TYPE}) +@Documented +public @interface Constraint { + +} diff --git a/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/ManualConstraintSpi.java b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/ManualConstraintSpi.java new file mode 100644 index 00000000..7e686e5e --- /dev/null +++ b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/ManualConstraintSpi.java @@ -0,0 +1,34 @@ +package io.toolisticon.aptk.constraints; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import java.lang.annotation.Annotation; + +/** + * This spi is used to provide manual check for constraints. This can for example be checks for correct usage of the constraint annotations itself. + * Additionally, it can be checks that aren*t available via constraint annotations + * But + */ +public interface ManualConstraintSpi { + + + + /** + * Get the annotation supported by this spi implementation. + * + * @return the supported annotation + */ + Class getSupportedAnnotation(); + + + /** + * Do some manual checks for constraints. This can be checks if annotation constraint is used correctly + * @param annotatedElement the annotated element + * @param constraintAnnotationMirror the AnnotationMirror representing the constraint annotation + */ + void checkManualConstraints(Element annotatedElement, AnnotationMirror constraintAnnotationMirror); + + + + +} diff --git a/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/On.java b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/On.java new file mode 100644 index 00000000..768591c3 --- /dev/null +++ b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/On.java @@ -0,0 +1,41 @@ +package io.toolisticon.aptk.constraints; + + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The Target annotation is kind of fuzzy in some cases about where annotations might be used. + *

+ * E.g. this is the case for TYPE, which allows you to use annotations on Classes, Interfaces, Enums and Annotations. + * Another example is METHOD, which allows you to use annotations on methods or annotation attribute declarations. + *

+ */ +@Documented +@Constraint +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface On { + + enum Location { + PACKAGE, + ANNOTATION_ATTRIBUTE, + ANNOTATION, + CLASS, + INTERFACE, + ENUM, + METHOD, + CONSTRUCTOR, + PARAMETER, + METHOD_PARAMETER, + CONSTRUCTOR_PARAMETER, + FIELD + + } + + Location[] value(); + +} diff --git a/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfType.java b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfType.java new file mode 100644 index 00000000..c78d7b74 --- /dev/null +++ b/constraints/constraint-api/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfType.java @@ -0,0 +1,42 @@ +package io.toolisticon.aptk.constraints; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Constraint +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface OnAnnotationAttributeOfType { + + enum AttributeType { + FLOAT, + DOUBLE, + INTEGER, + LONG, + STRING, + CLASS, + ENUM, + ANNOTATION, + FLOAT_ARRAY, + DOUBLE_ARRAY, + INTEGER_ARRAY, + LONG_ARRAY, + STRING_ARRAY, + CLASS_ARRAY, + ENUM_ARRAY, + ANNOTATION_ARRAY, + /** + * Any kind of single value. + */ + SINGLE_VALUE, + /** + * Any kind of array value. + */ + ARRAY + } + + AttributeType[] value(); + +} diff --git a/constraints/constraint-impl/pom.xml b/constraints/constraint-impl/pom.xml new file mode 100644 index 00000000..cdbf434f --- /dev/null +++ b/constraints/constraint-impl/pom.xml @@ -0,0 +1,138 @@ + + 4.0.0 + + aptk-constraint-impl + jar + + + io.toolisticon.aptk + extension-parent + 0.22.12-SNAPSHOT + + + aptk-constraint-impl + + + + + + + io.toolisticon.aptk + aptk-constraint-api + + + + io.toolisticon.aptk + aptk-compilermessages-api + + + + io.toolisticon.aptk + aptk-annotationwrapper-api + + + + io.toolisticon.aptk + aptk-tools + + + + + + junit + junit + ${junit.version} + provided + + + + org.hamcrest + hamcrest-library + ${hamcrest.version} + provided + + + + io.toolisticon.cute + cute + + + + io.toolisticon.spiap + spiap-api + + + + + + + + + + + + maven-compiler-plugin + + ${java.compile.source.version} + ${java.compile.target.version} + + + io.toolisticon.spiap + spiap-processor + ${spiap.version} + + + io.toolisticon.aptk + aptk-annotationwrapper-processor + ${project.version} + + + io.toolisticon.aptk + aptk-compilermessages-processor + ${project.version} + + + + + + + maven-enforcer-plugin + + + enforce + + enforce + + + + + [3.0.4,) + + + ${java.version} + + + false + + * + + + io.toolisticon.aptk:* + *:*:*:*:test:* + *:*:*:*:provided:* + + + + + + + + + + + + + + + diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationAttributeConstraints.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationAttributeConstraints.java new file mode 100644 index 00000000..5c880672 --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationAttributeConstraints.java @@ -0,0 +1,26 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.tools.wrapper.AnnotationMirrorWrapper; + +import javax.lang.model.element.AnnotationMirror; +import java.util.ArrayList; +import java.util.List; + +class AnnotationAttributeConstraints { + + private final String attributeName; + private final List constraints; + + AnnotationAttributeConstraints(String attributeNumber,List constraints) { + this.attributeName = attributeNumber; + this.constraints = constraints; + } + + String getAttributeName() { + return attributeName; + } + + List getConstraints() { + return constraints; + } +} diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraints.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraints.java new file mode 100644 index 00000000..5fdcc37c --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/AnnotationConstraints.java @@ -0,0 +1,48 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.tools.wrapper.AnnotationMirrorWrapper; +import io.toolisticon.aptk.tools.wrapper.TypeElementWrapper; + +import java.util.ArrayList; +import java.util.List; + +class AnnotationConstraints { + + private final TypeElementWrapper annotationTypeElement; + private final List constraintsOnAnnotationType = new ArrayList<>(); + private final List constraintsOnAnnotationAttributes = new ArrayList<>(); + + AnnotationConstraints(TypeElementWrapper annotationTypeElement) { + + this.annotationTypeElement = annotationTypeElement; + + } + + void addConstraintOnType(AnnotationMirrorWrapper annotationMirror) { + if (annotationMirror != null) { + constraintsOnAnnotationType.add(annotationMirror); + } + } + + void addConstraintOnType(AnnotationAttributeConstraints annotationAttributeConstraints) { + if (annotationAttributeConstraints != null) { + constraintsOnAnnotationAttributes.add(annotationAttributeConstraints); + } + } + + public TypeElementWrapper getAnnotationTypeElement() { + return annotationTypeElement; + } + + public List getConstraintsOnAnnotationType() { + return constraintsOnAnnotationType; + } + + public List getConstraintsOnAnnotationAttributes() { + return constraintsOnAnnotationAttributes; + } + + public boolean hasConstraints () { + return constraintsOnAnnotationType.size() > 0 || constraintsOnAnnotationAttributes.size() > 0; + } +} diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/BasicConstraints.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/BasicConstraints.java new file mode 100644 index 00000000..73c0e7a6 --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/BasicConstraints.java @@ -0,0 +1,201 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.compilermessage.api.DeclareCompilerMessage; +import io.toolisticon.aptk.compilermessage.api.DeclareCompilerMessageCodePrefix; +import io.toolisticon.aptk.tools.AnnotationUtils; +import io.toolisticon.aptk.tools.ElementUtils; +import io.toolisticon.aptk.tools.wrapper.AnnotationMirrorWrapper; +import io.toolisticon.aptk.tools.wrapper.ElementWrapper; +import io.toolisticon.aptk.tools.wrapper.TypeElementWrapper; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.ServiceLoader; + +@DeclareCompilerMessageCodePrefix("BASIC_CONSTRAINTS") +@DeclareCompilerMessage(code = "BASE_002", enumValueName = "BASE_ERROR_MUST_BE_PLACE_ON_ANNOTATION_TYPE", message = "Constraint must be placed on annotation type", processorClass = BasicConstraints.class) +@DeclareCompilerMessage(code = "BASE_003", enumValueName = "BASE_ERROR_MUST_BE_PLACE_ON_ANNOTATION_ATTRIBUTE", message = "Constraint must be placed on annotation attribute", processorClass = BasicConstraints.class) +@DeclareCompilerMessage(code = "BASE_004", enumValueName = "BASE_WARNING_CONSTRAINT_SPI_IMPLEMENTATION_NOT_FOUND", message = "Couldn't find and apply annotation constraint implementation for constraint ${0} in annotation ${1}.", processorClass = BasicConstraints.class) +public class BasicConstraints { + + private static BasicConstraints INSTANCE = null; + + + private final Map annotationConstraintSpiMap; + private final Map onAnnotationConstraintsLUT = new HashMap<>(); + + private final Map manualConstraintsLUT; + + + + public BasicConstraints(Map annotationConstraintSpiMap, final Map manualConstraintSpiMap) { + this.annotationConstraintSpiMap = annotationConstraintSpiMap; + this.manualConstraintsLUT = manualConstraintSpiMap; + } + + public boolean checkForConstraints(ElementWrapper elementWrapper) { + + boolean result = true; + + // must determine constraints of all annotations of passed Element if not already done + for (AnnotationMirrorWrapper annotationMirror : elementWrapper.getAnnotationMirrors()) { + String annotationFQN = annotationMirror.asTypeMirror().getQualifiedName(); + + // Check for manual constraints + ManualConstraintSpi manualConstraintSpi = manualConstraintsLUT.get(annotationFQN); + if (manualConstraintSpi != null) { + manualConstraintSpi.checkManualConstraints(elementWrapper.unwrap(),elementWrapper.getAnnotationMirror(annotationFQN).get().unwrap()); + } + + + + + AnnotationConstraints annotationConstraints = onAnnotationConstraintsLUT.get(annotationFQN); + + if (annotationConstraints == null) { + + // annotation hasn't been processed before so determine constraints + annotationConstraints = determineConstraints(annotationMirror.getAnnotationTypeAsWrappedTypeElement()); + onAnnotationConstraintsLUT.put(annotationFQN, annotationConstraints); + + } + + // now we need to check the constraint + // on type + for (AnnotationMirrorWrapper constraintAnnotation : annotationConstraints.getConstraintsOnAnnotationType()) { + + AnnotationConstraintSpi annotationConstraintSpi = annotationConstraintSpiMap.get(constraintAnnotation.getAnnotationType().toString()); + + if (annotationConstraintSpi != null) { + result = result & annotationConstraintSpi.checkConstraints(elementWrapper.unwrap(), annotationMirror.unwrap(), constraintAnnotation.unwrap(), null); + } else { + elementWrapper.compilerMessage(annotationMirror.unwrap()).asWarning().write(BasicConstraintsCompilerMessages.BASE_WARNING_CONSTRAINT_SPI_IMPLEMENTATION_NOT_FOUND, constraintAnnotation.getAnnotationType().toString(), constraintAnnotation.asTypeMirror().getQualifiedName()); + } + } + + // on annotation attribute + for (AnnotationAttributeConstraints annotationAttributeConstraints : annotationConstraints.getConstraintsOnAnnotationAttributes()) { + + // check all constraints on attribute + for (AnnotationMirrorWrapper constraintAnnotation : annotationAttributeConstraints.getConstraints()) { + + AnnotationConstraintSpi annotationConstraintSpi = annotationConstraintSpiMap.get(((TypeElement) constraintAnnotation.getAnnotationType().asElement()).getQualifiedName().toString()); + + if (annotationConstraintSpi != null) { + result = result & annotationConstraintSpi.checkConstraints(elementWrapper.unwrap(), annotationMirror.unwrap(), constraintAnnotation.unwrap(), annotationAttributeConstraints.getAttributeName()); + } else { + elementWrapper.compilerMessage(annotationMirror.unwrap()).asWarning().write(BasicConstraintsCompilerMessages.BASE_WARNING_CONSTRAINT_SPI_IMPLEMENTATION_NOT_FOUND, constraintAnnotation.getAnnotationType().toString(), constraintAnnotation.asTypeMirror().getQualifiedName()); + } + + + } + + + } + + + } + + + return result; + + } + + + private AnnotationConstraints determineConstraints(TypeElementWrapper annotationTypeElement) { + + // This will be done in two phases + // PHASE 1 : check for constraints on annotation type + AnnotationConstraints annotationConstraints = new AnnotationConstraints(annotationTypeElement); + for (AnnotationMirrorWrapper annotation : annotationTypeElement.getAnnotationMirrors()) { + + if (hasConstraintAnnotationOnTypeElement(annotation)) { + annotationConstraints.addConstraintOnType(annotation); + } + + } + + + // PHASE 2 : check for constraints on Annotation attributes + List executableElements = ElementUtils.CastElement.castElementList(ElementUtils.AccessEnclosedElements.getEnclosedElementsOfKind(annotationTypeElement.unwrap(), ElementKind.METHOD), ExecutableElement.class); + + for (ExecutableElement executableElement : executableElements) { + String name = executableElement.getSimpleName().toString(); + + List detectedConstraints = new ArrayList<>(); + + for (AnnotationMirror annotationMirror : executableElement.getAnnotationMirrors()) { + if (annotationMirror.getAnnotationType().asElement().getAnnotation(Constraint.class) != null) { + detectedConstraints.add(AnnotationMirrorWrapper.wrap(annotationMirror)); + + } + } + + + if (detectedConstraints.size() > 0) { + // detected constraint + annotationConstraints.addConstraintOnType(new AnnotationAttributeConstraints(name, detectedConstraints)); + } + + } + + + return annotationConstraints; + } + + /** + * Check if annotation is annotated with Constraint annotation. + * + * @param annotationMirror the annotation to check + * @return true if annotation has a constraint + */ + protected boolean hasConstraintAnnotationOnTypeElement(AnnotationMirrorWrapper annotationMirror) { + + return AnnotationUtils.getAnnotationMirror(annotationMirror.getAnnotationType().asElement(), Constraint.class) != null; + + } + + + static BasicConstraints getInstance() { + + Map annotationConstraintSpiMap = new HashMap(); + + ServiceLoader services = ServiceLoader.load(AnnotationConstraintSpi.class, BasicConstraints.class.getClassLoader()); + + for (AnnotationConstraintSpi annotationConstraintSpi : services) { + annotationConstraintSpiMap.put(annotationConstraintSpi.getSupportedAnnotation().getCanonicalName(), annotationConstraintSpi); + } + + + Map manualConstraintSpiMap = new HashMap<>(); + ServiceLoader manualConstraintServices = ServiceLoader.load(ManualConstraintSpi.class, BasicConstraints.class.getClassLoader()); + + for (ManualConstraintSpi manualConstraintSpi : manualConstraintServices) { + manualConstraintSpiMap.put(manualConstraintSpi.getSupportedAnnotation().getCanonicalName(), manualConstraintSpi); + } + return new BasicConstraints(annotationConstraintSpiMap, manualConstraintSpiMap); + } + + public static boolean checkConstraints(Element element) { + + return checkConstraints(ElementWrapper.wrap(element)); + + } + + public static boolean checkConstraints(ElementWrapper element) { + + if (INSTANCE == null) { + INSTANCE = getInstance(); + } + + return INSTANCE.checkForConstraints(element); + + } +} diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfTypeConstraintImpl.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfTypeConstraintImpl.java new file mode 100644 index 00000000..9e9d86f4 --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnAnnotationAttributeOfTypeConstraintImpl.java @@ -0,0 +1,75 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.tools.MessagerUtils; +import io.toolisticon.aptk.tools.wrapper.ElementWrapper; +import io.toolisticon.aptk.tools.wrapper.ExecutableElementWrapper; +import io.toolisticon.spiap.api.SpiService; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import java.lang.annotation.Annotation; + +@SpiService(value = AnnotationConstraintSpi.class) +public class OnAnnotationAttributeOfTypeConstraintImpl implements AnnotationConstraintSpi { + + @Override + public Class getSupportedAnnotation() { + return OnAnnotationAttributeOfType.class; + } + + + @Override + public boolean checkConstraints(Element annotatedElement, AnnotationMirror annotationMirrorToCheck, AnnotationMirror constraintAnnotationMirror, String attributeNameToBeCheckedByConstraint) { + + if (!ElementWrapper.wrap(annotatedElement).isExecutableElement()) { + // TODO: must send warning that constraint is ignored because its not placed correctly + return true; + } + + // It's safe to cast now + ExecutableElementWrapper attributeElementWrapper = ExecutableElementWrapper.wrap((ExecutableElement) annotatedElement); + + // Now check if annotation + OnAnnotationAttributeOfTypeWrapper onAnnotation = OnAnnotationAttributeOfTypeWrapper.wrap(constraintAnnotationMirror); + + boolean foundMatchingElementType = false; + loop: + for (OnAnnotationAttributeOfType.AttributeType targetAttributeType : onAnnotation.value()) { + + switch (targetAttributeType) { + + case LONG: { + if ( + attributeElementWrapper.getReturnType().isPrimitive() + && attributeElementWrapper.getReturnType().getSimpleName().equals(long.class.getSimpleName()) + ) { + foundMatchingElementType = true; + break loop; + } + break; + } + case STRING: { + if ( + attributeElementWrapper.getReturnType().getQualifiedName().equals(String.class.getCanonicalName()) + ) { + foundMatchingElementType = true; + break loop; + } + break; + } + + } + + + } + + // trigger error message if matching type hasn't been found + if (!foundMatchingElementType) { + MessagerUtils.error(annotatedElement, annotationMirrorToCheck, BasicConstraintsCompilerMessages.ON_ERROR_WRONG_USAGE, UtilityFunctions.getSimpleName(constraintAnnotationMirror), UtilityFunctions.getSimpleName(annotationMirrorToCheck), onAnnotation.value()); + return false; + } + + return true; + } +} \ No newline at end of file diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnConstraintImpl.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnConstraintImpl.java new file mode 100644 index 00000000..962c0a33 --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/OnConstraintImpl.java @@ -0,0 +1,216 @@ +package io.toolisticon.aptk.constraints; + + +import io.toolisticon.aptk.compilermessage.api.DeclareCompilerMessage; +import io.toolisticon.aptk.tools.ElementUtils; +import io.toolisticon.aptk.tools.MessagerUtils; +import io.toolisticon.aptk.tools.wrapper.ElementWrapper; +import io.toolisticon.spiap.api.SpiService; +import io.toolisticon.spiap.api.SpiServices; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@SpiServices({ + @SpiService(value = AnnotationConstraintSpi.class), + @SpiService(value = ManualConstraintSpi.class) +}) +@DeclareCompilerMessage(code = "ON_001", enumValueName = "ON_ERROR_MATCHING_TARGET_NOT_FOUND", message = "Couldn't find matching target value for On Location ${0}", processorClass = BasicConstraints.class) +@DeclareCompilerMessage(code = "ON_002", enumValueName = "ON_ERROR_TARGET_ANNOTATION_NOT_FOUND", message = "No target annotation has been found. Please either remove On Constraint annotation or add matching Target annotation.", processorClass = BasicConstraints.class) +@DeclareCompilerMessage(code = "ON_003", enumValueName = "ON_ERROR_WRONG_USAGE", message = "'${0}' Constraint violated: Annotation ${1} must be placed on either ${2}", processorClass = BasicConstraints.class) + +public class OnConstraintImpl implements AnnotationConstraintSpi, ManualConstraintSpi { + + @Override + public Class getSupportedAnnotation() { + return On.class; + } + + @Override + public void checkManualConstraints(Element annotatedElement, AnnotationMirror constraintAnnotationMirror) { + + ElementWrapper annotatedElementWrapper = ElementWrapper.wrap(annotatedElement); + + if (!annotatedElementWrapper.isAnnotation()) { + MessagerUtils.error(annotatedElement, constraintAnnotationMirror, BasicConstraintsCompilerMessages.BASE_ERROR_MUST_BE_PLACE_ON_ANNOTATION_TYPE); + } + + // Now check if annotation value matches + Target target = annotatedElement.getAnnotation(Target.class); + OnWrapper onAnnotation = OnWrapper.wrap(constraintAnnotationMirror); + + + if (target != null) { + + for (On.Location location : onAnnotation.value()) { + + boolean foundLocation = false; + + for (ElementType elementType : target.value()) { + switch (location) { + case CLASS: + case INTERFACE: + case ENUM: { + if (ElementType.TYPE.equals(elementType)) { + foundLocation = true; + } + break; + } + case ANNOTATION: { + if (ElementType.TYPE.equals(elementType) || ElementType.ANNOTATION_TYPE.equals(elementType)) { + foundLocation = true; + } + break; + } + case METHOD: + case ANNOTATION_ATTRIBUTE: { + if (ElementType.METHOD.equals(elementType)) { + foundLocation = true; + } + break; + } + case CONSTRUCTOR: { + if (ElementType.CONSTRUCTOR.equals(elementType)) { + foundLocation = true; + } + break; + } + case FIELD: { + if (ElementType.FIELD.equals(elementType)) { + foundLocation = true; + } + break; + } + case PACKAGE: { + if (ElementType.PACKAGE.equals(elementType)) { + foundLocation = true; + } + break; + } + case PARAMETER: + case CONSTRUCTOR_PARAMETER: + case METHOD_PARAMETER: { + if (ElementType.PARAMETER.equals(elementType)) { + foundLocation = true; + } + break; + } + + } + + // skip searching if match has been found + if (foundLocation) { + break; + } + } + + if (!foundLocation) { + MessagerUtils.error(annotatedElement, constraintAnnotationMirror, BasicConstraintsCompilerMessages.ON_ERROR_MATCHING_TARGET_NOT_FOUND, location.toString()); + } + + } + + } else { + MessagerUtils.error(annotatedElement, BasicConstraintsCompilerMessages.ON_ERROR_TARGET_ANNOTATION_NOT_FOUND); + } + + + } + + + @Override + public boolean checkConstraints(Element annotatedElement, AnnotationMirror annotationMirrorToCheck, AnnotationMirror constraintAnnotationMirror, String attributeNameToBeCheckedByConstraint) { + + + // Now check if annotation + + OnWrapper onAnnotation = OnWrapper.wrap(constraintAnnotationMirror); + + boolean foundMatchingElementType = false; + for (On.Location location : onAnnotation.value()) { + + switch (location) { + case ANNOTATION_ATTRIBUTE: { + // must be placed on method of annotation type + if (ElementUtils.CheckKindOfElement.isMethod(annotatedElement) && ElementUtils.CheckKindOfElement.isAnnotation(annotatedElement.getEnclosingElement())) { + foundMatchingElementType = true; + } + break; + } + case PACKAGE: { + // must be placed on Package + foundMatchingElementType = ElementUtils.CheckKindOfElement.isPackage(annotatedElement); + break; + } + case ANNOTATION: { + // must be placed on Annotation Type + foundMatchingElementType = ElementUtils.CheckKindOfElement.isAnnotation(annotatedElement); + break; + } + case CLASS: { + // must be placed on Type(Class) + foundMatchingElementType = ElementUtils.CheckKindOfElement.isClass(annotatedElement); + break; + } + case INTERFACE: { + // must be placed on Interface + foundMatchingElementType = ElementUtils.CheckKindOfElement.isInterface(annotatedElement); + break; + } + case ENUM: { + // must be placed on Enum + foundMatchingElementType = ElementUtils.CheckKindOfElement.isEnum(annotatedElement); + break; + } + case CONSTRUCTOR: { + // must be placed on constructor + foundMatchingElementType = ElementUtils.CheckKindOfElement.isConstructor(annotatedElement); + break; + } + case METHOD: { + // must be placed on method, but not on annotation attribute + if (ElementUtils.CheckKindOfElement.isMethod(annotatedElement) && !ElementUtils.CheckKindOfElement.isAnnotation(annotatedElement.getEnclosingElement())) { + foundMatchingElementType = true; + } + break; + } + case FIELD: { + // must be placed on field + foundMatchingElementType = ElementUtils.CheckKindOfElement.isField(annotatedElement); + break; + } + case PARAMETER: { + // must be placed on Parameter + foundMatchingElementType = ElementUtils.CheckKindOfElement.isParameter(annotatedElement); + break; + } + case METHOD_PARAMETER: { + // must be placed on Parameter + foundMatchingElementType = ElementUtils.CheckKindOfElement.isParameter(annotatedElement) && ElementUtils.CheckKindOfElement.isMethod(annotatedElement.getEnclosingElement()); + break; + } + case CONSTRUCTOR_PARAMETER: { + // must be placed on Parameter + foundMatchingElementType = ElementUtils.CheckKindOfElement.isParameter(annotatedElement) && ElementUtils.CheckKindOfElement.isConstructor(annotatedElement.getEnclosingElement()); + break; + } + } + // skip search if matching ElementType has been detected + if (foundMatchingElementType) { + break; + } + + } + + // trigger error message if matching type hasn't been found + if (!foundMatchingElementType) { + MessagerUtils.error(annotatedElement, annotationMirrorToCheck, BasicConstraintsCompilerMessages.ON_ERROR_WRONG_USAGE, UtilityFunctions.getSimpleName(constraintAnnotationMirror), UtilityFunctions.getSimpleName(annotationMirrorToCheck), onAnnotation.value()); + return false; + } + + return true; + } +} \ No newline at end of file diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/UtilityFunctions.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/UtilityFunctions.java new file mode 100644 index 00000000..cf8ef54f --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/UtilityFunctions.java @@ -0,0 +1,78 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.tools.AnnotationUtils; +import io.toolisticon.aptk.tools.ElementUtils; + +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import java.lang.annotation.Annotation; + +final class UtilityFunctions { + + /** + * Hidden. + */ + private UtilityFunctions() { + + } + + /** + * Get the annotation value of an annotation attribute. + * @param annotationMirrorToCheck the annotation to get the attribute from + * @param constraintAttributeName the name of the attribute to get + * @return the AnnotationValue + */ + public static AnnotationValue getAnnotationValueOfAttribute(AnnotationMirror annotationMirrorToCheck, String constraintAttributeName) { + return AnnotationUtils.getAnnotationValueOfAttribute(annotationMirrorToCheck, constraintAttributeName); + } + + /** + * Get the annotation value of an annotation attribute. + * @param annotationMirrorToCheck the annotation to get the attribute from + * @param constraintAttributeName the name of the attribute to get + * @return the AnnotationValue + */ + public static AnnotationValue getAnnotationValueOfAttributeWithDefaults(AnnotationMirror annotationMirrorToCheck, String constraintAttributeName) { + return AnnotationUtils.getAnnotationValueOfAttributeWithDefaults(annotationMirrorToCheck, constraintAttributeName); + } + + + /** + * Get the constraint annotation from an AnnotationMirror. + * @param annotationMirrorToCheck the AnnotationMirror to get the constraint annotation from + * @param constraintAnnotationType the type of the constraint annotation to get + * @param The Type of the constraint + * @return the constraint annotation + */ + public static T getConstraintAnnotationOfAnnotation(AnnotationMirror annotationMirrorToCheck, Class constraintAnnotationType) { + return annotationMirrorToCheck.getAnnotationType().asElement().getAnnotation(constraintAnnotationType); + } + + public static T getConstraintAnnotationOfAnnotationAttribute(AnnotationMirror annotationMirrorToCheck, String constraintAttributeName, Class constraintAnnotationType) { + T constraintAnnotation = null; + for (ExecutableElement executableElement : annotationMirrorToCheck.getElementValues().keySet()) { + + if (executableElement.getSimpleName().toString().equals(constraintAttributeName)) { + constraintAnnotation = executableElement.getAnnotation(constraintAnnotationType); + break; + } + + } + return constraintAnnotation; + } + + public static boolean isPlacedOnAnnotationType(Element element) { + return ElementUtils.CheckKindOfElement.isAnnotation(element); + } + + public static boolean isPlacedOnAnnotationAttribute(Element element) { + return ElementUtils.CheckKindOfElement.isMethod(element) && ElementUtils.CheckKindOfElement.isAnnotation(element.getEnclosingElement()); + } + + public static String getSimpleName (AnnotationMirror annotationMirror) { + return annotationMirror.getAnnotationType().asElement().getSimpleName().toString(); + } + +} diff --git a/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/package-info.java b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/package-info.java new file mode 100644 index 00000000..378a5cd0 --- /dev/null +++ b/constraints/constraint-impl/src/main/java/io/toolisticon/aptk/constraints/package-info.java @@ -0,0 +1,11 @@ +/** + * This package contains the fluapigen annotation processor. + */ +@AnnotationWrapper( + value = { + On.class, + OnAnnotationAttributeOfType.class + }) +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.annotationwrapper.api.AnnotationWrapper; diff --git a/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/BasicConstraintsTest.java b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/BasicConstraintsTest.java new file mode 100644 index 00000000..1d272d02 --- /dev/null +++ b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/BasicConstraintsTest.java @@ -0,0 +1,102 @@ +package io.toolisticon.aptk.constraints; + +import io.toolisticon.aptk.common.ToolingProvider; +import io.toolisticon.aptk.tools.MessagerUtils; +import io.toolisticon.cute.Cute; +import io.toolisticon.cute.PassIn; +import org.hamcrest.MatcherAssert; +import org.junit.Before; +import org.junit.Test; + +public class BasicConstraintsTest { + + @Before + public void init() { + MessagerUtils.setPrintMessageCodes(true); + } + + @PassIn + @JustOnInterfacesAnnotation + public interface JustInterfaceHappyPath { + + } + + @PassIn + @JustOnInterfacesAnnotation + public enum JustInterfaceOnEnum { + + } + + + @Test + public void testBasicConstraint_happyPath() { + Cute.unitTest().when().passInElement().fromClass(JustInterfaceHappyPath.class).intoUnitTest((procEnv, e) -> { + + ToolingProvider.setTooling(procEnv); + try { + MatcherAssert.assertThat("Expect true", BasicConstraints.checkConstraints(e)); + } finally { + ToolingProvider.clearTooling(); + } + + }).thenExpectThat().compilationSucceeds().executeTest(); + } + + @Test + public void testBasicConstraint_failure_onEnum() { + Cute.unitTest().when().passInElement().fromClass(JustInterfaceOnEnum.class).intoUnitTest((procEnv, e) -> { + + ToolingProvider.setTooling(procEnv); + try { + MatcherAssert.assertThat("Expect false", !BasicConstraints.checkConstraints(e)); + } finally { + ToolingProvider.clearTooling(); + } + + }).thenExpectThat().compilationFails().andThat().compilerMessage().ofKindError().contains(BasicConstraintsCompilerMessages.ON_ERROR_WRONG_USAGE.getCode()).executeTest(); + } + + @interface JustStringAndIntegersHappyPath { + + @PassIn @JustOnStringAttributeAndIntegers String value(); + + @JustOnStringAttributeAndIntegers int secondAttribute(); + + } + + @Test + public void justOnStringAttributeAndIntegers_happyPath() { + Cute.unitTest().when().passInElement().fromClass(JustStringAndIntegersHappyPath.class).intoUnitTest((procEnv, e) -> { + + ToolingProvider.setTooling(procEnv); + try { + MatcherAssert.assertThat("Expect true", BasicConstraints.checkConstraints(e)); + } finally { + ToolingProvider.clearTooling(); + } + + }).thenExpectThat().compilationSucceeds().executeTest(); + } + + + @interface JustStringAndIntegersFailure { + + @PassIn @JustOnStringAttributeAndIntegers Class value(); + + + } + + @Test + public void justOnStringAttributeAndIntegers_failure() { + Cute.unitTest().when().passInElement().fromClass(JustStringAndIntegersFailure.class).intoUnitTest((procEnv, e) -> { + + ToolingProvider.setTooling(procEnv); + try { + MatcherAssert.assertThat("Expect false", !BasicConstraints.checkConstraints(e)); + } finally { + ToolingProvider.clearTooling(); + } + + }).thenExpectThat().compilationFails().andThat().compilerMessage().ofKindError().contains(BasicConstraintsCompilerMessages.ON_ERROR_WRONG_USAGE.getCode()).executeTest(); + } +} diff --git a/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnInterfacesAnnotation.java b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnInterfacesAnnotation.java new file mode 100644 index 00000000..63c91c79 --- /dev/null +++ b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnInterfacesAnnotation.java @@ -0,0 +1,13 @@ +package io.toolisticon.aptk.constraints; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@On(On.Location.INTERFACE) +public @interface JustOnInterfacesAnnotation { + +} diff --git a/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnStringAttributeAndIntegers.java b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnStringAttributeAndIntegers.java new file mode 100644 index 00000000..a87a8f13 --- /dev/null +++ b/constraints/constraint-impl/src/test/java/io/toolisticon/aptk/constraints/JustOnStringAttributeAndIntegers.java @@ -0,0 +1,6 @@ +package io.toolisticon.aptk.constraints; + +@OnAnnotationAttributeOfType({OnAnnotationAttributeOfType.AttributeType.STRING, OnAnnotationAttributeOfType.AttributeType.INTEGER}) +public @interface JustOnStringAttributeAndIntegers { + +} diff --git a/constraints/constraint-processor/pom.xml b/constraints/constraint-processor/pom.xml new file mode 100644 index 00000000..4ef9eab0 --- /dev/null +++ b/constraints/constraint-processor/pom.xml @@ -0,0 +1,145 @@ + + + 4.0.0 + + aptk-constraint-processor + jar + + + io.toolisticon.aptk + aptk-annotationwrapper-parent + 0.22.12-SNAPSHOT + + + aptk-constraint-processor + + + + + + io.toolisticon.aptk + aptk-constraint-api + + + + io.toolisticon.aptk + aptk-constraint-impl + + + + + io.toolisticon.aptk + aptk-tools + + + + + io.toolisticon.spiap + spiap-api + + + + + io.toolisticon.cute + cute + + + + io.toolisticon.aptk + aptk-cute + + + + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + + + io.toolisticon.aptk:aptk-tools + io.toolisticon.aptk:aptk-common + io.toolisticon.aptk:aptk-templating + + + + true + + + + .txt + + + + + + io.toolisticon.aptk.tools + + io.toolisticon.aptk.annotationwrapper._3rdparty.io.toolisticon.aptk.tools + + + + io.toolisticon.aptk.common + + io.toolisticon.aptk.annotationwrapper._3rdparty.io.toolisticon.aptk.common + + + + io.toolisticon.aptk.templating + + io.toolisticon.aptk.annotationwrapper._3rdparty.io.toolisticon.aptk.templating + + + + + + + + + + + + + + maven-compiler-plugin + + ${java.compile.source.version} + ${java.compile.target.version} + + + io.toolisticon.spiap + spiap-processor + ${spiap.version} + + + io.toolisticon.spiap + spiap-api + ${spiap.version} + + + + + + + + + + + + diff --git a/constraints/constraint-processor/src/main/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessor.java b/constraints/constraint-processor/src/main/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessor.java new file mode 100644 index 00000000..735b2fa2 --- /dev/null +++ b/constraints/constraint-processor/src/main/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessor.java @@ -0,0 +1,49 @@ +package io.toolisticon.aptk.constraints.processor; + +import io.toolisticon.aptk.constraints.BasicConstraints; +import io.toolisticon.aptk.tools.AbstractAnnotationProcessor; +import io.toolisticon.spiap.api.SpiService; + +import javax.annotation.processing.Processor; +import javax.annotation.processing.RoundEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import java.util.Collections; +import java.util.Set; + +/** + * Annotation processor to generate wrapper class that eases reading of annotations attributes. + * This circumvents the need to read attribute values by AnnotationMirror/Value api. + */ +@SpiService(Processor.class) +public class ConstraintProcessor extends AbstractAnnotationProcessor { + + /** + * The supported annotation types. + */ + private final static Set SUPPORTED_ANNOTATIONS = Collections.singleton("*"); + + @Override + public Set getSupportedAnnotationTypes() { + return SUPPORTED_ANNOTATIONS; + } + + + @Override + public boolean processAnnotations(Set annotations, RoundEnvironment roundEnv) { + + if (!roundEnv.processingOver()) { + for (TypeElement typeElement : annotations) { + + for (Element annotatedElements : roundEnv.getElementsAnnotatedWith(typeElement)) { + + BasicConstraints.checkConstraints(annotatedElements); + + } + + } + } + + return false; + } +} \ No newline at end of file diff --git a/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessorTest.java b/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessorTest.java new file mode 100644 index 00000000..cd9e69e4 --- /dev/null +++ b/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/ConstraintProcessorTest.java @@ -0,0 +1,50 @@ +package io.toolisticon.aptk.constraints.processor; + +import io.toolisticon.aptk.constraints.BasicConstraintsCompilerMessages; +import io.toolisticon.aptk.tools.MessagerUtils; +import io.toolisticon.cute.Cute; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit test for {@link ConstraintProcessor}. + */ +public class ConstraintProcessorTest { + @Before + public void init() { + MessagerUtils.setPrintMessageCodes(true); + + } + + + @Test + public void test_happyPath() { + Cute.blackBoxTest().given().processor(ConstraintProcessor.class) + .andSourceFiles("/testcase/happyPath/HappyPath.java") + .whenCompiled() + .thenExpectThat() + .compilationSucceeds() + .executeTest(); + } + + @Test + public void test_invalidUsageOfOn() { + Cute.blackBoxTest().given().processor(ConstraintProcessor.class) + .andSourceFiles("/testcase/invalidUsageOnAnnotation/InvalidUsage.java") + .whenCompiled() + .thenExpectThat() + .compilationFails() + .andThat().compilerMessage().ofKindError().contains(BasicConstraintsCompilerMessages.ON_ERROR_WRONG_USAGE.getCode()) + .executeTest(); + } + + @Test + public void test_manualConstraints_happyPath() { + Cute.blackBoxTest().given().processor(ConstraintProcessor.class) + .andSourceFiles("/testcase/manualConstraintsHappyPath/HappyPath.java") + .whenCompiled() + .thenExpectThat() + .compilationSucceeds() + .executeTest(); + } +} \ No newline at end of file diff --git a/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/TestAnnotation.java b/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/TestAnnotation.java new file mode 100644 index 00000000..fdf6a38b --- /dev/null +++ b/constraints/constraint-processor/src/test/java/io/toolisticon/aptk/constraints/processor/TestAnnotation.java @@ -0,0 +1,13 @@ +package io.toolisticon.aptk.constraints.processor; + +import io.toolisticon.aptk.constraints.On; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@On(On.Location.INTERFACE) +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) public @interface TestAnnotation { +} diff --git a/constraints/constraint-processor/src/test/resources/testcase/happyPath/HappyPath.java b/constraints/constraint-processor/src/test/resources/testcase/happyPath/HappyPath.java new file mode 100644 index 00000000..f6643dba --- /dev/null +++ b/constraints/constraint-processor/src/test/resources/testcase/happyPath/HappyPath.java @@ -0,0 +1,14 @@ +package io.toolisticon.aptk.tests; + +import io.toolisticon.aptk.constraints.On; +import io.toolisticon.aptk.constraints.processor.TestAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@TestAnnotation +public interface HappyPath { + +} \ No newline at end of file diff --git a/constraints/constraint-processor/src/test/resources/testcase/invalidUsageOnAnnotation/InvalidUsage.java b/constraints/constraint-processor/src/test/resources/testcase/invalidUsageOnAnnotation/InvalidUsage.java new file mode 100644 index 00000000..ee3c3a23 --- /dev/null +++ b/constraints/constraint-processor/src/test/resources/testcase/invalidUsageOnAnnotation/InvalidUsage.java @@ -0,0 +1,15 @@ +package io.toolisticon.aptk.tests; + + +import io.toolisticon.aptk.constraints.On; +import io.toolisticon.aptk.constraints.processor.TestAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@TestAnnotation +public enum InvalidUsage { + TEST; +} \ No newline at end of file diff --git a/constraints/constraint-processor/src/test/resources/testcase/manualConstraintsHappyPath/HappyPath.java b/constraints/constraint-processor/src/test/resources/testcase/manualConstraintsHappyPath/HappyPath.java new file mode 100644 index 00000000..4024f9e3 --- /dev/null +++ b/constraints/constraint-processor/src/test/resources/testcase/manualConstraintsHappyPath/HappyPath.java @@ -0,0 +1,16 @@ +package io.toolisticon.aptk.tests; + + +import io.toolisticon.aptk.constraints.On; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@On(On.Location.ANNOTATION) +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface HappyPath { + +} \ No newline at end of file diff --git a/constraints/pom.xml b/constraints/pom.xml new file mode 100644 index 00000000..5c8c05ce --- /dev/null +++ b/constraints/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + constraint-parent + pom + + + io.toolisticon.aptk + aptk-parent + 0.22.12-SNAPSHOT + + + constraint-parent + + + constraint-api + constraint-impl + constraint-processor + + + + diff --git a/extensions/pom.xml b/extensions/pom.xml index 60a8ebbd..e277eb5f 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -12,7 +12,6 @@ extension-parent - diff --git a/pom.xml b/pom.xml index 9fed36f5..bd046da4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ tools example templating + constraints extensions @@ -87,7 +88,7 @@ 0.11.0 - 1.0.0_RC1 + 1.1.0 4.13.2 @@ -689,8 +690,6 @@ - - junit @@ -747,6 +746,25 @@ ${project.version} + + io.toolisticon.aptk + aptk-compilermessages-api + ${project.version} + + + + io.toolisticon.aptk + aptk-constraint-api + ${project.version} + + + + io.toolisticon.aptk + aptk-constraint-impl + ${project.version} + + + io.toolisticon.aptk aptk-cute diff --git a/tools/hs_err_pid34093.log b/tools/hs_err_pid34093.log new file mode 100644 index 00000000..ede60572 --- /dev/null +++ b/tools/hs_err_pid34093.log @@ -0,0 +1,920 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x000000010e588788, pid=34093, tid=9731 +# +# JRE version: Java(TM) SE Runtime Environment (10.0.1+10) (build 10.0.1+10) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0.1+10, mixed mode, tiered, compressed oops, g1 gc, bsd-amd64) +# Problematic frame: +# V [libjvm.dylib+0x3f6788] jfr_set_memory_size+0xe +# +# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again +# +# If you would like to submit a bug report, please visit: +# http://bugreport.java.com/bugreport/crash.jsp +# The crash happened outside the Java Virtual Machine in native code. +# See problematic frame for where to report the bug. +# + +--------------- S U M M A R Y ------------ + +Command Line: -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=52749:/Applications/IntelliJ IDEA.app/Contents/bin -agentpath:/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/libasyncProfiler.so=start,jfr,event=cpu,interval=10ms,jfrsync=profile,cstack=no,file=/Users/tobiasstamann/All_in_annotationprocessor_2024_03_07_161414.jfr -Dfile.encoding=UTF-8 com.intellij.rt.junit.JUnitStarter -ideVersion5 @w@/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/idea_working_dirs_junit.tmp @/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/idea_junit.tmp -socket52748 + +Host: MacBookPro18,1 x86_64 2400 MHz, 10 cores, 16G, Darwin 23.3.0 +Time: Thu Mar 7 16:14:16 2024 CET elapsed time: 1 seconds (0d 0h 0m 1s) + +--------------- T H R E A D --------------- + +Current thread (0x00007f784e83c800): JavaThread "main" [_thread_in_native, id=9731, stack(0x000000030d6ca000,0x000000030d7ca000)] + +Stack: [0x000000030d6ca000,0x000000030d7ca000], sp=0x000000030d7c7c70, free space=1015k +Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [libjvm.dylib+0x3f6788] jfr_set_memory_size+0xe +j jdk.jfr.internal.JVM.setMemorySize(J)V+0 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.setMemorySize(J)V+4 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.reset()V+9 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.()V+38 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +V [libjvm.dylib+0x3d8c3e] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x216 +V [libjvm.dylib+0x3bb8f2] InstanceKlass::call_class_initializer(Thread*)+0x1c2 +V [libjvm.dylib+0x3bb1f0] InstanceKlass::initialize_impl(Thread*)+0x4cc +V [libjvm.dylib+0x511a1e] LinkResolver::resolve_static_call(CallInfo&, LinkInfo const&, bool, Thread*)+0x6c +V [libjvm.dylib+0x51356d] LinkResolver::resolve_invokestatic(CallInfo&, constantPoolHandle const&, int, Thread*)+0x35 +V [libjvm.dylib+0x3d00b4] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x25a +V [libjvm.dylib+0x3d0769] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x3d +j jdk.jfr.internal.JVM.()V+55 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +V [libjvm.dylib+0x3d8c3e] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x216 +V [libjvm.dylib+0x3bb8f2] InstanceKlass::call_class_initializer(Thread*)+0x1c2 +V [libjvm.dylib+0x3bb1f0] InstanceKlass::initialize_impl(Thread*)+0x4cc +V [libjvm.dylib+0x511a1e] LinkResolver::resolve_static_call(CallInfo&, LinkInfo const&, bool, Thread*)+0x6c +V [libjvm.dylib+0x51356d] LinkResolver::resolve_invokestatic(CallInfo&, constantPoolHandle const&, int, Thread*)+0x35 +V [libjvm.dylib+0x3d00b4] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x25a +V [libjvm.dylib+0x3d0769] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x3d +j jdk.jfr.internal.JVMSupport.checkAvailability()Z+16 jdk.jfr@10.0.1 +j jdk.jfr.internal.JVMSupport.()V+0 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +V [libjvm.dylib+0x3d8c3e] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x216 +V [libjvm.dylib+0x3bb8f2] InstanceKlass::call_class_initializer(Thread*)+0x1c2 +V [libjvm.dylib+0x3bb1f0] InstanceKlass::initialize_impl(Thread*)+0x4cc +V [libjvm.dylib+0x511a1e] LinkResolver::resolve_static_call(CallInfo&, LinkInfo const&, bool, Thread*)+0x6c +V [libjvm.dylib+0x51356d] LinkResolver::resolve_invokestatic(CallInfo&, constantPoolHandle const&, int, Thread*)+0x35 +V [libjvm.dylib+0x3d00b4] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x25a +V [libjvm.dylib+0x3d0769] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x3d +j jdk.jfr.FlightRecorder.addListener(Ljdk/jfr/FlightRecorderListener;)V+8 jdk.jfr@10.0.1 +j one.profiler.JfrSync.()V+7 +v ~StubRoutines::call_stub +V [libjvm.dylib+0x3d8c3e] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x216 +V [libjvm.dylib+0x3bb8f2] InstanceKlass::call_class_initializer(Thread*)+0x1c2 +V [libjvm.dylib+0x3bb1f0] InstanceKlass::initialize_impl(Thread*)+0x4cc +V [libjvm.dylib+0x4123cc] get_method_id(JNIEnv_*, _jclass*, char const*, char const*, bool, Thread*)+0x10e +V [libjvm.dylib+0x412542] jni_GetStaticMethodID+0x92 +C [libasyncProfiler.so+0x143b2] FlightRecorder::startMasterRecording(Arguments&)+0x3c2 +C [libasyncProfiler.so+0x13d74] FlightRecorder::start(Arguments&, bool)+0xf4 +C [libasyncProfiler.so+0x3fa2a] Profiler::start(Arguments&, bool)+0x81a +C [libasyncProfiler.so+0x42c27] Profiler::runInternal(Arguments&, std::__1::basic_ostream>&)+0x57 +C [libasyncProfiler.so+0x4321d] Profiler::run(Arguments&)+0x13d +C [libasyncProfiler.so+0x49fea] VM::VMInit(_jvmtiEnv*, JNIEnv_*, _jobject*)+0xca +V [libjvm.dylib+0x4d2c08] JvmtiExport::post_vm_initialized()+0x19a +V [libjvm.dylib+0x74a6eb] Threads::create_vm(JavaVMInitArgs*, bool*)+0x8a1 +V [libjvm.dylib+0x423301] JNI_CreateJavaVM+0x70 +C [java+0x45a8] JavaMain+0x113 +C [libsystem_pthread.dylib+0x6202] _pthread_start+0x63 +C [libsystem_pthread.dylib+0x1bab] thread_start+0xf +C 0x0000000000000000 + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +j jdk.jfr.internal.JVM.setMemorySize(J)V+0 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.setMemorySize(J)V+4 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.reset()V+9 jdk.jfr@10.0.1 +j jdk.jfr.internal.Options.()V+38 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +j jdk.jfr.internal.JVM.()V+55 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +j jdk.jfr.internal.JVMSupport.checkAvailability()Z+16 jdk.jfr@10.0.1 +j jdk.jfr.internal.JVMSupport.()V+0 jdk.jfr@10.0.1 +v ~StubRoutines::call_stub +j jdk.jfr.FlightRecorder.addListener(Ljdk/jfr/FlightRecorderListener;)V+8 jdk.jfr@10.0.1 +j one.profiler.JfrSync.()V+7 +v ~StubRoutines::call_stub + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000030 + +Register to memory mapping: + +RAX=0x0000000000000000 is an unknown value +RBX={method} {0x0000000136512d28} 'setMemorySize' '(J)V' in 'jdk/jfr/internal/JVM' +RCX=0x000000010eaef250: AssumeMP+0 in /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/server/libjvm.dylib at 0x000000010e192000 +RDX=0x0000000000a00000 is an unknown value +RSP=0x000000030d7c7c70 is pointing into the stack for thread: 0x00007f784e83c800 +RBP=0x000000030d7c7c70 is pointing into the stack for thread: 0x00007f784e83c800 +RSI=0x000000030d7c7d10 is pointing into the stack for thread: 0x00007f784e83c800 +RDI=0x00007f784e83ca70 is an unknown value +R8 =0x000000010eb4f6a0: _ZN2os16_processor_countE+0 in /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/server/libjvm.dylib at 0x000000010e192000 +R9 =0x00000000fffffffe is an unknown value +R10=0x000000011b4b78ef is at code_begin+879 in an Interpreter codelet +method entry point (kind = native) [0x000000011b4b7580, 0x000000011b4b7fa0] 2592 bytes +R11=0x0000000000000101 is an unknown value +R12=0x0000000000000000 is an unknown value +R13=0x0000000136512d20 is pointing into metadata +R14=0x000000030d7c7d10 is pointing into the stack for thread: 0x00007f784e83c800 +R15=0x00007f784e83c800 is a thread + + +Registers: +RAX=0x0000000000000000, RBX=0x0000000136512d28, RCX=0x000000010eaef250, RDX=0x0000000000a00000 +RSP=0x000000030d7c7c70, RBP=0x000000030d7c7c70, RSI=0x000000030d7c7d10, RDI=0x00007f784e83ca70 +R8 =0x000000010eb4f6a0, R9 =0x00000000fffffffe, R10=0x000000011b4b78ef, R11=0x0000000000000101 +R12=0x0000000000000000, R13=0x0000000136512d20, R14=0x000000030d7c7d10, R15=0x00007f784e83c800 +RIP=0x000000010e588788, EFLAGS=0x0000000000000293, ERR=0x0000000000000006 + TRAPNO=0x000000000000000e + +Top of Stack: (sp=0x000000030d7c7c70) +0x000000030d7c7c70: 000000030d7c7ce0 000000011b4b791b +0x000000030d7c7c80: 000000030d7c7ce0 000000011b4b767b +0x000000030d7c7c90: 000000011b4b7636 000000030d7c7c98 +0x000000030d7c7ca0: 0000000136512d20 000000030d7c7d10 +0x000000030d7c7cb0: 00000001365145c8 0000000000000000 +0x000000030d7c7cc0: 00000006cfd3ec68 0000000136512d28 +0x000000030d7c7cd0: 0000000000000000 000000030d7c7d00 +0x000000030d7c7ce0: 000000030d7c7d70 000000011b4b1f43 +0x000000030d7c7cf0: 0000000000000000 000000011b4b4a18 +0x000000030d7c7d00: 0000000000a00000 0000000000000000 +0x000000030d7c7d10: 00000006cfd3ecf8 0000000000000000 +0x000000030d7c7d20: 00000006cfd3f268 000000030d7c7d18 +0x000000030d7c7d30: 000000013651617c 000000030d7c7d88 +0x000000030d7c7d40: 0000000136516eb8 0000000000000000 +0x000000030d7c7d50: 00000006cfd3f268 0000000136516198 +0x000000030d7c7d60: 000000030d7c7d00 000000030d7c7d80 +0x000000030d7c7d70: 000000030d7c7de8 000000011b4b1f43 +0x000000030d7c7d80: 0000000000a00000 0000000000000000 +0x000000030d7c7d90: 0000004563e9ab01 00000006cfd3f268 +0x000000030d7c7da0: 000000030d7c7d90 0000000136516bf9 +0x000000030d7c7db0: 000000030d7c7df0 0000000136516eb8 +0x000000030d7c7dc0: 0000000000000000 00000006cfd3f268 +0x000000030d7c7dd0: 0000000136516c38 000000030d7c7d80 +0x000000030d7c7de0: 000000030d7c7df8 000000030d7c7e40 +0x000000030d7c7df0: 000000011b4b1f43 000000030d7c7df8 +0x000000030d7c7e00: 0000000136516e26 000000030d7c7e58 +0x000000030d7c7e10: 0000000136516eb8 0000000000000000 +0x000000030d7c7e20: 00000006cfd3f268 0000000136516e48 +0x000000030d7c7e30: 000000030d7c7df8 000000030d7c7e60 +0x000000030d7c7e40: 000000030d7c7ec0 000000011b4a8b47 +0x000000030d7c7e50: 0000000000001000 0000000000000000 +0x000000030d7c7e60: 0000000300001fa0 000000030d7c8000 + +Instructions: (pc=0x000000010e588788) +0x000000010e588768: 89 e5 48 8d 05 07 20 5b 00 48 8b 00 48 89 50 28 +0x000000010e588778: 5d c3 55 48 89 e5 48 8d 05 f3 1f 5b 00 48 8b 00 +0x000000010e588788: 48 89 50 30 5d c3 55 48 89 e5 48 8d 05 df 1f 5b +0x000000010e588798: 00 48 8b 00 83 fa 01 0f 94 40 44 5d c3 55 48 89 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000060000089bc20, length=11, elements={ +0x00007f784e83c800, 0x00007f784e930000, 0x00007f784d31e800, 0x00007f784e936000, +0x00007f784b8fa000, 0x00007f784e937000, 0x00007f784e017800, 0x00007f784b8fb000, +0x00007f782b82c800, 0x00007f784ea5f800, 0x00007f784ea6c800 +} + +Java Threads: ( => current thread ) +=>0x00007f784e83c800 JavaThread "main" [_thread_in_native, id=9731, stack(0x000000030d6ca000,0x000000030d7ca000)] + 0x00007f784e930000 JavaThread "Reference Handler" daemon [_thread_blocked, id=29699, stack(0x000000030ef12000,0x000000030f012000)] + 0x00007f784d31e800 JavaThread "Finalizer" daemon [_thread_blocked, id=25091, stack(0x000000030f015000,0x000000030f115000)] + 0x00007f784e936000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=32771, stack(0x000000030f227000,0x000000030f327000)] + 0x00007f784b8fa000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=41987, stack(0x000000030f32a000,0x000000030f42a000)] + 0x00007f784e937000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=34051, stack(0x000000030f42d000,0x000000030f52d000)] + 0x00007f784e017800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=34819, stack(0x000000030f530000,0x000000030f630000)] + 0x00007f784b8fb000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=41475, stack(0x000000030f633000,0x000000030f733000)] + 0x00007f782b82c800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=41219, stack(0x000000030f736000,0x000000030f836000)] + 0x00007f784ea5f800 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=39939, stack(0x000000030f839000,0x000000030f939000)] + 0x00007f784ea6c800 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=39171, stack(0x000000030f93c000,0x000000030fa3c000)] + +Other Threads: + 0x00007f784b8f4000 VMThread "VM Thread" [stack: 0x000000030ee0f000,0x000000030ef0f000] [id=30979] + 0x00007f784d00a000 GCTaskThread "GC Thread#0" [stack: 0x000000030d7cd000,0x000000030d8cd000] [id=12803] + 0x00007f784e83d800 GCTaskThread "GC Thread#1" [stack: 0x000000030d8d0000,0x000000030d9d0000] [id=13059] + 0x00007f784e83e000 GCTaskThread "GC Thread#2" [stack: 0x000000030d9d3000,0x000000030dad3000] [id=14851] + 0x00007f784e83f000 GCTaskThread "GC Thread#3" [stack: 0x000000030dad6000,0x000000030dbd6000] [id=14339] + 0x00007f784e83f800 GCTaskThread "GC Thread#4" [stack: 0x000000030dbd9000,0x000000030dcd9000] [id=14083] + 0x00007f784e840800 GCTaskThread "GC Thread#5" [stack: 0x000000030dcdc000,0x000000030dddc000] [id=16387] + 0x00007f784e841000 GCTaskThread "GC Thread#6" [stack: 0x000000030dddf000,0x000000030dedf000] [id=21251] + 0x00007f784e84b800 GCTaskThread "GC Thread#7" [stack: 0x000000030dee2000,0x000000030dfe2000] [id=20995] + 0x00007f784e84c000 GCTaskThread "GC Thread#8" [stack: 0x000000030dfe5000,0x000000030e0e5000] [id=16899] + 0x00007f784e870800 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000030e0e8000,0x000000030e1e8000] [id=20227] + 0x00007f784e871800 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000030e1eb000,0x000000030e2eb000] [id=19715] + 0x00007f784e872000 ConcurrentGCThread "G1 Conc#1" [stack: 0x000000030e2ee000,0x000000030e3ee000] [id=19203] + 0x00007f784e8f3000 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000030e3f1000,0x000000030e4f1000] [id=18947] + 0x00007f784d2fc800 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000030e4f4000,0x000000030e5f4000] [id=18691] + 0x00007f784d2fd800 ConcurrentGCThread "G1 Refine#2" [stack: 0x000000030e5f7000,0x000000030e6f7000] [id=18435] + 0x00007f784d303800 ConcurrentGCThread "G1 Refine#3" [stack: 0x000000030e6fa000,0x000000030e7fa000] [id=22019] + 0x00007f784d304800 ConcurrentGCThread "G1 Refine#4" [stack: 0x000000030e7fd000,0x000000030e8fd000] [id=22531] + 0x00007f784d305000 ConcurrentGCThread "G1 Refine#5" [stack: 0x000000030e900000,0x000000030ea00000] [id=32515] + 0x00007f784d306000 ConcurrentGCThread "G1 Refine#6" [stack: 0x000000030ea03000,0x000000030eb03000] [id=32259] + 0x00007f784d306800 ConcurrentGCThread "G1 Refine#7" [stack: 0x000000030eb06000,0x000000030ec06000] [id=32003] + 0x00007f784d307800 ConcurrentGCThread "G1 Refine#8" [stack: 0x000000030ec09000,0x000000030ed09000] [id=31491] + 0x00007f784d308000 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000030ed0c000,0x000000030ee0c000] [id=31235] + +Threads with active compile tasks: + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x00000006c0000000, size: 4096 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 +Narrow klass base: 0x0000000000000000, Narrow klass shift: 3 +Compressed class space size: 1073741824 Address: 0x00000007c0000000 + +Heap: + garbage-first heap total 262144K, used 2048K [0x00000006c0000000, 0x00000007c0000000) + region size 1024K, 3 young (3072K), 0 survivors (0K) + Metaspace used 6246K, capacity 6331K, committed 6528K, reserved 1056768K + class space used 514K, capacity 531K, committed 640K, reserved 1048576K +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TS=gc time stamp, AC=allocation context, TAMS=top-at-mark-start (previous, next) +| 0|0x00000006c0000000, 0x00000006c0000000, 0x00000006c0100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0000000, 0x00000006c0000000| +| 1|0x00000006c0100000, 0x00000006c0100000, 0x00000006c0200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0100000, 0x00000006c0100000| +| 2|0x00000006c0200000, 0x00000006c0200000, 0x00000006c0300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0200000, 0x00000006c0200000| +| 3|0x00000006c0300000, 0x00000006c0300000, 0x00000006c0400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0300000, 0x00000006c0300000| +| 4|0x00000006c0400000, 0x00000006c0400000, 0x00000006c0500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0400000, 0x00000006c0400000| +| 5|0x00000006c0500000, 0x00000006c0500000, 0x00000006c0600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0500000, 0x00000006c0500000| +| 6|0x00000006c0600000, 0x00000006c0600000, 0x00000006c0700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0600000, 0x00000006c0600000| +| 7|0x00000006c0700000, 0x00000006c0700000, 0x00000006c0800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0700000, 0x00000006c0700000| +| 8|0x00000006c0800000, 0x00000006c0800000, 0x00000006c0900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0800000, 0x00000006c0800000| +| 9|0x00000006c0900000, 0x00000006c0900000, 0x00000006c0a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0900000, 0x00000006c0900000| +| 10|0x00000006c0a00000, 0x00000006c0a00000, 0x00000006c0b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0a00000, 0x00000006c0a00000| +| 11|0x00000006c0b00000, 0x00000006c0b00000, 0x00000006c0c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0b00000, 0x00000006c0b00000| +| 12|0x00000006c0c00000, 0x00000006c0c00000, 0x00000006c0d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0c00000, 0x00000006c0c00000| +| 13|0x00000006c0d00000, 0x00000006c0d00000, 0x00000006c0e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0d00000, 0x00000006c0d00000| +| 14|0x00000006c0e00000, 0x00000006c0e00000, 0x00000006c0f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0e00000, 0x00000006c0e00000| +| 15|0x00000006c0f00000, 0x00000006c0f00000, 0x00000006c1000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c0f00000, 0x00000006c0f00000| +| 16|0x00000006c1000000, 0x00000006c1000000, 0x00000006c1100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1000000, 0x00000006c1000000| +| 17|0x00000006c1100000, 0x00000006c1100000, 0x00000006c1200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1100000, 0x00000006c1100000| +| 18|0x00000006c1200000, 0x00000006c1200000, 0x00000006c1300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1200000, 0x00000006c1200000| +| 19|0x00000006c1300000, 0x00000006c1300000, 0x00000006c1400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1300000, 0x00000006c1300000| +| 20|0x00000006c1400000, 0x00000006c1400000, 0x00000006c1500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1400000, 0x00000006c1400000| +| 21|0x00000006c1500000, 0x00000006c1500000, 0x00000006c1600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1500000, 0x00000006c1500000| +| 22|0x00000006c1600000, 0x00000006c1600000, 0x00000006c1700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1600000, 0x00000006c1600000| +| 23|0x00000006c1700000, 0x00000006c1700000, 0x00000006c1800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1700000, 0x00000006c1700000| +| 24|0x00000006c1800000, 0x00000006c1800000, 0x00000006c1900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1800000, 0x00000006c1800000| +| 25|0x00000006c1900000, 0x00000006c1900000, 0x00000006c1a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1900000, 0x00000006c1900000| +| 26|0x00000006c1a00000, 0x00000006c1a00000, 0x00000006c1b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1a00000, 0x00000006c1a00000| +| 27|0x00000006c1b00000, 0x00000006c1b00000, 0x00000006c1c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1b00000, 0x00000006c1b00000| +| 28|0x00000006c1c00000, 0x00000006c1c00000, 0x00000006c1d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1c00000, 0x00000006c1c00000| +| 29|0x00000006c1d00000, 0x00000006c1d00000, 0x00000006c1e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1d00000, 0x00000006c1d00000| +| 30|0x00000006c1e00000, 0x00000006c1e00000, 0x00000006c1f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1e00000, 0x00000006c1e00000| +| 31|0x00000006c1f00000, 0x00000006c1f00000, 0x00000006c2000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c1f00000, 0x00000006c1f00000| +| 32|0x00000006c2000000, 0x00000006c2000000, 0x00000006c2100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2000000, 0x00000006c2000000| +| 33|0x00000006c2100000, 0x00000006c2100000, 0x00000006c2200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2100000, 0x00000006c2100000| +| 34|0x00000006c2200000, 0x00000006c2200000, 0x00000006c2300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2200000, 0x00000006c2200000| +| 35|0x00000006c2300000, 0x00000006c2300000, 0x00000006c2400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2300000, 0x00000006c2300000| +| 36|0x00000006c2400000, 0x00000006c2400000, 0x00000006c2500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2400000, 0x00000006c2400000| +| 37|0x00000006c2500000, 0x00000006c2500000, 0x00000006c2600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2500000, 0x00000006c2500000| +| 38|0x00000006c2600000, 0x00000006c2600000, 0x00000006c2700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2600000, 0x00000006c2600000| +| 39|0x00000006c2700000, 0x00000006c2700000, 0x00000006c2800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2700000, 0x00000006c2700000| +| 40|0x00000006c2800000, 0x00000006c2800000, 0x00000006c2900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2800000, 0x00000006c2800000| +| 41|0x00000006c2900000, 0x00000006c2900000, 0x00000006c2a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2900000, 0x00000006c2900000| +| 42|0x00000006c2a00000, 0x00000006c2a00000, 0x00000006c2b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2a00000, 0x00000006c2a00000| +| 43|0x00000006c2b00000, 0x00000006c2b00000, 0x00000006c2c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2b00000, 0x00000006c2b00000| +| 44|0x00000006c2c00000, 0x00000006c2c00000, 0x00000006c2d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2c00000, 0x00000006c2c00000| +| 45|0x00000006c2d00000, 0x00000006c2d00000, 0x00000006c2e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2d00000, 0x00000006c2d00000| +| 46|0x00000006c2e00000, 0x00000006c2e00000, 0x00000006c2f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2e00000, 0x00000006c2e00000| +| 47|0x00000006c2f00000, 0x00000006c2f00000, 0x00000006c3000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c2f00000, 0x00000006c2f00000| +| 48|0x00000006c3000000, 0x00000006c3000000, 0x00000006c3100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3000000, 0x00000006c3000000| +| 49|0x00000006c3100000, 0x00000006c3100000, 0x00000006c3200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3100000, 0x00000006c3100000| +| 50|0x00000006c3200000, 0x00000006c3200000, 0x00000006c3300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3200000, 0x00000006c3200000| +| 51|0x00000006c3300000, 0x00000006c3300000, 0x00000006c3400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3300000, 0x00000006c3300000| +| 52|0x00000006c3400000, 0x00000006c3400000, 0x00000006c3500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3400000, 0x00000006c3400000| +| 53|0x00000006c3500000, 0x00000006c3500000, 0x00000006c3600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3500000, 0x00000006c3500000| +| 54|0x00000006c3600000, 0x00000006c3600000, 0x00000006c3700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3600000, 0x00000006c3600000| +| 55|0x00000006c3700000, 0x00000006c3700000, 0x00000006c3800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3700000, 0x00000006c3700000| +| 56|0x00000006c3800000, 0x00000006c3800000, 0x00000006c3900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3800000, 0x00000006c3800000| +| 57|0x00000006c3900000, 0x00000006c3900000, 0x00000006c3a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3900000, 0x00000006c3900000| +| 58|0x00000006c3a00000, 0x00000006c3a00000, 0x00000006c3b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3a00000, 0x00000006c3a00000| +| 59|0x00000006c3b00000, 0x00000006c3b00000, 0x00000006c3c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3b00000, 0x00000006c3b00000| +| 60|0x00000006c3c00000, 0x00000006c3c00000, 0x00000006c3d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3c00000, 0x00000006c3c00000| +| 61|0x00000006c3d00000, 0x00000006c3d00000, 0x00000006c3e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3d00000, 0x00000006c3d00000| +| 62|0x00000006c3e00000, 0x00000006c3e00000, 0x00000006c3f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3e00000, 0x00000006c3e00000| +| 63|0x00000006c3f00000, 0x00000006c3f00000, 0x00000006c4000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c3f00000, 0x00000006c3f00000| +| 64|0x00000006c4000000, 0x00000006c4000000, 0x00000006c4100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4000000, 0x00000006c4000000| +| 65|0x00000006c4100000, 0x00000006c4100000, 0x00000006c4200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4100000, 0x00000006c4100000| +| 66|0x00000006c4200000, 0x00000006c4200000, 0x00000006c4300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4200000, 0x00000006c4200000| +| 67|0x00000006c4300000, 0x00000006c4300000, 0x00000006c4400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4300000, 0x00000006c4300000| +| 68|0x00000006c4400000, 0x00000006c4400000, 0x00000006c4500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4400000, 0x00000006c4400000| +| 69|0x00000006c4500000, 0x00000006c4500000, 0x00000006c4600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4500000, 0x00000006c4500000| +| 70|0x00000006c4600000, 0x00000006c4600000, 0x00000006c4700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4600000, 0x00000006c4600000| +| 71|0x00000006c4700000, 0x00000006c4700000, 0x00000006c4800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4700000, 0x00000006c4700000| +| 72|0x00000006c4800000, 0x00000006c4800000, 0x00000006c4900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4800000, 0x00000006c4800000| +| 73|0x00000006c4900000, 0x00000006c4900000, 0x00000006c4a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4900000, 0x00000006c4900000| +| 74|0x00000006c4a00000, 0x00000006c4a00000, 0x00000006c4b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4a00000, 0x00000006c4a00000| +| 75|0x00000006c4b00000, 0x00000006c4b00000, 0x00000006c4c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4b00000, 0x00000006c4b00000| +| 76|0x00000006c4c00000, 0x00000006c4c00000, 0x00000006c4d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4c00000, 0x00000006c4c00000| +| 77|0x00000006c4d00000, 0x00000006c4d00000, 0x00000006c4e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4d00000, 0x00000006c4d00000| +| 78|0x00000006c4e00000, 0x00000006c4e00000, 0x00000006c4f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4e00000, 0x00000006c4e00000| +| 79|0x00000006c4f00000, 0x00000006c4f00000, 0x00000006c5000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c4f00000, 0x00000006c4f00000| +| 80|0x00000006c5000000, 0x00000006c5000000, 0x00000006c5100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5000000, 0x00000006c5000000| +| 81|0x00000006c5100000, 0x00000006c5100000, 0x00000006c5200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5100000, 0x00000006c5100000| +| 82|0x00000006c5200000, 0x00000006c5200000, 0x00000006c5300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5200000, 0x00000006c5200000| +| 83|0x00000006c5300000, 0x00000006c5300000, 0x00000006c5400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5300000, 0x00000006c5300000| +| 84|0x00000006c5400000, 0x00000006c5400000, 0x00000006c5500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5400000, 0x00000006c5400000| +| 85|0x00000006c5500000, 0x00000006c5500000, 0x00000006c5600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5500000, 0x00000006c5500000| +| 86|0x00000006c5600000, 0x00000006c5600000, 0x00000006c5700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5600000, 0x00000006c5600000| +| 87|0x00000006c5700000, 0x00000006c5700000, 0x00000006c5800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5700000, 0x00000006c5700000| +| 88|0x00000006c5800000, 0x00000006c5800000, 0x00000006c5900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5800000, 0x00000006c5800000| +| 89|0x00000006c5900000, 0x00000006c5900000, 0x00000006c5a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5900000, 0x00000006c5900000| +| 90|0x00000006c5a00000, 0x00000006c5a00000, 0x00000006c5b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5a00000, 0x00000006c5a00000| +| 91|0x00000006c5b00000, 0x00000006c5b00000, 0x00000006c5c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5b00000, 0x00000006c5b00000| +| 92|0x00000006c5c00000, 0x00000006c5c00000, 0x00000006c5d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5c00000, 0x00000006c5c00000| +| 93|0x00000006c5d00000, 0x00000006c5d00000, 0x00000006c5e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5d00000, 0x00000006c5d00000| +| 94|0x00000006c5e00000, 0x00000006c5e00000, 0x00000006c5f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5e00000, 0x00000006c5e00000| +| 95|0x00000006c5f00000, 0x00000006c5f00000, 0x00000006c6000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c5f00000, 0x00000006c5f00000| +| 96|0x00000006c6000000, 0x00000006c6000000, 0x00000006c6100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6000000, 0x00000006c6000000| +| 97|0x00000006c6100000, 0x00000006c6100000, 0x00000006c6200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6100000, 0x00000006c6100000| +| 98|0x00000006c6200000, 0x00000006c6200000, 0x00000006c6300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6200000, 0x00000006c6200000| +| 99|0x00000006c6300000, 0x00000006c6300000, 0x00000006c6400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6300000, 0x00000006c6300000| +| 100|0x00000006c6400000, 0x00000006c6400000, 0x00000006c6500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6400000, 0x00000006c6400000| +| 101|0x00000006c6500000, 0x00000006c6500000, 0x00000006c6600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6500000, 0x00000006c6500000| +| 102|0x00000006c6600000, 0x00000006c6600000, 0x00000006c6700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6600000, 0x00000006c6600000| +| 103|0x00000006c6700000, 0x00000006c6700000, 0x00000006c6800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6700000, 0x00000006c6700000| +| 104|0x00000006c6800000, 0x00000006c6800000, 0x00000006c6900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6800000, 0x00000006c6800000| +| 105|0x00000006c6900000, 0x00000006c6900000, 0x00000006c6a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6900000, 0x00000006c6900000| +| 106|0x00000006c6a00000, 0x00000006c6a00000, 0x00000006c6b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6a00000, 0x00000006c6a00000| +| 107|0x00000006c6b00000, 0x00000006c6b00000, 0x00000006c6c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6b00000, 0x00000006c6b00000| +| 108|0x00000006c6c00000, 0x00000006c6c00000, 0x00000006c6d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6c00000, 0x00000006c6c00000| +| 109|0x00000006c6d00000, 0x00000006c6d00000, 0x00000006c6e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6d00000, 0x00000006c6d00000| +| 110|0x00000006c6e00000, 0x00000006c6e00000, 0x00000006c6f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6e00000, 0x00000006c6e00000| +| 111|0x00000006c6f00000, 0x00000006c6f00000, 0x00000006c7000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c6f00000, 0x00000006c6f00000| +| 112|0x00000006c7000000, 0x00000006c7000000, 0x00000006c7100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7000000, 0x00000006c7000000| +| 113|0x00000006c7100000, 0x00000006c7100000, 0x00000006c7200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7100000, 0x00000006c7100000| +| 114|0x00000006c7200000, 0x00000006c7200000, 0x00000006c7300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7200000, 0x00000006c7200000| +| 115|0x00000006c7300000, 0x00000006c7300000, 0x00000006c7400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7300000, 0x00000006c7300000| +| 116|0x00000006c7400000, 0x00000006c7400000, 0x00000006c7500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7400000, 0x00000006c7400000| +| 117|0x00000006c7500000, 0x00000006c7500000, 0x00000006c7600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7500000, 0x00000006c7500000| +| 118|0x00000006c7600000, 0x00000006c7600000, 0x00000006c7700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7600000, 0x00000006c7600000| +| 119|0x00000006c7700000, 0x00000006c7700000, 0x00000006c7800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7700000, 0x00000006c7700000| +| 120|0x00000006c7800000, 0x00000006c7800000, 0x00000006c7900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7800000, 0x00000006c7800000| +| 121|0x00000006c7900000, 0x00000006c7900000, 0x00000006c7a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7900000, 0x00000006c7900000| +| 122|0x00000006c7a00000, 0x00000006c7a00000, 0x00000006c7b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7a00000, 0x00000006c7a00000| +| 123|0x00000006c7b00000, 0x00000006c7b00000, 0x00000006c7c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7b00000, 0x00000006c7b00000| +| 124|0x00000006c7c00000, 0x00000006c7c00000, 0x00000006c7d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7c00000, 0x00000006c7c00000| +| 125|0x00000006c7d00000, 0x00000006c7d00000, 0x00000006c7e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7d00000, 0x00000006c7d00000| +| 126|0x00000006c7e00000, 0x00000006c7e00000, 0x00000006c7f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7e00000, 0x00000006c7e00000| +| 127|0x00000006c7f00000, 0x00000006c7f00000, 0x00000006c8000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c7f00000, 0x00000006c7f00000| +| 128|0x00000006c8000000, 0x00000006c8000000, 0x00000006c8100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8000000, 0x00000006c8000000| +| 129|0x00000006c8100000, 0x00000006c8100000, 0x00000006c8200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8100000, 0x00000006c8100000| +| 130|0x00000006c8200000, 0x00000006c8200000, 0x00000006c8300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8200000, 0x00000006c8200000| +| 131|0x00000006c8300000, 0x00000006c8300000, 0x00000006c8400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8300000, 0x00000006c8300000| +| 132|0x00000006c8400000, 0x00000006c8400000, 0x00000006c8500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8400000, 0x00000006c8400000| +| 133|0x00000006c8500000, 0x00000006c8500000, 0x00000006c8600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8500000, 0x00000006c8500000| +| 134|0x00000006c8600000, 0x00000006c8600000, 0x00000006c8700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8600000, 0x00000006c8600000| +| 135|0x00000006c8700000, 0x00000006c8700000, 0x00000006c8800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8700000, 0x00000006c8700000| +| 136|0x00000006c8800000, 0x00000006c8800000, 0x00000006c8900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8800000, 0x00000006c8800000| +| 137|0x00000006c8900000, 0x00000006c8900000, 0x00000006c8a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8900000, 0x00000006c8900000| +| 138|0x00000006c8a00000, 0x00000006c8a00000, 0x00000006c8b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8a00000, 0x00000006c8a00000| +| 139|0x00000006c8b00000, 0x00000006c8b00000, 0x00000006c8c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8b00000, 0x00000006c8b00000| +| 140|0x00000006c8c00000, 0x00000006c8c00000, 0x00000006c8d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8c00000, 0x00000006c8c00000| +| 141|0x00000006c8d00000, 0x00000006c8d00000, 0x00000006c8e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8d00000, 0x00000006c8d00000| +| 142|0x00000006c8e00000, 0x00000006c8e00000, 0x00000006c8f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8e00000, 0x00000006c8e00000| +| 143|0x00000006c8f00000, 0x00000006c8f00000, 0x00000006c9000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c8f00000, 0x00000006c8f00000| +| 144|0x00000006c9000000, 0x00000006c9000000, 0x00000006c9100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9000000, 0x00000006c9000000| +| 145|0x00000006c9100000, 0x00000006c9100000, 0x00000006c9200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9100000, 0x00000006c9100000| +| 146|0x00000006c9200000, 0x00000006c9200000, 0x00000006c9300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9200000, 0x00000006c9200000| +| 147|0x00000006c9300000, 0x00000006c9300000, 0x00000006c9400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9300000, 0x00000006c9300000| +| 148|0x00000006c9400000, 0x00000006c9400000, 0x00000006c9500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9400000, 0x00000006c9400000| +| 149|0x00000006c9500000, 0x00000006c9500000, 0x00000006c9600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9500000, 0x00000006c9500000| +| 150|0x00000006c9600000, 0x00000006c9600000, 0x00000006c9700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9600000, 0x00000006c9600000| +| 151|0x00000006c9700000, 0x00000006c9700000, 0x00000006c9800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9700000, 0x00000006c9700000| +| 152|0x00000006c9800000, 0x00000006c9800000, 0x00000006c9900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9800000, 0x00000006c9800000| +| 153|0x00000006c9900000, 0x00000006c9900000, 0x00000006c9a00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9900000, 0x00000006c9900000| +| 154|0x00000006c9a00000, 0x00000006c9a00000, 0x00000006c9b00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9a00000, 0x00000006c9a00000| +| 155|0x00000006c9b00000, 0x00000006c9b00000, 0x00000006c9c00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9b00000, 0x00000006c9b00000| +| 156|0x00000006c9c00000, 0x00000006c9c00000, 0x00000006c9d00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9c00000, 0x00000006c9c00000| +| 157|0x00000006c9d00000, 0x00000006c9d00000, 0x00000006c9e00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9d00000, 0x00000006c9d00000| +| 158|0x00000006c9e00000, 0x00000006c9e00000, 0x00000006c9f00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9e00000, 0x00000006c9e00000| +| 159|0x00000006c9f00000, 0x00000006c9f00000, 0x00000006ca000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006c9f00000, 0x00000006c9f00000| +| 160|0x00000006ca000000, 0x00000006ca000000, 0x00000006ca100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca000000, 0x00000006ca000000| +| 161|0x00000006ca100000, 0x00000006ca100000, 0x00000006ca200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca100000, 0x00000006ca100000| +| 162|0x00000006ca200000, 0x00000006ca200000, 0x00000006ca300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca200000, 0x00000006ca200000| +| 163|0x00000006ca300000, 0x00000006ca300000, 0x00000006ca400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca300000, 0x00000006ca300000| +| 164|0x00000006ca400000, 0x00000006ca400000, 0x00000006ca500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca400000, 0x00000006ca400000| +| 165|0x00000006ca500000, 0x00000006ca500000, 0x00000006ca600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca500000, 0x00000006ca500000| +| 166|0x00000006ca600000, 0x00000006ca600000, 0x00000006ca700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca600000, 0x00000006ca600000| +| 167|0x00000006ca700000, 0x00000006ca700000, 0x00000006ca800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca700000, 0x00000006ca700000| +| 168|0x00000006ca800000, 0x00000006ca800000, 0x00000006ca900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca800000, 0x00000006ca800000| +| 169|0x00000006ca900000, 0x00000006ca900000, 0x00000006caa00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ca900000, 0x00000006ca900000| +| 170|0x00000006caa00000, 0x00000006caa00000, 0x00000006cab00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006caa00000, 0x00000006caa00000| +| 171|0x00000006cab00000, 0x00000006cab00000, 0x00000006cac00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cab00000, 0x00000006cab00000| +| 172|0x00000006cac00000, 0x00000006cac00000, 0x00000006cad00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cac00000, 0x00000006cac00000| +| 173|0x00000006cad00000, 0x00000006cad00000, 0x00000006cae00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cad00000, 0x00000006cad00000| +| 174|0x00000006cae00000, 0x00000006cae00000, 0x00000006caf00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cae00000, 0x00000006cae00000| +| 175|0x00000006caf00000, 0x00000006caf00000, 0x00000006cb000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006caf00000, 0x00000006caf00000| +| 176|0x00000006cb000000, 0x00000006cb000000, 0x00000006cb100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb000000, 0x00000006cb000000| +| 177|0x00000006cb100000, 0x00000006cb100000, 0x00000006cb200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb100000, 0x00000006cb100000| +| 178|0x00000006cb200000, 0x00000006cb200000, 0x00000006cb300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb200000, 0x00000006cb200000| +| 179|0x00000006cb300000, 0x00000006cb300000, 0x00000006cb400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb300000, 0x00000006cb300000| +| 180|0x00000006cb400000, 0x00000006cb400000, 0x00000006cb500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb400000, 0x00000006cb400000| +| 181|0x00000006cb500000, 0x00000006cb500000, 0x00000006cb600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb500000, 0x00000006cb500000| +| 182|0x00000006cb600000, 0x00000006cb600000, 0x00000006cb700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb600000, 0x00000006cb600000| +| 183|0x00000006cb700000, 0x00000006cb700000, 0x00000006cb800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb700000, 0x00000006cb700000| +| 184|0x00000006cb800000, 0x00000006cb800000, 0x00000006cb900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb800000, 0x00000006cb800000| +| 185|0x00000006cb900000, 0x00000006cb900000, 0x00000006cba00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cb900000, 0x00000006cb900000| +| 186|0x00000006cba00000, 0x00000006cba00000, 0x00000006cbb00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cba00000, 0x00000006cba00000| +| 187|0x00000006cbb00000, 0x00000006cbb00000, 0x00000006cbc00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cbb00000, 0x00000006cbb00000| +| 188|0x00000006cbc00000, 0x00000006cbc00000, 0x00000006cbd00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cbc00000, 0x00000006cbc00000| +| 189|0x00000006cbd00000, 0x00000006cbd00000, 0x00000006cbe00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cbd00000, 0x00000006cbd00000| +| 190|0x00000006cbe00000, 0x00000006cbe00000, 0x00000006cbf00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cbe00000, 0x00000006cbe00000| +| 191|0x00000006cbf00000, 0x00000006cbf00000, 0x00000006cc000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cbf00000, 0x00000006cbf00000| +| 192|0x00000006cc000000, 0x00000006cc000000, 0x00000006cc100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc000000, 0x00000006cc000000| +| 193|0x00000006cc100000, 0x00000006cc100000, 0x00000006cc200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc100000, 0x00000006cc100000| +| 194|0x00000006cc200000, 0x00000006cc200000, 0x00000006cc300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc200000, 0x00000006cc200000| +| 195|0x00000006cc300000, 0x00000006cc300000, 0x00000006cc400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc300000, 0x00000006cc300000| +| 196|0x00000006cc400000, 0x00000006cc400000, 0x00000006cc500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc400000, 0x00000006cc400000| +| 197|0x00000006cc500000, 0x00000006cc500000, 0x00000006cc600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc500000, 0x00000006cc500000| +| 198|0x00000006cc600000, 0x00000006cc600000, 0x00000006cc700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc600000, 0x00000006cc600000| +| 199|0x00000006cc700000, 0x00000006cc700000, 0x00000006cc800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc700000, 0x00000006cc700000| +| 200|0x00000006cc800000, 0x00000006cc800000, 0x00000006cc900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc800000, 0x00000006cc800000| +| 201|0x00000006cc900000, 0x00000006cc900000, 0x00000006cca00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cc900000, 0x00000006cc900000| +| 202|0x00000006cca00000, 0x00000006cca00000, 0x00000006ccb00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cca00000, 0x00000006cca00000| +| 203|0x00000006ccb00000, 0x00000006ccb00000, 0x00000006ccc00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ccb00000, 0x00000006ccb00000| +| 204|0x00000006ccc00000, 0x00000006ccc00000, 0x00000006ccd00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ccc00000, 0x00000006ccc00000| +| 205|0x00000006ccd00000, 0x00000006ccd00000, 0x00000006cce00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ccd00000, 0x00000006ccd00000| +| 206|0x00000006cce00000, 0x00000006cce00000, 0x00000006ccf00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cce00000, 0x00000006cce00000| +| 207|0x00000006ccf00000, 0x00000006ccf00000, 0x00000006cd000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ccf00000, 0x00000006ccf00000| +| 208|0x00000006cd000000, 0x00000006cd000000, 0x00000006cd100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd000000, 0x00000006cd000000| +| 209|0x00000006cd100000, 0x00000006cd100000, 0x00000006cd200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd100000, 0x00000006cd100000| +| 210|0x00000006cd200000, 0x00000006cd200000, 0x00000006cd300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd200000, 0x00000006cd200000| +| 211|0x00000006cd300000, 0x00000006cd300000, 0x00000006cd400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd300000, 0x00000006cd300000| +| 212|0x00000006cd400000, 0x00000006cd400000, 0x00000006cd500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd400000, 0x00000006cd400000| +| 213|0x00000006cd500000, 0x00000006cd500000, 0x00000006cd600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd500000, 0x00000006cd500000| +| 214|0x00000006cd600000, 0x00000006cd600000, 0x00000006cd700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd600000, 0x00000006cd600000| +| 215|0x00000006cd700000, 0x00000006cd700000, 0x00000006cd800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd700000, 0x00000006cd700000| +| 216|0x00000006cd800000, 0x00000006cd800000, 0x00000006cd900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd800000, 0x00000006cd800000| +| 217|0x00000006cd900000, 0x00000006cd900000, 0x00000006cda00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cd900000, 0x00000006cd900000| +| 218|0x00000006cda00000, 0x00000006cda00000, 0x00000006cdb00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cda00000, 0x00000006cda00000| +| 219|0x00000006cdb00000, 0x00000006cdb00000, 0x00000006cdc00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cdb00000, 0x00000006cdb00000| +| 220|0x00000006cdc00000, 0x00000006cdc00000, 0x00000006cdd00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cdc00000, 0x00000006cdc00000| +| 221|0x00000006cdd00000, 0x00000006cdd00000, 0x00000006cde00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cdd00000, 0x00000006cdd00000| +| 222|0x00000006cde00000, 0x00000006cde00000, 0x00000006cdf00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cde00000, 0x00000006cde00000| +| 223|0x00000006cdf00000, 0x00000006cdf00000, 0x00000006ce000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cdf00000, 0x00000006cdf00000| +| 224|0x00000006ce000000, 0x00000006ce000000, 0x00000006ce100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce000000, 0x00000006ce000000| +| 225|0x00000006ce100000, 0x00000006ce100000, 0x00000006ce200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce100000, 0x00000006ce100000| +| 226|0x00000006ce200000, 0x00000006ce200000, 0x00000006ce300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce200000, 0x00000006ce200000| +| 227|0x00000006ce300000, 0x00000006ce300000, 0x00000006ce400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce300000, 0x00000006ce300000| +| 228|0x00000006ce400000, 0x00000006ce400000, 0x00000006ce500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce400000, 0x00000006ce400000| +| 229|0x00000006ce500000, 0x00000006ce500000, 0x00000006ce600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce500000, 0x00000006ce500000| +| 230|0x00000006ce600000, 0x00000006ce600000, 0x00000006ce700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce600000, 0x00000006ce600000| +| 231|0x00000006ce700000, 0x00000006ce700000, 0x00000006ce800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce700000, 0x00000006ce700000| +| 232|0x00000006ce800000, 0x00000006ce800000, 0x00000006ce900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce800000, 0x00000006ce800000| +| 233|0x00000006ce900000, 0x00000006ce900000, 0x00000006cea00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ce900000, 0x00000006ce900000| +| 234|0x00000006cea00000, 0x00000006cea00000, 0x00000006ceb00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cea00000, 0x00000006cea00000| +| 235|0x00000006ceb00000, 0x00000006ceb00000, 0x00000006cec00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ceb00000, 0x00000006ceb00000| +| 236|0x00000006cec00000, 0x00000006cec00000, 0x00000006ced00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cec00000, 0x00000006cec00000| +| 237|0x00000006ced00000, 0x00000006ced00000, 0x00000006cee00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006ced00000, 0x00000006ced00000| +| 238|0x00000006cee00000, 0x00000006cee00000, 0x00000006cef00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cee00000, 0x00000006cee00000| +| 239|0x00000006cef00000, 0x00000006cef00000, 0x00000006cf000000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cef00000, 0x00000006cef00000| +| 240|0x00000006cf000000, 0x00000006cf000000, 0x00000006cf100000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf000000, 0x00000006cf000000| +| 241|0x00000006cf100000, 0x00000006cf100000, 0x00000006cf200000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf100000, 0x00000006cf100000| +| 242|0x00000006cf200000, 0x00000006cf200000, 0x00000006cf300000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf200000, 0x00000006cf200000| +| 243|0x00000006cf300000, 0x00000006cf300000, 0x00000006cf400000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf300000, 0x00000006cf300000| +| 244|0x00000006cf400000, 0x00000006cf400000, 0x00000006cf500000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf400000, 0x00000006cf400000| +| 245|0x00000006cf500000, 0x00000006cf500000, 0x00000006cf600000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf500000, 0x00000006cf500000| +| 246|0x00000006cf600000, 0x00000006cf600000, 0x00000006cf700000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf600000, 0x00000006cf600000| +| 247|0x00000006cf700000, 0x00000006cf700000, 0x00000006cf800000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf700000, 0x00000006cf700000| +| 248|0x00000006cf800000, 0x00000006cf800000, 0x00000006cf900000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf800000, 0x00000006cf800000| +| 249|0x00000006cf900000, 0x00000006cf900000, 0x00000006cfa00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cf900000, 0x00000006cf900000| +| 250|0x00000006cfa00000, 0x00000006cfa00000, 0x00000006cfb00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cfa00000, 0x00000006cfa00000| +| 251|0x00000006cfb00000, 0x00000006cfb00000, 0x00000006cfc00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cfb00000, 0x00000006cfb00000| +| 252|0x00000006cfc00000, 0x00000006cfc00000, 0x00000006cfd00000| 0%| F| |TS 0|AC 0|TAMS 0x00000006cfc00000, 0x00000006cfc00000| +| 253|0x00000006cfd00000, 0x00000006cfdf64c0, 0x00000006cfe00000| 96%| E| |TS 0|AC 0|TAMS 0x00000006cfd00000, 0x00000006cfd00000| +| 254|0x00000006cfe00000, 0x00000006cff00000, 0x00000006cff00000|100%| E|CS|TS 0|AC 0|TAMS 0x00000006cfe00000, 0x00000006cfe00000| +| 255|0x00000006cff00000, 0x00000006d0000000, 0x00000006d0000000|100%| E|CS|TS 0|AC 0|TAMS 0x00000006cff00000, 0x00000006cff00000| + +Card table byte_map: [0x000000012ae7e000,0x000000012b67e000] byte_map_base: 0x000000012787e000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x00007f784e86fe60, (CMBitMap*) 0x00007f784e86fe98 + Prev Bits: [0x000000012be7e000, 0x000000012fe7e000) + Next Bits: [0x000000012fe7e000, 0x0000000133e7e000) + +Polling page: 0x00000001049e3000 + +CodeHeap 'non-profiled nmethods': size=120032Kb used=97Kb max_used=97Kb free=119934Kb + bounds [0x0000000122f70000, 0x00000001231e0000, 0x000000012a4a8000] +CodeHeap 'profiled nmethods': size=120028Kb used=317Kb max_used=317Kb free=119711Kb + bounds [0x000000011ba39000, 0x000000011bca9000, 0x0000000122f70000] +CodeHeap 'non-nmethods': size=5700Kb used=1027Kb max_used=1027Kb free=4673Kb + bounds [0x000000011b4a8000, 0x000000011b718000, 0x000000011ba39000] + total_blobs=635 nmethods=227 adapters=240 + compilation: enabled + +Compilation events (10 events): +Event: 1.579 Thread 0x00007f784b8fb000 221 3 java.lang.AbstractStringBuilder::newCapacity (55 bytes) +Event: 1.579 Thread 0x00007f784b8fb000 nmethod 221 0x000000011ba86190 code [0x000000011ba86360, 0x000000011ba86608] +Event: 1.582 Thread 0x00007f784b8fb000 224 3 java.lang.invoke.MethodType::parameterType (7 bytes) +Event: 1.582 Thread 0x00007f784b8fb000 nmethod 224 0x000000011ba86810 code [0x000000011ba869c0, 0x000000011ba86b30] +Event: 1.582 Thread 0x00007f784b8fb000 226 3 jdk.internal.org.objectweb.asm.ClassWriter::get (49 bytes) +Event: 1.582 Thread 0x00007f784b8fb000 nmethod 226 0x000000011ba86c10 code [0x000000011ba86de0, 0x000000011ba87108] +Event: 1.582 Thread 0x00007f784b8fb000 227 3 java.lang.String:: (15 bytes) +Event: 1.582 Thread 0x00007f784b8fb000 nmethod 227 0x000000011ba87410 code [0x000000011ba875c0, 0x000000011ba877d0] +Event: 1.582 Thread 0x00007f784b8fb000 225 3 jdk.internal.org.objectweb.asm.Item::set (219 bytes) +Event: 1.582 Thread 0x00007f784b8fb000 nmethod 225 0x000000011ba87910 code [0x000000011ba87b20, 0x000000011ba87ff8] + +GC Heap History (0 events): +No events + +Deoptimization events (3 events): +Event: 1.482 Thread 0x00007f784e83c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000122f78c00 method=java.util.AbstractCollection.isEmpty()Z @ 4 c2 +Event: 1.494 Thread 0x00007f784e83c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000122f7c4c0 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 69 c2 +Event: 1.510 Thread 0x00007f784e83c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000122f73d84 method=java.lang.String.hashCode()I @ 14 c2 + +Classes redefined (0 events): +No events + +Internal exceptions (1 events): +Event: 1.561 Thread 0x00007f784e83c800 Exception (0x00000006cfd10b78) thrown at [/scratch/mesos/slaves/55 + +Events (10 events): +Event: 1.580 loading class java/security/AllPermissionCollection +Event: 1.580 loading class java/security/AllPermissionCollection done +Event: 1.581 loading class java/nio/file/Paths +Event: 1.581 loading class java/nio/file/Paths done +Event: 1.582 loading class jdk/jfr/internal/JVM +Event: 1.582 loading class jdk/jfr/internal/JVM done +Event: 1.583 loading class jdk/jfr/internal/LogTag +Event: 1.583 loading class jdk/jfr/internal/LogTag done +Event: 1.583 loading class jdk/jfr/internal/Options +Event: 1.583 loading class jdk/jfr/internal/Options done + + +Dynamic libraries: +0x00007ff82d905000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa +0x00007ff815c8d000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x00007ff818fe5000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData +0x00007ff8135fa000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation +0x00007ff81fbd1000 /usr/lib/libSystem.B.dylib +0x00007ff8170ac000 /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation +0x00007ffb19c3e000 /System/Library/PrivateFrameworks/CollectionViewCore.framework/Versions/A/CollectionViewCore +0x00007ff827216000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices +0x00007ff81d791000 /System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap +0x00007ff822655000 /System/Library/PrivateFrameworks/InternationalSupport.framework/Versions/A/InternationalSupport +0x00007ff8226df000 /System/Library/PrivateFrameworks/UserActivity.framework/Versions/A/UserActivity +0x00007ffc1abfd000 /System/Library/PrivateFrameworks/WindowManagement.framework/Versions/A/WindowManagement +0x00007ff8132b3000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration +0x00007ff821a13000 /usr/lib/libspindump.dylib +0x00007ff817289000 /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers +0x00007ff81b7cf000 /usr/lib/libapp_launch_measurement.dylib +0x00007ff81a4b3000 /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics +0x00007ff81b7d2000 /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout +0x00007ff81d001000 /System/Library/Frameworks/Metal.framework/Versions/A/Metal +0x00007ff81df5d000 /usr/lib/liblangid.dylib +0x00007ff81d796000 /System/Library/PrivateFrameworks/CoreSVG.framework/Versions/A/CoreSVG +0x00007ff817c42000 /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight +0x00007ff81809b000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics +0x00007ff82796b000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate +0x00007ff821873000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices +0x00007ff81cfe2000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface +0x00007ff81a4df000 /usr/lib/libDiagnosticMessagesClient.dylib +0x00007ff81fae0000 /usr/lib/libz.1.dylib +0x00007ff82b308000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices +0x00007ff81d77d000 /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation +0x00007ff815549000 /usr/lib/libicucore.A.dylib +0x00007ff82362c000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox +0x00007ff822662000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore +0x00007ff91c08f000 /System/Library/PrivateFrameworks/TextInput.framework/Versions/A/TextInput +0x00007ff817b9c000 /usr/lib/libMobileGestalt.dylib +0x00007ff81d4e1000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x00007ff81b10a000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore +0x00007ff8151ac000 /System/Library/Frameworks/Security.framework/Versions/A/Security +0x00007ff82724e000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition +0x00007ff81b4fe000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI +0x00007ff814a99000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio +0x00007ff81a5bf000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration +0x00007ff821e45000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport +0x00007ff817b9b000 /usr/lib/libenergytrace.dylib +0x00007ff831c72000 /System/Library/PrivateFrameworks/RenderBox.framework/Versions/A/RenderBox +0x00007ff815b66000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit +0x00007ff827666000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices +0x00007ff81b766000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis +0x00007ffa2a4df000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL +0x00007ff81b81b000 /usr/lib/libxml2.2.dylib +0x00007ff81ef15000 /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag +0x00007ff8122ac000 /usr/lib/libobjc.A.dylib +0x00007ff8125a6000 /usr/lib/libc++.1.dylib +0x00007ff8275dd000 /System/Library/Frameworks/Accessibility.framework/Versions/A/Accessibility +0x00007ff81892e000 /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync +0x00007ff8126df000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x00007ff81db02000 /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage +0x00007ff814894000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText +0x00007ffa306c6000 /System/Library/Frameworks/CoreTransferable.framework/Versions/A/CoreTransferable +0x00007ffa30b10000 /System/Library/Frameworks/DeveloperToolsSupport.framework/Versions/A/DeveloperToolsSupport +0x00007ff81d7cf000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO +0x00007ffb14ad0000 /System/Library/Frameworks/Symbols.framework/Versions/A/Symbols +0x00007ff81fbd7000 /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking +0x00007ff8230a3000 /usr/lib/swift/libswiftCore.dylib +0x00007ff918cc4000 /usr/lib/swift/libswiftCoreFoundation.dylib +0x00007ff916aea000 /usr/lib/swift/libswiftCoreGraphics.dylib +0x00007ff918d01000 /usr/lib/swift/libswiftCoreImage.dylib +0x00007ff916af1000 /usr/lib/swift/libswiftDarwin.dylib +0x00007ff828fe4000 /usr/lib/swift/libswiftDispatch.dylib +0x00007ff918d02000 /usr/lib/swift/libswiftIOKit.dylib +0x00007ff924d3e000 /usr/lib/swift/libswiftMetal.dylib +0x00007ff931825000 /usr/lib/swift/libswiftOSLog.dylib +0x00007ff82b76f000 /usr/lib/swift/libswiftObjectiveC.dylib +0x00007ff9288fb000 /usr/lib/swift/libswiftQuartzCore.dylib +0x00007ff92c9b6000 /usr/lib/swift/libswiftUniformTypeIdentifiers.dylib +0x00007ff918cd4000 /usr/lib/swift/libswiftXPC.dylib +0x00007ffc2327d000 /usr/lib/swift/libswift_Concurrency.dylib +0x00007ff82b773000 /usr/lib/swift/libswiftos.dylib +0x00007ff91bff1000 /usr/lib/swift/libswiftsimd.dylib +0x00007ff81fd6f000 /usr/lib/libcompression.dylib +0x00007ff822595000 /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO +0x00007ff821481000 /usr/lib/libate.dylib +0x00007ff81fbcb000 /usr/lib/system/libcache.dylib +0x00007ff81fb86000 /usr/lib/system/libcommonCrypto.dylib +0x00007ff81fbaf000 /usr/lib/system/libcompiler_rt.dylib +0x00007ff81fba5000 /usr/lib/system/libcopyfile.dylib +0x00007ff8123ed000 /usr/lib/system/libcorecrypto.dylib +0x00007ff8124d4000 /usr/lib/system/libdispatch.dylib +0x00007ff812685000 /usr/lib/system/libdyld.dylib +0x00007ff81fbc1000 /usr/lib/system/libkeymgr.dylib +0x00007ff81fb62000 /usr/lib/system/libmacho.dylib +0x00007ff81efef000 /usr/lib/system/libquarantine.dylib +0x00007ff81fbbf000 /usr/lib/system/libremovefile.dylib +0x00007ff817c0d000 /usr/lib/system/libsystem_asl.dylib +0x00007ff81238b000 /usr/lib/system/libsystem_blocks.dylib +0x00007ff81251e000 /usr/lib/system/libsystem_c.dylib +0x00007ff81fbb7000 /usr/lib/system/libsystem_collections.dylib +0x00007ff81df4e000 /usr/lib/system/libsystem_configuration.dylib +0x00007ff81cfb9000 /usr/lib/system/libsystem_containermanager.dylib +0x00007ff81f7b4000 /usr/lib/system/libsystem_coreservices.dylib +0x00007ff8157df000 /usr/lib/system/libsystem_darwin.dylib +0x00007ffc2359e000 /usr/lib/system/libsystem_darwindirectory.dylib +0x00007ff81fbc2000 /usr/lib/system/libsystem_dnssd.dylib +0x00007ff81251b000 /usr/lib/system/libsystem_featureflags.dylib +0x00007ff8126b4000 /usr/lib/system/libsystem_info.dylib +0x00007ff81faf4000 /usr/lib/system/libsystem_m.dylib +0x00007ff81249b000 /usr/lib/system/libsystem_malloc.dylib +0x00007ff817b83000 /usr/lib/system/libsystem_networkextension.dylib +0x00007ff815c29000 /usr/lib/system/libsystem_notify.dylib +0x00007ff81df52000 /usr/lib/system/libsystem_sandbox.dylib +0x00007ff81fbbc000 /usr/lib/system/libsystem_secinit.dylib +0x00007ff81263e000 /usr/lib/system/libsystem_kernel.dylib +0x00007ff8126aa000 /usr/lib/system/libsystem_platform.dylib +0x00007ff812679000 /usr/lib/system/libsystem_pthread.dylib +0x00007ff819876000 /usr/lib/system/libsystem_symptoms.dylib +0x00007ff8123d3000 /usr/lib/system/libsystem_trace.dylib +0x00007ff81fb92000 /usr/lib/system/libunwind.dylib +0x00007ff81238f000 /usr/lib/system/libxpc.dylib +0x00007ff812625000 /usr/lib/libc++abi.dylib +0x00007ff81fb9d000 /usr/lib/liboah.dylib +0x00007ff82120e000 /usr/lib/liblzma.5.dylib +0x00007ff81fbd3000 /usr/lib/libfakelink.dylib +0x00007ff8177d4000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork +0x00007ff81fc26000 /usr/lib/libarchive.2.dylib +0x00007ff8254b0000 /System/Library/Frameworks/Combine.framework/Versions/A/Combine +0x00007ffb19c53000 /System/Library/PrivateFrameworks/CollectionsInternal.framework/Versions/A/CollectionsInternal +0x00007ffb2e941000 /System/Library/PrivateFrameworks/ReflectionInternal.framework/Versions/A/ReflectionInternal +0x00007ffb2eee0000 /System/Library/PrivateFrameworks/RuntimeInternal.framework/Versions/A/RuntimeInternal +0x00007ffc233b8000 /usr/lib/swift/libswift_StringProcessing.dylib +0x00007ff815ae4000 /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal +0x00007ff81f016000 /usr/lib/libbsm.0.dylib +0x00007ff81fb6a000 /usr/lib/system/libkxld.dylib +0x00007ff81b79a000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents +0x00007ff8157ea000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore +0x00007ff81a527000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata +0x00007ff81f7ba000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices +0x00007ff81fcaf000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit +0x00007ff8197fc000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE +0x00007ff812b79000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices +0x00007ff8211bf000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices +0x00007ff81b7a7000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList +0x00007ff81fd39000 /usr/lib/libapple_nghttp2.dylib +0x00007ff81947f000 /usr/lib/libsqlite3.dylib +0x00007ff81987e000 /System/Library/Frameworks/Network.framework/Versions/A/Network +0x00007ffc21c11000 /usr/lib/libCoreEntitlements.dylib +0x00007ffb2a3d4000 /System/Library/PrivateFrameworks/MessageSecurity.framework/Versions/A/MessageSecurity +0x00007ff819466000 /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer +0x00007ff81f6d7000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression +0x00007ff81effe000 /usr/lib/libcoretls.dylib +0x00007ff821227000 /usr/lib/libcoretls_cfhelpers.dylib +0x00007ff81fd69000 /usr/lib/libpam.2.dylib +0x00007ff82129f000 /usr/lib/libxar.1.dylib +0x00007ff82184c000 /usr/lib/libheimdal-asn1.dylib +0x00007ff8177d3000 /usr/lib/libnetwork.dylib +0x00007ff81fbd8000 /usr/lib/libpcap.A.dylib +0x00007ff81986c000 /usr/lib/libdns_services.dylib +0x00007ff81df59000 /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo +0x00007ff81ed17000 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer +0x00007ffc23304000 /usr/lib/swift/libswift_RegexParser.dylib +0x00007ff81f7a5000 /usr/lib/libbz2.1.0.dylib +0x00007ff81eff2000 /usr/lib/libCheckFix.dylib +0x00007ff817c24000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC +0x00007ff81df5f000 /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP +0x00007ff81a4e1000 /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities +0x00007ff81f026000 /usr/lib/libmecab.dylib +0x00007ff81333a000 /usr/lib/libCRFSuite.dylib +0x00007ff81f07f000 /usr/lib/libgermantok.dylib +0x00007ff81fd15000 /usr/lib/libThaiTokenizer.dylib +0x00007ff81a5c7000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage +0x00007ff827639000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib +0x00007ff8212e1000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib +0x00007ff81eae8000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib +0x00007ff812f80000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib +0x00007ff81fe4f000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib +0x00007ff81f082000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib +0x00007ff81fd54000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib +0x00007ff81fe49000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib +0x00007ff81e06e000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib +0x00007ff81323b000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib +0x00007ffb28d5c000 /System/Library/PrivateFrameworks/MIL.framework/Versions/A/MIL +0x00007ff81fc0e000 /usr/lib/libiconv.2.dylib +0x00007ff81fb5e000 /usr/lib/libcharset.1.dylib +0x00007ff81b77e000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory +0x00007ff81b772000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory +0x00007ff821229000 /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS +0x00007ff81ef38000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation +0x00007ff8212ad000 /usr/lib/libutil.dylib +0x00007ffb2716b000 /System/Library/PrivateFrameworks/InstalledContentLibrary.framework/Versions/A/InstalledContentLibrary +0x00007ff815b26000 /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore +0x00007ffb17b31000 /System/Library/PrivateFrameworks/AppleMobileFileIntegrity.framework/Versions/A/AppleMobileFileIntegrity +0x00007ff918ca4000 /usr/lib/libmis.dylib +0x00007ff928dcc000 /System/Library/PrivateFrameworks/MobileSystemServices.framework/Versions/A/MobileSystemServices +0x00007ffa26199000 /System/Library/PrivateFrameworks/ConfigProfileHelper.framework/Versions/A/ConfigProfileHelper +0x00007ff81fd17000 /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce +0x00007ff814232000 /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling +0x00007ff8212b1000 /usr/lib/libxslt.1.dylib +0x00007ff81fc15000 /usr/lib/libcmph.dylib +0x00007ff81ece6000 /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji +0x00007ff81e069000 /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData +0x00007ff813158000 /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon +0x00007ff81efc1000 /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement +0x00007ffc21d8d000 /usr/lib/libTLE.dylib +0x00007ff821d0d000 /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG +0x00007ff821831000 /usr/lib/libexpat.1.dylib +0x00007ff8223ee000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib +0x00007ff82241b000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib +0x00007ff82250d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib +0x00007ff821d59000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib +0x00007ff8224ad000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib +0x00007ff8224a4000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib +0x00007ff81d381000 /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib +0x00007ff81979d000 /System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices +0x00007ff82e094000 /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/Versions/A/IOSurfaceAccelerator +0x00007ff821e41000 /System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient +0x00007ff8143fb000 /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay +0x00007ff81d252000 /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia +0x00007ff81cff8000 /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator +0x00007ff81b8fb000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo +0x00007ff81fd67000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders +0x00007ff821e82000 /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox +0x00007ff81b987000 /System/Library/PrivateFrameworks/UserManagement.framework/Versions/A/UserManagement +0x00007ff8196cf000 /System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard +0x00007ff81df58000 /System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary +0x00007ffb17ab1000 /System/Library/PrivateFrameworks/AppleKeyStore.framework/Versions/A/AppleKeyStore +0x00007ff82249d000 /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler +0x00007ff822481000 /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment +0x00007ff8224a7000 /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay +0x00007ffb231b0000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/libllvm-flatbuffers.dylib +0x00007ffa2a4d3000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib +0x00007ffb20358000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/libGPUCompilerUtils.dylib +0x00007ff822513000 /System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore +0x00007ffa30bf2000 /System/Library/Frameworks/ExtensionFoundation.framework/Versions/A/ExtensionFoundation +0x00007ff829814000 /System/Library/PrivateFrameworks/CoreTime.framework/Versions/A/CoreTime +0x00007ff8219f9000 /System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport +0x00007ff823f7d000 /System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata +0x00007ff814527000 /System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore +0x00007ff81d22c000 /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk +0x00007ff82381b000 /usr/lib/libAudioStatistics.dylib +0x00007ff91805f000 /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy +0x00007ff823ae7000 /usr/lib/libSMC.dylib +0x00007ff82d769000 /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI +0x00007ff8223b5000 /usr/lib/libAudioToolboxUtility.dylib +0x00007ff91393a000 /System/Library/PrivateFrameworks/OSAServicesClient.framework/Versions/A/OSAServicesClient +0x00007ff823f8a000 /usr/lib/libperfcheck.dylib +0x00007ff821712000 /System/Library/PrivateFrameworks/PlugInKit.framework/Versions/A/PlugInKit +0x00007ff81ef2b000 /System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices +0x00007ffa15032000 /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication +0x00007ffb2daa8000 /System/Library/PrivateFrameworks/PhotosensitivityProcessing.framework/Versions/A/PhotosensitivityProcessing +0x00007ffa2b1a7000 /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL +0x00007ff8219a4000 /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer +0x00007ffa2a530000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib +0x00007ffa2a4f2000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib +0x00007ffa2a6ef000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib +0x00007ffa2a4fa000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib +0x00007ffa2a4ef000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib +0x00007ffc21d47000 /usr/lib/libRosetta.dylib +0x00007ffa2a4da000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib +0x00007ffb1e6c6000 /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/FontServices +0x00007ff8219b3000 /System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG +0x00007ff81b4b2000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib +0x00007ff821a07000 /System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib +0x00007ffb1e6c7000 /System/Library/PrivateFrameworks/FontServices.framework/libXTFontStaticRegistryData.dylib +0x00007ff81decd000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore +0x00007ff81f63d000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage +0x00007ff81f098000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork +0x00007ff81f511000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix +0x00007ff81f2c4000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector +0x00007ff81f54c000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray +0x00007ffa3213a000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSFunctions.framework/Versions/A/MPSFunctions +0x00007ffa3211c000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSBenchmarkLoop.framework/Versions/A/MPSBenchmarkLoop +0x00007ff812e30000 /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools +0x00007ff91d32e000 /System/Library/PrivateFrameworks/IOAccelMemoryInfo.framework/Versions/A/IOAccelMemoryInfo +0x00007ff928cde000 /System/Library/PrivateFrameworks/kperf.framework/Versions/A/kperf +0x00007ff918cb7000 /System/Library/PrivateFrameworks/GPURawCounter.framework/Versions/A/GPURawCounter +0x00007ff829708000 /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication +0x00007ff918c75000 /System/Library/PrivateFrameworks/MallocStackLogging.framework/Versions/A/MallocStackLogging +0x00007ff8215b9000 /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport +0x00007ff8296c9000 /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols +0x00007ff927ff7000 /System/Library/PrivateFrameworks/OSAnalytics.framework/Versions/A/OSAnalytics +0x00007ffc192de000 /System/Library/PrivateFrameworks/VideoToolboxParavirtualizationSupport.framework/Versions/A/VideoToolboxParavirtualizationSupport +0x00007ff8217e1000 /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA +0x00007ff82385f000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS +0x00007ff818ada000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices +0x00007ff822521000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore +0x00007ff823c3d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD +0x00007ff823c35000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy +0x00007ff823833000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis +0x00007ff8224dd000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI +0x00007ff823bc7000 /usr/lib/libcups.2.dylib +0x00007ff823f99000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos +0x00007ff823fa8000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS +0x00007ff8238d8000 /usr/lib/libresolv.9.dylib +0x00007ff821a19000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal +0x00007ff82b6dc000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib +0x00007ff823ff5000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth +0x00007ffa2fae5000 /System/Library/Frameworks/AVFAudio.framework/Versions/A/AVFAudio +0x00007ff913983000 /System/Library/PrivateFrameworks/AXCoreUtilities.framework/Versions/A/AXCoreUtilities +0x00007ff8237a3000 /System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession +0x00007ff825278000 /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth +0x00007ff8218f0000 /System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience +0x00007ff8235f7000 /System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib +0x00007ff823c49000 /System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration +0x00007ff828378000 /System/Library/PrivateFrameworks/PowerLog.framework/Versions/A/PowerLog +0x00007ff828299000 /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth +0x00007ff82b6dd000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit +0x00007ff81ed9f000 /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils +0x00007ffb1cd5e000 /System/Library/PrivateFrameworks/CoreUtilsExtras.framework/Versions/A/CoreUtilsExtras +0x00007ffb26ff8000 /System/Library/PrivateFrameworks/IO80211.framework/Versions/A/IO80211 +0x00007ff91399a000 /usr/lib/libAccessibility.dylib +0x00007ff8279b4000 /System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility +0x00007ff829221000 /System/Library/PrivateFrameworks/FrontBoardServices.framework/Versions/A/FrontBoardServices +0x00007ff82acc8000 /System/Library/PrivateFrameworks/BackBoardServices.framework/Versions/A/BackBoardServices +0x00007ff8292dd000 /System/Library/PrivateFrameworks/BoardServices.framework/Versions/A/BoardServices +0x00007ff821855000 /System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/IconFoundation +0x00007ff82723e000 /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore +0x00007ffa187a8000 /System/Library/Frameworks/OSLog.framework/Versions/A/OSLog +0x00007ff918c02000 /System/Library/PrivateFrameworks/LoggingSupport.framework/Versions/A/LoggingSupport +0x000000010e192000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/server/libjvm.dylib +0x00007ff918bae000 /usr/lib/libstdc++.6.dylib +0x000000010d3cf000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libverify.dylib +0x000000010d4b5000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libjava.dylib +0x000000010d529000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libinstrument.dylib +0x000000010d668000 /private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/libasyncProfiler.so +0x000000010d499000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libzip.dylib +0x000000010d56a000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libjimage.dylib +0x00000001388fe000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libnio.dylib +0x000000013893d000 /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/libnet.dylib + + +VM Arguments: +jvm_args: -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=52749:/Applications/IntelliJ IDEA.app/Contents/bin -agentpath:/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/libasyncProfiler.so=start,jfr,event=cpu,interval=10ms,jfrsync=profile,cstack=no,file=/Users/tobiasstamann/All_in_annotationprocessor_2024_03_07_161414.jfr -Dfile.encoding=UTF-8 +java_command: com.intellij.rt.junit.JUnitStarter -ideVersion5 @w@/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/idea_working_dirs_junit.tmp @/private/var/folders/rq/h11x21g50yd1461nbvmm27qm0000gp/T/idea_junit.tmp -socket52748 +java_class_path (initial): /Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit5-rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/tobiasstamann/Projects/Opensource/holi-annotation-processor/tools/target/test-classes:/Users/tobiasstamann/Projects/Opensource/holi-annotation-processor/tools/target/classes:/Users/tobiasstamann/Projects/Opensource/holi-annotation-processor/common/target/classes:/Users/tobiasstamann/Projects/Opensource/holi-annotation-processor/templating/target/classes:/Users/tobiasstamann/.m2/repository/io/toolisticon/cute/cute/1.0.0_RC1/cute-1.0.0_RC1.jar:/Users/tobiasstamann/.m2/repository/io/toolisticon/cute/extension-api/1.0.0_RC1/extension-api-1.0.0_RC1.jar:/Users/tobiasstamann/.m2/repository/io/toolisticon/cute/extension-plainjava/1.0.0_RC1/extension-plainjava-1.0.0_RC1.jar:/Users/tobiasstamann/.m2/repository/io/toolisticon/fluapigen/fluapigen-api/0.8.3/fluapigen-api-0.8.3.jar:/Users/tobiasstamann/.m2/repository/io/toolisticon/fluapigen/fluapigen-validation-api/0.8.3/fluapigen-validation-api-0.8.3.jar:/Users/tobiasstamann/.m2/repository/io/toolisticon/cute/extension-modulesupport/1.0.0_RC1/extension-modulesupport-1.0.0_RC1.jar:/Users/tobiasstamann/Projects/Opensource/holi-annotation-processor/cute/target/classes:/Users/tobiasstamann/.m2/repository/io/toolisticon/cute/cute-legacy/1.0.0_RC1/cute-legacy-1.0.0_RC1.jar:/Users/tobiasstamann/.m2/repository/junit/junit/4.13.2/junit-4.13.2.jar:/Users/tobiasstamann/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/tobiasstamann/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/tobiasstamann/.m2/repository/org/mockito/mockito-core/4.3.1/mockito-core-4.3.1.jar:/Users/tobiasstamann/.m2/repository/net/bytebuddy/byte-buddy/1.12.7/byte-buddy-1.12.7.jar:/Users/tobiasstamann/.m2/repository/net/bytebuddy/byte-buddy-agent/1.12.7/byte-buddy-agent-1.12.7.jar:/Users/tobiasst +Launcher Type: SUN_STANDARD + +Logging: +Log output configuration: +#0: stdout all=warning uptime,level,tags +#1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=/Users/tobiasstamann/.rvm/gems/ruby-2.4.1/bin:/Users/tobiasstamann/.rvm/gems/ruby-2.4.1@global/bin:/Users/tobiasstamann/.rvm/rubies/ruby-2.4.1/bin:/Users/tobiasstamann/Library/Caches/activestate/bin:/Users/tobiasstamann/.local/ActiveState/StateTool/release/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/tobiasstamann/development/flutter/bin:/Users/tobiasstamann/Tools/openshift:/Users/tobiasstamann/.rvm/bin +SHELL=/bin/zsh + +Signal Handlers: +SIGSEGV: [libjvm.dylib+0x79ac14], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO +SIGBUS: [libjvm.dylib+0x79ac14], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGFPE: [libjvm.dylib+0x79ac14], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGPIPE: [libjvm.dylib+0x635960], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGXFSZ: [libjvm.dylib+0x635960], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGILL: [libjvm.dylib+0x79ac14], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGUSR2: [libjvm.dylib+0x6361f0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO +SIGHUP: [libjvm.dylib+0x6349db], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGINT: [libjvm.dylib+0x6349db], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGTERM: [libjvm.dylib+0x6349db], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO +SIGQUIT: [libjvm.dylib+0x6349db], sa_mask[0]=11111111111111111111111111111111, sa_flags=SA_RESTART|SA_SIGINFO + + +--------------- S Y S T E M --------------- + +OS:uname:Darwin 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:30:44 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6000 x86_64 +rlimit: STACK 8176k, CORE 0k, NPROC 2666, NOFILE 10240, AS infinity, DATA infinity, FSIZE infinity +load average:6.20 5.62 5.80 + +CPU:total 10 (initial active 10) (1 cores per cpu, 1 threads per core) family 6 model 44 stepping 0, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, aes, clmul, tsc, tscinvbit, tscinv + +Memory: 4k page, physical 16777216k(28564k free) + +vm_info: Java HotSpot(TM) 64-Bit Server VM (10.0.1+10) for bsd-amd64 JRE (10.0.1+10), built on Mar 27 2018 01:13:17 by "mach5one" with gcc 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.49) + +END.