掲示板

Problem with Chat portlet

9年前 に Helga Kolomeets によって更新されました。

Problem with Chat portlet

New Member 投稿: 1 参加年月日: 14/02/11 最新の投稿
Hi everyone!
I use liferay-portal-6.2-ee sp5
I have a problem with EE Chat portlet.
When I add portlet in my portal, I see this error:
ERROR [http-bio-8080-exec-16][PollerServlet:62] java.lang.NullPointerException
java.lang.NullPointerException
at com.liferay.portal.poller.PollerRequestHandlerImpl.executePollerRequests(PollerRequestHandlerImpl.java:290)
at com.liferay.portal.poller.PollerRequestHandlerImpl.processRequest(PollerRequestHandlerImpl.java:115)
at com.liferay.portal.poller.PollerRequestHandlerUtil.processRequest(PollerRequestHandlerUtil.java:39)
at com.liferay.portal.poller.PollerServlet.getContent(PollerServlet.java:93)
at com.liferay.portal.poller.PollerServlet.service(PollerServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
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.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
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.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
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)
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 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:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Can anybody tell me why this is happening and how to fix it?
thumbnail
9年前 に David H Nebinger によって更新されました。

RE: Problem with Chat portlet

Liferay Legend 投稿: 14919 参加年月日: 06/09/02 最新の投稿
Ya know, I think you've found a bug that should be reported to jira...

Basically the executePollerRequests() method is trying to access a request from a passed in list, but the list has a null object in it, hence your NPE.

