Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

When using ProductSync with multiple ProductDrafts that reference product types, the library may issue multiple duplicate requests to fetch all product types.

Aperta
#1,228 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java
Ambito
backend

Direzione di ricerca

Inizia da ProductTypeServiceImpl.fetchCachedProductAttributeMetaDataMap(productTypeId) e traccia fetchAndCacheProductMetaData e QueryUtils.queryAll. Riproduci il problema con ProductSync e più ProductDrafts che fanno riferimento a tipi di prodotto; il lavoro è completato quando un’unica attività asincrona di riscaldamento della cache viene condivisa dalle chiamate successive invece di eseguire query complete duplicate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Describe the bug
ProductTypeServiceImpl.fetchCachedProductAttributeMetaDataMap(productTypeId) checks:

if (productsAttributesMetaData.isEmpty()) { return fetchAndCacheProductMetaData(productTypeId); }
On the very first calls, the cache is still empty.
Each concurrent (or even sequential but fast) call triggers its own QueryUtils.queryAll(...).
Because the caching happens asynchronously, subsequent calls still see the cache as empty until the first queryAll finishes.
As a result, multiple identical full queries for product types are executed.

To Reproduce
Steps to reproduce the behavior:
Call sync with multiple ProductDrafts that reference product types

Expected behavior
The first call should trigger one asynchronous cache warm-up.
All subsequent calls (while the warm-up is in progress) should wait for the same future instead of starting new queries.

Lingua principale
Java
Stelle
40
Fork
41
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di commercetools/commercetools-sync-java

Tutte le issue di commercetools/commercetools-sync-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.