Ensure Builders are only called once and "lock" mutable builder parameters in object constructors.
@bevzzz já está trabalhando nisso.
Desde 4/7/2025.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 34
- Forks
- 29
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de weaviate/java-client
-
v6: ShardReplica.shardName has no @SerializedName, so the shard is always nullTalvez já em andamento @dudanogueira assumiu há 39 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 90/100
weaviate/java-client#621 ·
-
v6: Shard.vectorQueueLenght is misspelled, so the vector queue length is always 0Talvez já em andamento @dudanogueira assumiu há 39 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
weaviate/java-client#619 ·
-
v6: tenant updates are not split at the server's 100-tenant limit, so activate/deactivate fails above 100Talvez já em andamento @dudanogueira assumiu há 51 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
weaviate/java-client#615 ·
-
v6: NvidiaReranker sends "baseUrl"; the module reads "baseURL"Talvez já em andamento @dudanogueira assumiu há 54 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
weaviate/java-client#607 ·
-
v6: rerank cannot be used with BM25, Hybrid or FetchObjectsTalvez já em andamento @dudanogueira assumiu há 54 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
weaviate/java-client#603 ·
Todas as issues de weaviate/java-client
Issues semelhantes
-
[Bug] dubbo.protocol.triple.max-message-size is only read from OS environment variablesTalvez já em andamento @CCCLL assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
hierynomus/sshj#1070 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
intellij-elixir/intellij-elixir#4492 ·
Mantenedores costumam responder em até 1 dia
-
[Server] OpenAPI 3.1 YAML specs generate Object fields: resolveToJSON drops every schema typeAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
quarkiverse/quarkus-openapi-generator#1796 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
quarkiverse/quarkus-jooq#324 ·
Mantenedores costumam responder em até 1 dia