The weird part about the code is the following chunk starting at line #184:

	protected List<pollerrequest> createPollerRequests(
			HttpServletRequest request, PollerHeader pollerHeader,
			Map<string, object>[] pollerRequestChunks, boolean receiveRequest)
		throws Exception {

		Map<string, boolean> portletIdsMap = pollerHeader.getPortletIdsMap();

		List<pollerrequest> pollerRequests = new ArrayList<pollerrequest>(
			portletIdsMap.size());

		Set<string> receiveRequestPortletIds = null;

		if (receiveRequest) {
			receiveRequestPortletIds = new HashSet<string>(
				(int)(pollerRequestChunks.length / 0.75) + 1);
		}

		for (int i = 1; i &lt; pollerRequestChunks.length; i++) {
</string></string></pollerrequest></pollerrequest></string,></string,></pollerrequest>


Why, oh why, would a java coder start an array dereference at index 1 when java arrays start at 0?

Now there could be a valid reason for it, but since the code is uncommented, we would have to do an analysis to see if it looks purposeful or if it is a defect (which is my initial reaction).
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Patch of com.liferay.portal.poller.PollerRequestHandlerImpl class attached. Sources also attached.
NPE error fixed.
thumbnail
9年前 に David H Nebinger によって更新されました。

RE: Problem with Chat portlet

Liferay Legend 投稿: 14919 参加年月日: 06/09/02 最新の投稿
Eek! Even though I kinda know you from the forums, Vitally, I don't think I'd take a class file and just use it emoticon
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
David, we're working together with Helga, and we have solved problem internally already emoticon
Thanks for your answer, it helped us to fix the issue.
thumbnail
9年前 に David H Nebinger によって更新されました。

RE: Problem with Chat portlet

Liferay Legend 投稿: 14919 参加年月日: 06/09/02 最新の投稿
Vitaliy Koshelenko:
David, we're working together with Helga, and we have solved problem internally already emoticon
Thanks for your answer, it helped us to fix the issue.


Did it involve starting the counter at zero, or was there some other fix?

BTW, whatever it is, I would still recommend opening a JIRA ticket for it, even if you post the solution for them to use or discard, either way it will be reported...
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
David, yes, the problem was that the first item in pollerRequests was null (due to wrong filling in createPollerRequests method).

A simple check


  for (PollerRequest pollerRequest : pollerRequests) {
                if (pollerRequest == null) {
                    continue;
                }
               ....
            }


fixed the issue.

Now chart portlet works, and shows Online Firends correctly.

Thanks for recomendation.
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
I have already reported related Jira issue:
https://issues.liferay.com/browse/LPS-49282
thumbnail
9年前 に Jack Bakker によって更新されました。

RE: Problem with Chat portlet

Liferay Master 投稿: 978 参加年月日: 10/01/03 最新の投稿
Hi Vitaliy, long time no chat, hope you enjoyed that Vaadin shopping cart thing you saw of mine...

David H Nebinger:
Eek! Even though I kinda know you from the forums, Vitally, I don't think I'd take a class file and just use it emoticon


Likewise.

Vitaliy Koshelenko:
David, we're working together with Helga, and we have solved problem internally already emoticon
Thanks for your answer, it helped us to fix the issue.


Good to solve internal problems for sure. Does Helga solve internal problems ?

Enjoy
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Hi, Jack!
Yes, I haven't beed writing here for a while.

Jack Bakker:
hope you enjoyed that Vaadin shopping cart thing you saw of mine...

I remember your Vaadin shoping cart, that was interesting project.
But honestly, I don't use Vaadin in most projects. I prefer using Spring3 MVC portlets, Hibernate for backend, jQuery for frontend.

David H Nebinger:
Eek! Even though I kinda know you from the forums, Vitally, I don't think I'd take a class file and just use it emoticon

I have attached sources also, I understand that using already complied class withot sources is not a good solution.

Jack Bakker:
Good to solve internal problems for sure. Does Helga solve internal problems?

Yes, we're solving internal Liferay issues together. I work on Liferay development issues, and she works on Themes/Layouts development, etc.

Thanks! emoticon
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
Vitaliy Koshelenko:
Patch of com.liferay.portal.poller.PollerRequestHandlerImpl class attached. Sources also attached.
NPE error fixed.



Hi Vitaliy,

Can you pls help me.

How and where to use these file to sort out the issue.
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Hi, Vivek

Compile attached sources file PollerRequestHandlerImpl.java (or use compiled one), and put it into /ROOT/WEB-INF/classes/com/liferay/portal/poller directory.
This should fix the issue.

Vitaliy
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
but we donot have any such folder inside classes folder.

Should I create the same structure??
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Yes, folders structure should be the same as class package name.
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
I have created the same structure and paste the class file there.

But still getting the same problem.. emoticon
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
Still it is keep loading........ emoticon

Plss help its urgent..
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Have you restarted server after copying class file?
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
Yeah I have restarted it .But problem still persists.
8年前 に Vivek Singh Rathore によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 10 参加年月日: 15/02/17 最新の投稿
Hi Vitaliy,

Kindly request you to please cross check the folder structure I have made

/ROOT/WEB-INF/classes/com/liferay/portal/poller

Also request you to please tell me how can I compile the java file as I have added sysout to check whether this file is being read or not and want to compile the same.

Thanks a lot for your help.. emoticon
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Hi, Vivek

The folder structure seems to be correct.
I have attached 'ruby-liferay-hook.zip' file, there is ant build.xml file for compiling.

1. Change 'project.src.dir', 'project.classes.dir', 'liferay.lib.dir', 'tomcat.lib.dir' props to your ones.
2. Add some logging (or println()) to com.liferay.portal.poller.PollerRequestHandlerImpl#executePollerRequests method, to check if your class has been applied.
3. Compile class with ant 'compile' task.
4. Copy compiled class from target/classes/com/liferay/portal/poller to /ROOT/WEB-INF/classes/com/liferay/portal/poller.
5. Restart server and check if it works.

Vitaliy

添付ファイル:

8年前 に Ashutosh Mishra によって更新されました。

RE: Problem with Chat portlet

New Member 投稿: 5 参加年月日: 13/04/23 最新の投稿
Vitaliy Koshelenko:
Hi, Vivek

The folder structure seems to be correct.
I have attached 'ruby-liferay-hook.zip' file, there is ant build.xml file for compiling.

1. Change 'project.src.dir', 'project.classes.dir', 'liferay.lib.dir', 'tomcat.lib.dir' props to your ones.
2. Add some logging (or println()) to com.liferay.portal.poller.PollerRequestHandlerImpl#executePollerRequests method, to check if your class has been applied.
3. Compile class with ant 'compile' task.
4. Copy compiled class from target/classes/com/liferay/portal/poller to /ROOT/WEB-INF/classes/com/liferay/portal/poller.
5. Restart server and check if it works.

Vitaliy


Hi Vitaley,

I am new to Liferay. I havenot used ant but using liferay sdk with eclipse.
How can i do the same?.
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Hi, Ashutosh

If you're using liferay sdk and eclipse - you can create Ext plugin for this and overwrite this class in ext-impl/src.

Vitaliy
thumbnail
9年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
Hi, guys!

We have another problem here.
When chat is at the bootom of page (by default), users online are displayed.
But when we remove
portal.properties layout.static.portlets.all=1_WAR_chatportlet
from portal.properties, and use chat portlet as built into custom theme - no friends are displayed online. And there are no error in logs.
What may cause this problem?

Regards
thumbnail
9年前 に David H Nebinger によって更新されました。

RE: Problem with Chat portlet

Liferay Legend 投稿: 14919 参加年月日: 06/09/02 最新の投稿
Vitaliy Koshelenko:
But when we remove portal.properties layout.static.portlets.all=1_WAR_chatportlet from portal.properties, and use chat portlet as built into custom theme - no friends are displayed online. And there are no error in logs. What may cause this problem?


That I'm not sure about. If I were to guess I would bet that Liferay handles the static portlets differently such that they run all the time and are visible to the code which handles online friend notification, whereas the custom theme approach is different enough such that the same sort of 'notification' isn't getting through.
thumbnail
8年前 に Miroslav Ligas によって更新されました。

RE: Problem with Chat portlet

Regular Member 投稿: 152 参加年月日: 14/07/29 最新の投稿
Maybe you could use a alternative chat plugin e.g. https://www.liferay.com/marketplace/-/mp/application/27306952
thumbnail
8年前 に Vitaliy Koshelenko によって更新されました。

RE: Problem with Chat portlet

Expert 投稿: 319 参加年月日: 11/03/25 最新の投稿
BTW, we're using this LIMS Messenger developed by Marcel Mika.
It's simple to use and has less bugs/problems.