Ensure Builders are only called once and "lock" mutable builder parameters in object constructors.
@bevzzz ci sta già lavorando.
Dal 4/7/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Builders in their current form suffer from a potential misuse where calling a builder setter after calling .build() may alter the state of a previously-create "target" object.
Consider:
var b = new CollectionConfig.Builder("CarelessCollection");
b.properties(Property.text("text_a"));
var cfg = b.build();
// Somewhere later in the code
b.properties(Property.text("text_b"));
client.collections.create(cfg);
CarelessCollection is created with 2 properties, despite what you might expect.
Here's another good illustration of this point: https://github.com/weaviate/java-client/pull/399#discussion_r2179514203
We should:
- In all constructors that accept a Builder, wrap all mutable fields (list / map) in their unmodifiable views:
Collections.unmodifiableListetc. - Check
.build()is only called once per object. Sth like this.
- Lingua principale
- Java
- Stelle
- 34
- Fork
- 30
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di weaviate/java-client
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
weaviate/java-client#621 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
weaviate/java-client#619 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
weaviate/java-client#615 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
weaviate/java-client#607 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
weaviate/java-client#603 ·
Tutte le issue di weaviate/java-client
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
liquid-java/liquidjava#321 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
rename config parameterAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
OpenConext/OpenConext-access#1015 ·
I maintainer di solito rispondono entro 1 giorno
-
68000: FDBcc branch target is 2 bytes too low (uses inst_start+2 instead of the displacement word)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NationalSecurityAgency/ghidra#9702 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
apache/rocketmq-dashboard#5358 ·
I maintainer di solito rispondono entro 3 giorni