Fórum
After upgrade to liferay 6 : NullPointerException getting a document
Marco Ferretti, modificado 12 Anos atrás.
After upgrade to liferay 6 : NullPointerException getting a document
Regular Member Postagens: 100 Data de Entrada: 04/10/10 Postagens Recentes
Hi all,
we are in the testing phase of our upgrade process. We managed to upgrade an installation of liferay5.2.3 to Liferay 6.0.6; testing the results we found an ugly error ( see above ) .
The error appears if, in a public page, there is a link to a document that is supposed to require authentication. If the user requesting the document is logged in then there is no problem at all, if the user is not logged in ( guest ) then we recieve the following stack trace :
This obviously leads to a page where the user sees an Internal Server Error message.
We tested the same path in the old version ( 5.2.3 ) and everything runs smoothly ( the non authenticated user sees a page that tells him/her that he/she is not authorized ).
Is there anything you suggest to check ?
TIA
marco
we are in the testing phase of our upgrade process. We managed to upgrade an installation of liferay5.2.3 to Liferay 6.0.6; testing the results we found an ugly error ( see above ) .
The error appears if, in a public page, there is a link to a document that is supposed to require authentication. If the user requesting the document is logged in then there is no problem at all, if the user is not logged in ( guest ) then we recieve the following stack trace :
15:35:15,623 INFO [PortalImpl:3829] Current URL /c/document_library/get_file?uuid=85fab282-94bc-4411-ac71-af769940511f&groupId=21920 generates exception: null
15:35:15,647 ERROR [jsp:996] java.lang.NullPointerException
java.lang.NullPointerException
at com.liferay.portlet.documentlibrary.action.GetFileAction.getFile(GetFileAction.java:199)
at com.liferay.portlet.documentlibrary.action.GetFileAction.strutsExecute(GetFileAction.java:84)
at com.liferay.portal.struts.PortletAction.execute(PortletAction.java:100)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:485)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:309)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:110)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:81)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:179)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:240)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter.processFilter(ThreadLocalFilter.java:35)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
This obviously leads to a page where the user sees an Internal Server Error message.
We tested the same path in the old version ( 5.2.3 ) and everything runs smoothly ( the non authenticated user sees a page that tells him/her that he/she is not authorized ).
Is there anything you suggest to check ?
TIA
marco
Marco Ferretti, modificado 12 Anos atrás.
RE: After upgrade to liferay 6 : NullPointerException getting a document
Regular Member Postagens: 100 Data de Entrada: 04/10/10 Postagens Recentes
Did some more tests.
I fired a bundle, created a public page, uploaded a document, secured it and linked it in the public page I just created. Trying to open the document with the guest user leads to the expected behavior ( unauthorized access ) .
This leads me to thing that something must have gone nuts during the upgrade process.
I digged a little into the code :
and as far as I can understand ( without debugging ) the problem seems to be that
return a NULL object making the test
throw the aforementioned exception
Is there anything I can do to double check the data or do you actually think this is a bug ?
I fired a bundle, created a public page, uploaded a document, secured it and linked it in the public page I just created. Trying to open the document with the guest user leads to the expected behavior ( unauthorized access ) .
This leads me to thing that something must have gone nuts during the upgrade process.
I digged a little into the code :
DLFileEntry fileEntry = null;
if (Validator.isNotNull(uuid) && (groupId > 0)) {
try {
fileEntry = DLFileEntryServiceUtil.getFileEntryByUuidAndGroupId(
uuid, groupId);
folderId = fileEntry.getFolderId();
name = fileEntry.getName();
}
catch (Exception e) {
}
}
if (fileShortcutId <= 0) {
if (Validator.isNotNull(name)) {
fileEntry = DLFileEntryServiceUtil.getFileEntry(
groupId, folderId, name);
title = fileEntry.getTitle();
}
else if (Validator.isNotNull(title)) {
fileEntry = DLFileEntryServiceUtil.getFileEntryByTitle(
groupId, folderId, title);
name = fileEntry.getName();
}
}
else {
DLFileShortcut fileShortcut =
DLFileShortcutServiceUtil.getFileShortcut(fileShortcutId);
folderId = fileShortcut.getToFolderId();
name = fileShortcut.getToName();
fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(
groupId, folderId, name);
}
if (Validator.isNull(version)) {
if (Validator.isNotNull(fileEntry.getVersion())) {
version = fileEntry.getVersion();
}
else {
throw new NoSuchFileEntryException();
}
}
and as far as I can understand ( without debugging ) the problem seems to be that
fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(
groupId, folderId, name);
return a NULL object making the test
if (Validator.isNotNull(fileEntry.getVersion()))
throw the aforementioned exception
Is there anything I can do to double check the data or do you actually think this is a bug ?
Sampsa Sohlman, modificado 11 Anos atrás.
RE: After upgrade to liferay 6 : NullPointerException getting a document
Regular Member Postagens: 230 Data de Entrada: 27/09/07 Postagens Recentes
Did came to same problem and made issue LPS-30480 regarding the null pointer exception. It might be still valid at trunk.