Message Boards

Error in plugin 'metal-tools-soy' - Custom form field type 7.4

thumbnail
Prashant Ballal, modified 2 Years ago.

Error in plugin 'metal-tools-soy' - Custom form field type 7.4

New Member Post: 1 Join Date: 1/19/22 Recent Posts

Hi,

I am trying to create a custom form field type in Liferay DXP 7.4. I am using dxp-7.4-u3. I created the form field module using the below command:

blade create -t form-field -v 7.4 -p com.liferay.demo.formfieldtype -c Time DDMTypeDemoText

module created successfully without any compilation error.

But when I try to build the module I am getting the below error:

> metalsoy --externalMsgFormat "Liferay.Language.get(‘\$2’)" --soyDeps "./node_modules/clay-*/src/**/*.soy" "./node_modules/com.liferay.dynamic.data.mapping.form.field.type/META-INF/resources/+(FieldBase|components)/**/*.soy"

Compiling soy
Error in plugin 'metal-tools-soy'
Message:
    Compile error:
Exception in thread "main" java.lang.ExceptionInInitializerError
	at com.google.inject.internal.cglib.reflect.$FastClass$Generator.getProtectionDomain(FastClass.java:73)
	at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:206)
	at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65)
	at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:252)
	at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:203)
	at com.google.inject.internal.ProviderMethod.create(ProviderMethod.java:69)
	at com.google.inject.internal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:275)
	at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:144)
	at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:123)
	at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
	at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:349)
	at com.google.inject.AbstractModule.install(AbstractModule.java:122)
	at com.google.template.soy.SoyModule.configure(SoyModule.java:56)
	at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
	at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
	at com.google.inject.spi.Elements.getElements(Elements.java:110)
	at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
	at com.google.inject.Guice.createInjector(Guice.java:99)
	at com.google.inject.Guice.createInjector(Guice.java:73)
	at com.google.template.soy.MainClassUtils.createInjector(MainClassUtils.java:285)
	at com.google.template.soy.AbstractSoyCompiler.doMain(AbstractSoyCompiler.java:174)
	at com.google.template.soy.AbstractSoyCompiler.access$000(AbstractSoyCompiler.java:43)
	at com.google.template.soy.AbstractSoyCompiler$2.main(AbstractSoyCompiler.java:158)
	at com.google.template.soy.MainClassUtils.runInternal(MainClassUtils.java:246)
	at com.google.template.soy.AbstractSoyCompiler.run(AbstractSoyCompiler.java:154)
	at com.google.template.soy.AbstractSoyCompiler.runMain(AbstractSoyCompiler.java:146)
	at com.google.template.soy.SoyToIncrementalDomSrcCompiler.main(SoyToIncrementalDomSrcCompiler.java:61)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @4501b7af
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
	at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
	at com.google.inject.internal.cglib.core.$ReflectUtils$1.run(ReflectUtils.java:52)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:42)
	... 28 more

Finally, it shows build success but when I try to use the field while creating the form it shows render issue.

Any idea why this is happening? Thanks in advance.