Commit graph

85 commits

Author SHA1 Message Date
Cervator
2ed6da9cb2 fix: null-check setter and pass value in ObjectFieldMapTypeHandler.deserialize
Two bugs in deserialize for private fields:
1. findSetter(field) can return null — no null check (NPE risk)
2. setter.invoke(result) passed no value argument — the setter was
   called with zero args, silently failing to set the field

Fixed to match the serialize side's pattern: null-check the setter,
log an error if missing, and pass fieldValue.get() as the argument.

CodeRabbit flagged this on PR #5299 (outside-diff-range, critical).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 20:37:01 -04:00
Benjamin Amos
9537e27db0 temp: gestalt-di migration changes 2025-04-15 20:36:59 +01:00
soloturn
20d710d686
gradle versions catalog, not yet for build-logic (#5283)
introduce a gradle versions catalog to share dependency versions accross
multiple promects, description here:
https://docs.gradle.org/current/userguide/platforms.html.

this does not yet work for build-logic, unfortunately, see ticket:
https://github.com/gradle/gradle/issues/15383.
2024-10-13 23:07:10 +02:00
jdrueckert
96e8a783d1
Revert "Revert "feat: upgrade to Gestalt 8 (#5267)" (#5270)" (#5271)
This reverts commit 1cabdb369d.
2024-08-04 13:12:26 +02:00
jdrueckert
1cabdb369d
Revert "feat: upgrade to Gestalt 8 (#5267)" (#5270)
This reverts commit 7f47891409.
2024-08-03 14:28:01 +02:00
BenjaminAmos
7f47891409
feat: upgrade to Gestalt 8 (#5267)
* feat: upgrade to Gestalt 8
* fix: fix failing serialisation tests due to gestalt 8 changes
2024-07-29 18:04:56 +02:00
BenjaminAmos
ed7a3d64e4
test: add private serialisation cases to type serialiser tests (#5217) 2024-03-08 09:37:57 +01:00
BenjaminAmos
23b83d6a38
feat: prevent serialisation of private component fields (#5208)
* feat: prevent serialisation of private component fields

* log line shorter for ComponentTypeHandlerFactory

* feat(TypeHandlerLibrary): do not serialise private fields in ObjectFieldMapTypeHandler by default

* fix: fix ObjectFieldMapTypeHandlerFactoryTest tests

* fix: fix TypeSerializerTest tests

* fix: fix VectorTypeSerializerTest tests

* fix: fix BlockAreaTypeHandlerTest tests

* style: fix checkstyle issues in TypeSerializerTest.java

* fix: catch setter errors explicitly in ObjectFieldTypeMapHandler

---------

Co-authored-by: soloturn <soloturn@gmail.com>
Co-authored-by: jdrueckert <jd.rueckert@googlemail.com>
2024-03-03 08:49:35 +01:00
jdrueckert
397652ed61
chore: consume gestalt v7.2.0 (#5210) 2024-02-04 20:56:15 +00:00
soloturn
20da7f2b0a
chore: upgrade slf4j to 2.0.11 (#5207) 2024-01-21 21:15:21 +00:00
soloturn
8f37f92a3c
build: migrate subprojects.settings.gradle to kotlin (#5203) 2024-01-08 19:16:47 +00:00
soloturn
f3140efa1e
build: prepare subprojects.settings.gradle for kotlin (#5204) 2024-01-06 19:12:35 +00:00
jdrueckert
0c2b722412
qa: parametrize logger usages (#5181)
* Revert "revert: "qa: parametrize logger usages (#5173)" (#5180)"

This reverts commit 4f42a8fa1a.

* revert upgrade slf4j-2.0

* micrometer 1.9.8 --> 1.9.12

* qa, still use old slf4j, feedback jdrueckert.

gradle does not care about the logger definition in engine-tests, it
uses the one from engine also for the tests. remove it to not confuse.

---------

Co-authored-by: soloturn <soloturn@gmail.com>
2023-12-06 19:40:17 +00:00
soloturn
1b57c1b436
build: update dependencies (#5189)
* gradle-8.5, full java-21 support. idea-ext plugin 1.1.7.
* junit-bom 5.x.x -> 5.10.1
* lwjgl 3.3.1 -> 3.3.3
2023-12-05 18:04:04 +01:00
jdrueckert
4f42a8fa1a
revert: "qa: parametrize logger usages (#5173)" (#5180)
This reverts commit c56c4dde72.
2023-11-19 22:16:39 +01:00
jdrueckert
c56c4dde72
qa: parametrize logger usages (#5173)
PMD Rule Docs: https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#guardlogstatement

* upgrade slf4j-2.0, permit passing suppliers to loggers (lazy evaluation) (#5174)
* parametrize logs
* remove superfluous toString() calls
* reuse existing local variables in log
* introduce new local variable to use in logic and logs

Co-authored-by: soloturn <soloturn@gmail.com>
Co-authored-by: Tobias Nett <skaldarnar@googlemail.com>
2023-11-19 21:48:44 +01:00
soloturn
8b4b6b92b9
qa: fix typehandlerlibrary spotbugs findings (#5154)
* kotlin jps updated itself
* update spotbugs version to consume AsserThrows error fix (https://github.com/spotbugs/spotbugs/issues/2667)
* parametrize logs
* make fields final
* remove unused logger
* suppress PMD.ArrayIsStoredDirectly and PMD.MethodReturnsInternalArray until proper security assessment (https://github.com/MovingBlocks/Terasology/issues/5176)
* respect inner type last rule (https://stackoverflow.com/questions/25158939/what-motivation-is-behind-checkstyle-inner-type-last-rule)
* replace assertEquals with assertArrayEquals for arrays
* suppress warning for unused field in ObjectFieldMapTypeHandlerFactoryTest (Direct member access is not expected. TypeHandler factory dynamically loads type handlers on type handler creation based on member types of input class TypeInfo.)

Co-authored-by: jdrueckert <jd.rueckert@googlemail.com>
2023-11-18 10:43:58 +01:00
jdrueckert
1b286a6881
test: split and improve ObjectFieldMapTypeHandlerFactoryTests (#5168) 2023-11-13 12:33:01 +01:00
jdrueckert
1cef7c10f8
refactor: address IntelliJ QAPlug plugin findings (#5149)
* make final fields static
* remove unnecessary local before return
* remove instanceof checks in catch clause
* avoid throwing java.lang.Exception
* remove null checks covered by instanceof check
* remove toString on String objects
* remove overrides that only call their super
* remove unused private methods
* remove unnecessary if statement nesting
* remove unused local variables
* use try-with-resources to close resources after use
* use equals() to compare object references
* fix broken javadoc references
* fix disallowed self-closing and empty javadoc elements
* fix bad use of symbols in javadoc
* fix disallowed list item tag in javadoc without surrounding list
* fix erroneous javadoc tags
* fix emphasize tags in javadoc
* remove illegal throws
* remove unused imports

Related:
Terasology/CoreRendering#75
Terasology/Furnishings#17
Terasology/Health#105
Terasology/Inventory#51
Terasology/Behaviors#114
Terasology/CoreWorlds#45
Terasology/FlexiblePathfinding#32

Adds to #3859
2023-11-11 14:19:09 +01:00
Robert O'Shea
c3e2466999 Update build files to remove deprecation warnings 2023-10-26 08:06:08 +02:00
Nail Khanipov
43a7e053cc
build(gradle): upgrade gradle 6.4.2 >>> 8.2.1 (#5109)
* fix junitXmlReport.isEnabled -> required
* fix several declaration of `copyResourcesToClasses`. unitTests and integrationTests works now
* fix undeclared implicit dependency gradle errors
* update groovyw wrapper to work with Gradle 8
* use kotlin-1.9, force java-11 target
* update spotbugs version for gradle 7+, java-17, java-20 (#5126)

Co-authored-by: Benjamin Amos <benjamin.amos11@gmail.com>
Co-authored-by: jdrueckert <jd.rueckert@googlemail.com>
Co-authored-by: Tobias Nett <skaldarnar@gmail.com>
Co-authored-by: soloturn <soloturn@gmail.com>
2023-09-03 23:02:19 +02:00
Tobias Nett
1d831ead54
test(TypeHandler): More tests for empty collections (#5117)
Our type handlers should be able to deserialize the empty array `[ ]`
correctly into different collection formats, for instance, basic
`Array`s, collections like `List<T>`, or `Map<K, V>`.

This PR adds more tests to ensure that this is indeed the case.

Closes #2343.
2023-07-16 16:23:09 +02:00
Tobias Nett
828cd51be0
refactor(netork)!: rewrite ping logic (#5106)
* refactor(network): use Map in PingStockComponent

We have introduced type handlers for generic maps some time ago, and there is no need anymore to keep the ping information as separate lists.

Therefore, refactor the internal storage of ping data to use a `Map<EntityRef, Long>`.

* refactor(network):  restructure and document ServerPingSystem

* fix: more resilience on empty maps

* refactor(network)!: merge PingSubscriberComponent and PingStockComponent into PingComponent

* feat(nui): improve online players visuals

* doc(nui): docs for OnlinePlayersOverlay
2023-07-15 13:54:56 +02:00
Tobias Nett
5e3d63f186
chore(subsystems/discord): catch runtime exception and log only message (#5063) 2022-08-26 21:28:13 +02:00
jdrueckert
f3f9d9280d
fix: do not crash on unexpected map format in GenericMapTypeHandler (#5062)
Co-authored-by: Tobias Nett <skaldarnar@googlemail.com>
2022-08-23 00:10:43 +02:00
Kevin Turner
fbc40c3fe2
fix(TypeHandlerLibrary): fix error-during-error-logging in GenericMap (#5048) 2022-06-14 15:46:02 -07:00
Kevin Turner
9a122e21fb
security: upgrade dependencies (#5021)
- upgrade snowplow, logstash-logback-encoder, logback-classic, plexus-utils, protobuf-java
- remove dom4j, jetbrains NotNull annotation
2022-05-28 17:18:35 +02:00
Kevin Turner
ec8decfad5 build: make terasology-common for easy inclusion of things applicable to all subprojects 2022-05-21 13:46:39 -07:00
Nail Khanipov
1f0349f4d6
feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (#4898) 2021-12-05 14:19:57 +01:00
Kevin Turner
4c89465897
test(TypeHandlerLibrary): RuntimeDelegatingTypeHandler test failure (#3992)
This instance of Reflections did not find the test's classes under Java 11; provide an alternate SerializationSandbox.
2021-11-07 07:52:58 -08:00
Kevin Turner
12f9baba58
test(TypeHandlerLibrary): provide a logger during test execution (#4944)
Otherwise it says “defaulting to no-operation (NOP) logger implementation” and we don't see messages that could help diagnose test failures.

Fixes #4943.
2021-11-07 09:57:24 +03:00
Kevin Turner
36e88a1a9e
test: add unitTest target to TypeHandlerLibrary and facades (#4940) 2021-11-05 15:37:28 -07:00
Kevin Turner
89242ee5cb chore: upgrade to mockito 3.11.2 from 3.7.7 2021-07-02 11:11:36 -07:00
jdrueckert
e11c4f7cb5
style: fix checkstyle findings (#4781) 2021-06-20 19:50:09 +02:00
jdrueckert
7b53291de5
style: address checkstyle findings (#4758)
* resolve TypeNameCheck 
* resolve MethodTypeParameterNameCheck
* resolve MemberNameCheck 
* suppress LocalVariableNameCheck 
* resolve ClassTypeParameterNameCheck
* resolve ParameterAssignmentCheck
* suppress ParameterAssignmentCheck 
* resolve StaticVariableNameCheck
* resolve EqualsHashCodeCheck
* resolve RegexpMultilineCheck 
* resolve MethodParamPadCheck 
* suppress IllegalTypeCheck 
* resolve EmptyForIteratorPadCheck 
* resolve ArrayTypeStyleCheck 
* resolve WhitespaceAroundCheck
* resolve AnnotationUseStyleCheck
* resolve ParenPadCheck
* resolve HideUtilityClassConstructorCheck
* resolve EmptyBlockCheck
* resolve LineLengthCheck
* resolve valid MissingDeprecatedCheck
* resolve javadoc issues reported as false positives by MissingDeprecatedCheck
* resolve OperatorWrapCheck
* resolve NoWhitespaceBeforeCheck
* resolve UnusedImportsCheck
* resolve WhitespaceAfterCheck
* resolve InnerTypeLastCheck in non-test classes
* resolve DeclarationOrderCheck
* resolve FinalClassCheck
2021-06-13 12:14:49 +02:00
Kevin Turner
829aa78e5b
chore: upgrade to gestalt 7.1.0 from snapshot (#4761) 2021-06-13 01:31:38 +02:00
Tobias Nett
7619f15a11
fix: prevent NPE with DelayManager on remote clients (#4740) 2021-06-12 12:06:33 +02:00
jdrueckert
d8debffed6
chore: consume TeraNUI v3 release (#4748) 2021-06-06 12:23:14 -07:00
Tobias Nett
f8022aeee2
fix(DiscordRPC): NPE on shutdown (#4723) 2021-05-28 22:05:51 +02:00
Tobias Nett
8e265d0e08
style: fix AnnotationUseStyle (#4710) 2021-05-26 15:52:56 +02:00
Tobias Nett
2d0c434654
style: improve code style (#4702)
* cleanup imports
* update copyrights
* remove empty JavaDoc
* add missing curly braces
* fix whitespaces
* fix lines longer than 175 characters

Co-authored-by: Josephine Rueckert <jd.rueckert@googlemail.com>
2021-05-24 13:50:30 +02:00
Kevin Turner
0bd23a74f5 build: remove commented-out uses of reflections-cache 2021-04-27 14:04:18 -07:00
Kevin Turner
2b54db578a build: disable build-time cacheReflections in a more consistent way
Instead of commenting out the code in the reflection-manifest plugin, comment out its usages.

(Yes commented code is bad either way but I still feel some doubt about which way this branch is going.)
2021-04-26 11:14:33 -07:00
Kevin Turner
9204eabce1 build: factor out reflections manifest cacheReflections task [WIP]
…except now it can't find world generators
2021-04-11 16:45:31 -07:00
Kevin Turner
d3530312fb fix(DiscordRPC): null check in preShutdown
This can happen when there is a crash leading to shutdown before everything is set up.
2021-04-10 09:00:46 -07:00
Kevin Turner
b787951e99 build: add google repo to terasology-repositories build logic
Gestalt depends on some annotation library from Google.
2021-04-10 08:59:30 -07:00
Kevin Turner
2f9d4afce7 Merge remote-tracking branch 'origin/nui-gestalt-separation' into feature/migrate-gestalt-v7
engine/src/main/java/org/terasology/engine/config/flexible/ui/AutoConfigWidgetFactory.java
engine/src/main/java/org/terasology/engine/config/flexible/ui/SettingWidgetFactory.java
engine/src/main/java/org/terasology/engine/logic/players/LocalPlayerSystem.java
engine/src/main/java/org/terasology/engine/network/internal/ClientConnectionHandler.java
engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/EnterUsernamePopup.java
engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/JoinGameScreen.java
engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/SelectionScreen.java
engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/settings/PlayerSettingsScreen.java
2021-04-02 09:53:54 -07:00
Kevin Turner
0767fc44a6 Merge remote-tracking branch 'origin/develop' into nui-gestalt-separation 2021-04-02 09:15:45 -07:00
Nail Khanipov
1ef57ce5d5
feat(player-config): migrate PlayerConfig to AutoConfig (#4599) 2021-04-02 17:45:23 +02:00
Michael Pollind
e55b7f0fd7 feature: migrate to gestaltv7 2021-03-27 18:18:30 -07:00