Message Boards
Browser stuck in loop due to not initializing com.liferay.util.Normalizer
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
This is the stack trace:
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 [http-bio-80-exec-2][code_jsp:128] {code="500", msg="", uri=/web/go/home}
javax.servlet.ServletException: Filter execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at com.iknito.security.HttpSecurityHeaders.invoke(HttpSecurityHeaders.java:25)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.liferay.util.Normalizer
at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:111)
at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:39)
at com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil.normalize(FriendlyURLNormalizerUtil.java:35)
at com.liferay.portal.service.impl.GroupLocalServiceImpl.getFriendlyURL(GroupLocalServiceImpl.java:4071)
at com.liferay.portal.service.impl.GroupLocalServiceImpl.getFriendlyURLGroup(GroupLocalServiceImpl.java:1153)
at sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.sun.proxy.$Proxy32.getFriendlyURLGroup(Unknown Source)
at com.liferay.portal.service.GroupLocalServiceUtil.getFriendlyURLGroup(GroupLocalServiceUtil.java:1154)
at com.liferay.portal.servlet.filters.cache.CacheFilter.getPlid(CacheFilter.java:190)
at com.liferay.portal.servlet.filters.cache.CacheFilter.isCacheableData(CacheFilter.java:286)
at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:403)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:70)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:263)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:226)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
... 16 more
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?
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:
Let me highlight the root of the problem:
What is Version number here?
Exception in thread "liferay/hot_deploy-1" java.lang.ExceptionInInitializerError
at com.liferay.ibm.icu.impl.ICUResourceBundle.<clinit>(ICUResourceBundle.java:464)
at com.liferay.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:104)
at com.liferay.ibm.icu.text.Transliterator.<clinit>(Transliterator.java:1824)
at com.liferay.util.Normalizer.<clinit>(Normalizer.java:55)
at com.liferay.portal.util.FriendlyURLNormalizerImpl.normalize(FriendlyURLNormalizerImpl.java:111)
....
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)
at com.liferay.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
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
at com.liferay.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)
What is Version number here?
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 PostsAbdollah 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.