Skip to content

Missing translation files keep PhraseAppSyncTask to fail #3

@cod3hulk

Description

@cod3hulk

When an empty local is added to the project, without any translations, the update process of the translations will fail due to the missing translation file.

com.mytaxi.apis.phrase.exception.PhraseAppApiException: Could not get data from cache! Somethings goes wrong.
	at com.mytaxi.apis.phrase.api.GenericPhraseAPI.getCachedData(GenericPhraseAPI.java:138)
	at com.mytaxi.apis.phrase.api.GenericPhraseAPI.handleResponse(GenericPhraseAPI.java:162)
	at com.mytaxi.apis.phrase.api.localedownload.DefaultPhraseLocaleDownloadAPI.downloadLocale(DefaultPhraseLocaleDownloadAPI.java:87)
	at com.mytaxi.apis.phrase.tasks.PhraseAppSyncTask.run(PhraseAppSyncTask.java:87)

This leads to the failing update for the remaining locales because of the implementation in the PhraseAppSyncTask is not handling the error inside the update loop of the locales:

    @Override
    public void run()
    {
        try
        {
            LOG.info("START Update Messages in messagesPath: " + fileService.getGeneratedResourcesFoldername());

            checkAndGetPhraseLocales();

            for (final String projectId : projectIds)
            {
                final List<PhraseLocale> locales = getLocales(projectId);
                if (locales != null)
                {
                    for (final PhraseLocale locale : locales)
                    {
                        byte[] translationByteArray = localeDownloadAPI.downloadLocale(projectId, locale.getId(), format);
                        if (translationByteArray == null || translationByteArray.length == 0)
                        {
                            LOG.warn("Could not receive any data from PhraseAppApi for locale: {}. Please check configuration in PhraseApp!", locale);
                            translationByteArray = "no.data.received=true".getBytes();
                        }
                        fileService.saveToFile(projectId, translationByteArray, locale.getCode().replace('-', '_'));
                    }
                }
            }

            LOG.info("FINISHED Update Messages");
        }
        catch (final Exception e)
        {
            LOG.error("Error due running the PhraseAppSyncTask", e);
        }
   }

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions