Message Boards

Browser stuck in loop due to not initializing com.liferay.util.Normalizer

thumbnail
Abdollah Esmaeilpour, modified 3 Years ago.

Browser stuck in loop due to not initializing com.liferay.util.Normalizer

Junior Member Posts: 60 Join Date: 8/22/09 Recent Posts
My environment is Liferay 6.2, bundled with Tomcat 7, on a Linux machine. My portal was OK but without any development or change in database, I noticed that it isn't accessible. When I try to browse the home page of my site, it is stuck in a loop to refresh the home page and it never stops. Checking details using DevTools shows that the <body/>  of the page looks like this:

 

and a request to browsing /c/portal_layout gets stuck in this loop. Tomcat log shows that the root of problem is

java.lang.NoClassDefFoundError: Could not initialize class com.liferay.util.Normalizer

This is the stack trace:

17:16:47,295 WARN&nbsp; [http-bio-80-exec-2][code_jsp:128] {code="500", msg="", uri=/web/go/home}
javax.servlet.ServletException: Filter execution threw an exception
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
&nbsp;&nbsp;&nbsp; at com.iknito.security.HttpSecurityHeaders.invoke(HttpSecurityHeaders.java:25)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
&nbsp;&nbsp;&nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
&nbsp;&nbsp;&nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
&nbsp;&nbsp;&nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
&nbsp;&nbsp;&nbsp; at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
&nbsp;&nbsp;&nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
&nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.liferay.util.Normalizer
&nbsp;&nbsp;&nbsp; at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:111)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:39)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil.normalize(FriendlyURLNormalizerUtil.java:35)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.service.impl.GroupLocalServiceImpl.getFriendlyURL(GroupLocalServiceImpl.java:4071)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.service.impl.GroupLocalServiceImpl.getFriendlyURLGroup(GroupLocalServiceImpl.java:1153)
&nbsp;&nbsp;&nbsp; at sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)
&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:498)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
&nbsp;&nbsp;&nbsp; at com.sun.proxy.$Proxy32.getFriendlyURLGroup(Unknown Source)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.service.GroupLocalServiceUtil.getFriendlyURLGroup(GroupLocalServiceUtil.java:1154)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.cache.CacheFilter.getPlid(CacheFilter.java:190)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.cache.CacheFilter.isCacheableData(CacheFilter.java:286)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:403)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:70)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:263)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:226)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
&nbsp;&nbsp;&nbsp; at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
&nbsp;&nbsp;&nbsp; ... 16 more
thumbnail
Olaf Kock, modified 3 Years ago.

RE: Browser stuck in loop due to not initializing com.liferay.util.Normaliz

Liferay Legend Posts: 6403 Join Date: 9/23/08 Recent Posts
You might want to look after a couple of things:
  • Is your installation up to date? (technically it still isn't, even if it was patched, because 6.2 CE is now 4 releases back). This is not the common behavior observed with compromised installations, but I'd still capture this first
  • Check your backups. Try if a restored version (on a different server) behaves similarly, or if some defect caused your filesystem to go corrupt with actual missing data. If a restored version behaves differently: Compare the two and see where they differ.
  • Check filesystem and memory: Are you running out of resources on the server?
thumbnail
Abdollah Esmaeilpour, modified 3 Years ago.

RE: Browser stuck in loop due to not initializing com.liferay.util.Normaliz

Junior Member Posts: 60 Join Date: 8/22/09 Recent Posts
Thank you @Olaf. It seems that what prevents initialization of com.liferay.util.Normalizer is that it has problems with the utility liferay-icu4j.jar. The class Normalizer imports com.liferay.ibm.icu.text.Transliterator and initializing hot deploy thread also throws an exception related to liferay-icu4j.jar. This is the summary of the stack trace:

Exception in thread "liferay/hot_deploy-1" java.lang.ExceptionInInitializerError
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.impl.ICUResourceBundle.<clinit>(ICUResourceBundle.java:464)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:104)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.text.Transliterator.<clinit>(Transliterator.java:1824)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.util.Normalizer.<clinit>(Normalizer.java:55)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:111)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....
Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.impl.ICUDebug.<clinit>(ICUDebug.java:69)
</clinit></clinit></clinit></clinit>

   

Let me highlight the root of the problem:

Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)

What is Version number here?
thumbnail
Minhchau Dang, modified 3 Years ago.

RE: Browser stuck in loop due to not initializing com.liferay.util.Normaliz

Liferay Master Posts: 598 Join Date: 10/22/07 Recent Posts
Abdollah Esmaeilpour:


Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
    at com.liferay.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)

What is Version number here?

It's the patch level on your JDK. See LPS-118037.