Ensure Builders are only called once and "lock" mutable builder parameters in object constructors.
@bevzzz y travaille déjà.
Depuis le 4/7/2025.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
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.
- Langage dominant
- Java
- Étoiles
- 34
- Forks
- 29
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de weaviate/java-client
-
v6: ShardReplica.shardName has no @SerializedName, so the shard is always nullPeut-être pris @dudanogueira l’a pris il y a 39 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
weaviate/java-client#621 ·
-
v6: Shard.vectorQueueLenght is misspelled, so the vector queue length is always 0Peut-être pris @dudanogueira l’a pris il y a 39 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
weaviate/java-client#619 ·
-
v6: tenant updates are not split at the server's 100-tenant limit, so activate/deactivate fails above 100Peut-être pris @dudanogueira l’a pris il y a 51 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
weaviate/java-client#615 ·
-
v6: NvidiaReranker sends "baseUrl"; the module reads "baseURL"Peut-être pris @dudanogueira l’a pris il y a 54 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
weaviate/java-client#607 ·
-
v6: rerank cannot be used with BM25, Hybrid or FetchObjectsPeut-être pris @dudanogueira l’a pris il y a 55 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
weaviate/java-client#603 ·
Toutes les issues de weaviate/java-client
Issues similaires
-
[Bug] dubbo.protocol.triple.max-message-size is only read from OS environment variablesPeut-être pris @CCCLL l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
hierynomus/sshj#1070 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
intellij-elixir/intellij-elixir#4492 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
-
[Server] OpenAPI 3.1 YAML specs generate Object fields: resolveToJSON drops every schema typeOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
quarkiverse/quarkus-openapi-generator#1796 · 1 commentaire ·