Error in plugin 'metal-tools-soy' - Custom form field type 7.4Error in plugin 'metal-tools-soy' - Custom form field type 7.4https://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1213365182024-03-28T22:30:34Z2024-03-28T22:30:34ZError in plugin 'metal-tools-soy' - Custom form field type 7.4Prashant Ballalhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1213365172022-01-19T13:42:55Z2022-01-19T13:05:58Z<p>Hi,</p>
<p>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:</p>
<pre>
<code class="language-java">blade create -t form-field -v 7.4 -p com.liferay.demo.formfieldtype -c Time DDMTypeDemoText</code></pre>
<p>module created successfully without any compilation error.</p>
<p>But when I try to build the module I am getting the below error:</p>
<pre>
<code class="language-java">> 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
</code></pre>
<p>Finally, it shows build success but when I try to use the field while
creating the form it shows render issue.</p>
<p>Any idea why this is happening? Thanks in advance.&l