OpenTelemetry auto-instrumentation and instrumentation libraries for Java
Go to file
Luca Abbati fac3a93445
Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0
The issue we are trying to fix here seems to be a result of two concurrent issues.

Cassandra driver's used by atlas 1.1.0 brings in a old version of netty < 4.0.23.

In version 4.0.25 netty raised exception in `UniqueName` class for duplicate name

```
if (map.putIfAbsent(name, Boolean.TRUE) != null) {
            throw new IllegalArgumentException(String.format("'%s' is already in use", name));
        }
```

This changed in 4.0.26 where exception was not thrown, instead the duplicate key was just ignored.

```
    protected UniqueName(String name) {
        this.name = checkNotNull(name, "name");
        id = nextId.incrementAndGet();
    }
```

Now this alone would not be enough. The only way I was able to reproduce is if two different class loaders tries to load the
same class `AttributeKeys` twice.
I tried to look into Atlas source code (which is huge) and I could not find a clear path of how this would be possible.

Further more, looking at some build scripts that a user experiencing this issue provided,
it looks like they are doing everything correctly and there is nothing they should change.

In conclusion, I believe that even if this is not a very clean approach,
we should be resilient to this use case, when a customer using netty <4.0.25 in an
older version of Apache Atlas (or with some sort of class loader behavior).
2019-07-16 11:02:25 +02:00
.circleci Run tests on zulu11 2019-06-25 11:31:55 -04:00
.github Fix log message and add ignores 2019-05-24 11:44:10 -07:00
buildSrc Remove legacy transitive dependencies no longer bundled with the JVM from muzzle tests 2019-06-20 21:29:46 -04:00
dd-java-agent Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0 2019-07-16 11:02:25 +02:00
dd-smoke-tests Improve smoke test app log file naming 2019-06-21 12:08:31 -04:00
dd-trace Fix typo 2019-06-06 09:41:36 -04:00
dd-trace-api Add "http.query.string" and "http.fragment.string" to DDTags 2019-06-21 14:05:34 -04:00
dd-trace-ext Use lombok builder for Tracer construction. 2019-01-29 15:56:46 -08:00
dd-trace-ot Formatting fix 2019-07-11 13:45:40 -04:00
gradle Update gradle to 5.5.1 2019-07-12 10:07:08 -04:00
utils/gc-utils Stop making hard references in HelperInjector 2019-02-27 19:09:01 -08:00
.editorconfig Apply and enforce google checkstyle and formatting 2017-07-12 07:47:19 -07:00
.gitignore Add crash dumps to gitignore 2019-06-24 12:57:08 -04:00
.gitmodules Use git submodules to load metrics.yaml files 2019-01-08 10:13:18 -08:00
CONTRIBUTING.md Apply suggestions from CR #827 2019-05-17 10:15:03 +02:00
LICENSE Create LICENSE 2017-07-13 11:10:37 -04:00
LICENSE-3rdparty.csv Remove Byteman now that instrumentation is migrated 2017-12-07 13:11:26 -08:00
NOTICE Create NOTICE 2017-07-13 10:16:04 -04:00
README.md Remove documentation from readme and point to official docs 2018-01-31 16:31:25 -08:00
dd-trace-java.gradle Update gradle to 5.5.1 2019-07-12 10:07:08 -04:00
gradle.properties Try doubling the metaspace size to fix check task. 2019-01-04 13:43:40 -08:00
gradlew Update gradle to 5.5.1 2019-07-12 10:07:08 -04:00
gradlew.bat Update gradle to 5.5.1 2019-07-12 10:07:08 -04:00
settings.gradle Change jax-rs-client project names to match versions 2019-07-10 13:25:48 -06:00

README.md

Datadog Java APM

To use and configure Datadog Java APM, see https://docs.datadoghq.com/tracing/languages/java