Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-159085

GraphQL throws error when fetching objects having data on attachment field

Details

    Description

      Issue
      GraphQL throws error when fetching objects having data on attachment field

      Steps to Reproduce
      1. Start up Liferay DXP 7.4 + U32
      2. Go to Control Panel > Objects
      3. Click the tricolon on the top right corner > click Import Object
      4. Set the Name as MovementPhase, and set the JSON File as Object_MovementPhase_42538_20220715082823601.json (for u32)
      5. Publish the Movement Phase Object
      6. Go to Control Panel > Content > Movement Phase
      7. Create an entry in the following manner:

      • Logo: (blank)
      • Name: Hello
        8. Go to GraphQL http://localhost:8080/o/api
        9. Run the following query:
        {
        c {
          movementPhases {
            items {
              c_movementPhaseId
              dateCreated
              dateModified
              externalReferenceCode
              logo
              movementPhaseId
              name
              status
             }
           }
          }
        }

        10. Assert that you can see the entry that was created
        11. Go back to Control Panel > Content > Movement Phase, and create a new entry in the following manner:

      • Logo: Upload an image file to the Documents and Media store, and select it
      • Name: Picture
        12. Go back to GraphQL, and run the exact same query again:
        {
        c {
          movementPhases {
            items {
              c_movementPhaseId
              dateCreated
              dateModified
              externalReferenceCode
              logo
              movementPhaseId
              name
              status
             }
           }
          }
        }

      Actual Behavior
      GraphQL response works, but shows an Errno 400 when trying to render the image:

      {
        "errors": [
          {
            "message": "Can't serialize value (/c/movementPhases/items[0]/logo) : Expected type 'Long' but was ''.",
            "locations": [],
            "errorType": "DataFetchingException",
            "path": null,
            "extensions": {
              "exception": {
                "errno": 400
              },
              "code": "Bad Request"
            }
          }
        ],
        "data": {
          "c": {
            "movementPhases": {
              "items": [
                {
                  "c_movementPhaseId": null,
                  "dateCreated": "2022-07-18T02:04:42Z",
                  "dateModified": "2022-07-18T02:08:15Z",
                  "externalReferenceCode": "43038",
                  "logo": null,
                  "movementPhaseId": 43038,
                  "name": "aaa",
                  "status": "approved"
                }
              ]
            }
          }
        }
      }

      The following error appears in the server logs:

      2022-07-18 05:24:02.137 WARN  [http-nio-8080-exec-7][ExecutionStrategy:644] Can't serialize value (/c/movementPhases/items[0]/logo) : Expected type 'Long' but was ''.
      graphql.schema.CoercingSerializeException: Expected type 'Long' but was ''.
      	at graphql.Scalars$6.serialize(Scalars.java:352) ~[graphql-java-12.0.jar:?]
      	at graphql.Scalars$6.serialize(Scalars.java:324) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForScalar(ExecutionStrategy.java:561) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:412) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) ~[graphql-java-12.0.jar:?]
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) ~[?:1.8.0_331]
      	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:517) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:472) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:410) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) ~[graphql-java-12.0.jar:?]
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) ~[?:1.8.0_331]
      	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) ~[graphql-java-12.0.jar:?]
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) ~[?:1.8.0_331]
      	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) ~[graphql-java-12.0.jar:?]
      	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) ~[?:1.8.0_331]
      	at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) ~[?:1.8.0_331]
      	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.Execution.executeOperation(Execution.java:160) ~[graphql-java-12.0.jar:?]
      	at graphql.execution.Execution.execute(Execution.java:101) ~[graphql-java-12.0.jar:?]
      	at graphql.GraphQL.execute(GraphQL.java:591) ~[graphql-java-12.0.jar:?]
      	at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521) ~[graphql-java-12.0.jar:?]
      	at graphql.GraphQL.executeAsync(GraphQL.java:495) ~[graphql-java-12.0.jar:?]
      	at graphql.GraphQL.execute(GraphQL.java:426) ~[graphql-java-12.0.jar:?]
      	at graphql.servlet.GraphQLQueryInvoker.query(GraphQLQueryInvoker.java:102) ~[graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.GraphQLQueryInvoker.query(GraphQLQueryInvoker.java:98) ~[graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.GraphQLQueryInvoker.query(GraphQLQueryInvoker.java:44) ~[graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.AbstractGraphQLHttpServlet.query(AbstractGraphQLHttpServlet.java:338) ~[graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.AbstractGraphQLHttpServlet.lambda$init$4(AbstractGraphQLHttpServlet.java:212) ~[graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.AbstractGraphQLHttpServlet.doRequest(AbstractGraphQLHttpServlet.java:309) [graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.AbstractGraphQLHttpServlet.doRequestAsync(AbstractGraphQLHttpServlet.java:300) [graphql-java-servlet-7.5.0.jar:?]
      	at graphql.servlet.AbstractGraphQLHttpServlet.doPost(AbstractGraphQLHttpServlet.java:330) [graphql-java-servlet-7.5.0.jar:?]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [servlet-api.jar:4.0.FR]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_331]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_331]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_331]
      	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_331]
      	at com.liferay.portal.vulcan.internal.graphql.servlet.GraphQLServletExtender$9.invoke(GraphQLServletExtender.java:666) [bundleFile:?]
      	at com.sun.proxy.$Proxy958.service(Unknown Source) [?:?]
      	at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:50) [bundleFile:?]
      	at com.liferay.portal.security.auth.verifier.internal.tracker.AuthVerifierFilterTracker$RemoteAccessFilter.doFilter(AuthVerifierFilterTracker.java:164) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration.doFilter(FilterRegistration.java:121) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:45) [bundleFile:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147) [portal-kernel.jar:?]
      	at com.liferay.portal.servlet.filters.authverifier.AuthVerifierFilter.processFilter(AuthVerifierFilter.java:212) [portal-impl.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration.doFilter(FilterRegistration.java:121) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:45) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:70) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:120) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:372) [bundleFile:?]
      	at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.service(ProxyServlet.java:70) [bundleFile:?]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
      	at com.liferay.portal.module.framework.ModuleFrameworkServletAdapter.service(ModuleFrameworkServletAdapter.java:54) [portal-impl.jar:?]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
      	at com.liferay.shielded.container.internal.proxy.ServletWrapper.service(ServletWrapper.java:113) [com.liferay.shielded.container.impl.jar:?]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.56]
      	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.56]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.56]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124) [portal-kernel.jar:?]
      	at com.liferay.portal.remote.cors.internal.servlet.filter.PortalCORSServletFilter.processFilter(PortalCORSServletFilter.java:237) [bundleFile:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62) [portal-impl.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.servlet.filters.lockout.LockoutFilter.processFilter(LockoutFilter.java:58) [portal-impl.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147) [portal-kernel.jar:?]
      	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88) [portal-impl.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147) [portal-kernel.jar:?]
      	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:245) [portal-impl.jar:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99) [portal-kernel.jar:?]
      	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) [urlrewritefilter-4.0.4.jar:4.0.4]
      	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) [urlrewritefilter-4.0.4.jar:4.0.4]
      	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) [urlrewritefilter-4.0.4.jar:4.0.4]
      	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) [urlrewritefilter-4.0.4.jar:4.0.4]
      	at com.liferay.portal.url.rewrite.filter.internal.URLRewriteFilter.processFilter(URLRewriteFilter.java:99) [bundleFile:?]
      	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99) [portal-kernel.jar:?]
      	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104) [portal-kernel.jar:?]
      	at com.liferay.shielded.container.internal.proxy.FilterWrapper.doFilter(FilterWrapper.java:79) [com.liferay.shielded.container.impl.jar:?]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.56]
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [catalina.jar:9.0.56]
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.56]
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.56]
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [catalina.jar:9.0.56]
      	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-coyote.jar:9.0.56]
      	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.56]
      	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) [tomcat-coyote.jar:9.0.56]
      	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) [tomcat-coyote.jar:9.0.56]
      	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.56]
      	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.56]
      	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.56]
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.56]
      	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_331]

      Expected Behavior
      The query should not throw an error, and either render the image, or at least show the reference to the image.

      Reproduced in

      * Please see Zendesk Support tab for further comments and attachments.

      Attachments

        Issue Links

          Activity

            People

              support-lep@liferay.com SE Support
              thien.quach Thien Quach
              Kiyoshi Lee Kiyoshi Lee
              Feliphe Marinho Feliphe Marinho
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                8 weeks, 2 days ago

                Packages

                  Version Package
                  7.4.3.36 CE GA36
                  7.4.3.37 CE GA37
                  Master