Skip to Content
0
Former Member
Oct 21, 2016 at 09:01 AM

Product image conversion issue

907 Views

We have a requirement that client uploads the new products through the hotfolder. As part of that, he will upload one image of the product and we need to convert it into different sizes to display in the storefront.

I am trying to do this using the MediaConversionJob. I have created the impex in below order.

 INSERT_UPDATE ConversionMediaFormat;qualifier[unique=true];inputFormat(qualifier);conversion
;SMALL;SMALL;-resize 30x30!

INSERT_UPDATE ConversionGroup;code[unique=true];supportedFormats(qualifier)
;productMediaConversionGroup;SMALL

INSERT_UPDATE MediaContainer;qualifier[unique=true];$catalogVersion;conversionGroup(code)
;productMediaContainer;;productMediaConversionGroup

INSERT_UPDATE Media;code[unique=true];mediaContainer(qualifier,$catalogVersion);$catalogVersion; mime;realfilename;mediaFormat(qualifier);@media[translator=de.hybris.platform.impex.jalo.media.MediaDataTranslator][forceWrite=true];
;testImage;productMediaContainer;;image/jpeg;testImage.jpg;Default-WorkingFormat;$siteResource/images/testImage.jpg;

INSERT_UPDATE MediaConversionCronJob;code[unique=true];$catalogVersion;job(code);includedFormats(qualifier);sessionLanguage(isoCode[default=$lang])
;productMediaConversionCronJob;;mediaConversionJob;SMALL;

When I run the ProductMediaConversionCronJob I am getting the below issue.

WARN  [MediaConversionJob-#0] [DefaultLockRowInTransactionStrategy] Row locking not supported in HSQLDB.
Exception in thread "MediaConversionJob-#0" java.lang.StackOverflowError
        at java.lang.StringBuilder.append(StringBuilder.java:136)
        at org.apache.logging.log4j.core.pattern.LevelPatternConverter.format(LevelPatternConverter.java:124)
        at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
        at org.apache.logging.log4j.core.layout.PatternLayout$PatternSerializer.toSerializable(PatternLayout.java:289)....
.... at de.hybris.platform.tx.Transaction.execute(Transaction.java:1188)
 at de.hybris.platform.tx.Transaction.execute(Transaction.java:1153)
 at de.hybris.platform.mediaconversion.conversion.DefaultMediaConversionService.convertInTransaction(DefaultMediaConversionService.java:380)
 at de.hybris.platform.mediaconversion.conversion.DefaultMediaConversionService.getOrConvert(DefaultMediaConversionService.java:323)
 at de.hybris.platform.mediaconversion.conversion.DefaultMediaConversionService.doConvert(DefaultMediaConversionService.java:440)
 at de.hybris.platform.mediaconversion.conversion.DefaultMediaConversionService$2.execute(DefaultMediaConversionService.java:398)
 at de.hybris.platform.tx.Transaction.execute(Transaction.java:1188)

Is my approach is correct? Can anybody tell me how to resolve this issue. Thanks.