mirror of
https://github.com/corda/corda.git
synced 2024-12-21 05:53:23 +00:00
CORDA-2050: Do not add java.lang.Class fields and properties to local type cache. (#5511)
* Fix SLF4J logging for example Gradle project. * Stop adding java.lang.Class's internal fields and properties to the local type cache. This allows us to fix ArraySerializer for the DJVM.
This commit is contained in:
parent
650264e092
commit
a9d9b668bc
@ -6,6 +6,12 @@ apply plugin: 'net.corda.plugins.quasar-utils'
|
||||
configurations {
|
||||
integrationTestCompile.extendsFrom testCompile
|
||||
integrationTestRuntime.extendsFrom testRuntime
|
||||
|
||||
compile {
|
||||
// We already have a SLF4J implementation on our runtime classpath,
|
||||
// and we don't need another one.
|
||||
exclude group: "org.apache.logging.log4j"
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@ -33,14 +39,9 @@ dependencies {
|
||||
|
||||
compile project(':core')
|
||||
compile project(':client:jfx')
|
||||
compile (project(':node-driver')) {
|
||||
// We already have a SLF4J implementation on our runtime classpath,
|
||||
// and we don't need another one.
|
||||
exclude group: 'org.apache.logging.log4j'
|
||||
}
|
||||
compile (project(':webserver')) {
|
||||
exclude group: "org.apache.logging.log4j"
|
||||
}
|
||||
compile project(':node-driver')
|
||||
compile project(':webserver')
|
||||
|
||||
testCompile project(':test-utils')
|
||||
|
||||
compile "org.graphstream:gs-core:1.3"
|
||||
@ -49,8 +50,8 @@ dependencies {
|
||||
exclude group: "junit"
|
||||
}
|
||||
|
||||
compile project(path: ":node:capsule", configuration: 'runtimeArtifacts')
|
||||
compile project(path: ":webserver:webcapsule", configuration: 'runtimeArtifacts')
|
||||
cordaRuntime project(path: ":node:capsule", configuration: 'runtimeArtifacts')
|
||||
cordaRuntime project(path: ":webserver:webcapsule", configuration: 'runtimeArtifacts')
|
||||
|
||||
// CorDapps: dependent flows and services
|
||||
compile project(':finance:contracts')
|
||||
|
@ -88,7 +88,9 @@ open class ArraySerializer(override val type: Type, factory: LocalSerializerFact
|
||||
context: SerializationContext
|
||||
): Any {
|
||||
if (obj is List<*>) {
|
||||
return obj.map { input.readObjectOrNull(it, schemas, elementType, context) }.toArrayOfType(elementType)
|
||||
return obj.map {
|
||||
input.readObjectOrNull(redescribe(it, elementType), schemas, elementType, context)
|
||||
}.toArrayOfType(elementType)
|
||||
} else throw AMQPNotSerializableException(type, "Expected a List but found $obj")
|
||||
}
|
||||
|
||||
|
@ -209,7 +209,12 @@ internal data class LocalTypeInformationBuilder(val lookup: LocalTypeLookup,
|
||||
observedType = type,
|
||||
typeIdentifier = typeIdentifier,
|
||||
constructor = null,
|
||||
properties = buildReadOnlyProperties(rawType),
|
||||
properties = if (rawType == Class::class.java) {
|
||||
// Do NOT drill down into the internals of java.lang.Class.
|
||||
emptyMap()
|
||||
} else {
|
||||
buildReadOnlyProperties(rawType)
|
||||
},
|
||||
superclass = superclassInformation,
|
||||
interfaces = interfaceInformation,
|
||||
typeParameters = typeParameterInformation,
|
||||
|
Loading…
Reference in New Issue
Block a user