Comments (10)
Hi Klemens,
in Eclipse open it as a maven project.
Btw. very similar error I've fixed in 5e5cb5a#diff-1 Are you sure you have the latest sources deployed?
Thanks
-- tom
from fsrepo.
No, I am not sure. :)
What I did:
.) cloned the github repo (doing it from scratch today again)
.) edited the pom.xml, set correct <liferay.auto.deploy.dir>
.) command line: "mvn clean package liferay:deploy" produced a "BUILD SUCCESSFUL"
.) started up tomcat with debug settings
.) connected Eclipse with remote debug setting
.) set a breakpoint at the class mentioned before in the catalina.out (PortalImpl.java of the Liferay sources, line 4873, method sendError)
.) In the stack I see no trace of the hook plug-in (I think that would start with cz. ... )
Daemon Thread [http-bio-8080-exec-1](Suspended %28breakpoint at line 4873 in com.liferay.portal.util.PortalImpl%29)
com.liferay.portal.util.PortalImpl.sendError(int, java.lang.Exception, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 4873
com.liferay.portal.util.PortalUtil.sendError(int, java.lang.Exception, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 1511
com.liferay.portal.servlet.FriendlyURLServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 109
com.liferay.portal.servlet.FriendlyURLServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 722
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 305
org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 210
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 72
com.liferay.portal.servlet.filters.strip.StripFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 304
com.liferay.portal.servlet.filters.strip.StripFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.servlet.filters.gzip.GZipFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 123
com.liferay.portal.servlet.filters.gzip.GZipFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 201
com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.servlet.filters.i18n.I18nFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 241
com.liferay.portal.servlet.filters.i18n.I18nFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 113
com.liferay.portal.servlet.filters.etag.ETagFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 55
com.liferay.portal.servlet.filters.etag.ETagFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 121
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 240
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 70
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 243
org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 210
org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 684
org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 471
org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 402
org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 329
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 298
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 184
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 92
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 738
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 164
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 164
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 184
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 70
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 243
org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 210
org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 224
org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 169
org.apache.catalina.authenticator.FormAuthenticator(org.apache.catalina.authenticator.AuthenticatorBase).invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 472
org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 168
org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 98
org.apache.catalina.valves.AccessLogValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 928
org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 118
org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response) line: 407
org.apache.coyote.http11.Http11Processor(org.apache.coyote.http11.AbstractHttp11Processor).process(org.apache.tomcat.util.net.SocketWrapper) line: 987
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler(org.apache.coyote.AbstractProtocol$AbstractConnectionHandler<S,P>).process(org.apache.tomcat.util.net.SocketWrapper, org.apache.tomcat.util.net.SocketStatus) line: 539
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run() line: 300
org.apache.tomcat.util.threads.ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor).runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) line: 1110
java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 603
org.apache.tomcat.util.threads.TaskThread(java.lang.Thread).run() line: 679
So, I am not sure if the plug-in is really up-to-date in the tomcat installation. Have you an idea how I can check this?
thanks and bye,
~klemens
Another little detail: I had to install the maven extension "JRebel m2eclipse integration" that is used by fsrepo - maybe would be nice to mention this in the readme
from fsrepo.
Yeah, the jRebel - I use it for debugging :) I'm surprised that you have to install the plugin into Eclipse to make it work.
To be 100% sure:
1, start Liferay
2, delete repository from your Liferay instance
3, delete folder(s) tomcat/webapps/fsrepo-hook*
4, shutdown tomcat
5, start Liferay
6, install fsrepo-hook (mvn clean package liferay:deploy)
7, see the logs that it was installed
8, create again repository
Then try to see if the error is still there & debug it in this case.
From the stacktrace I presume that it tries to load file from the WebServlet in the VirtualHostFilter, which ends with NPE.
Can you try it and get back to me with the result?
Thank you!!!!
-- tom
from fsrepo.
Ahoj Tom
.) I followed your procedure and think I found out something:
First, the first access to a folder creates a listing of "neutral"
place-holder thumbnails, the second then produces the real output.
Could it be that there is some lazy initialization that produces a
default pic at the first access?
Second, I still have the NPE but I can now see under what circumstances:
The repo was created with no defaul access (false, false in the
dialogue), so the files should not be public accessible when not
declared otherwise. In that case I again get the error message
23:43:39,864 INFO [PortalImpl:4873] Current URL
/documents/38503/38752/014.JPG?version=1.0&t=947263062000&imageThumbnail=1
generates exception: null
But when I grant view rights for "Guest" and "Site Member" (to both
file and containing folder) I can see the thumbnail in the "Documents
and Media" view of the control panel.
.) I also found the reason of my faulty tomcat deploy routine - silly
me (will write an answer to the other issue)
.) May I ask you one other question: I'd like to have a finde-grained
accessability rights system in the gallery. Do have an idea how to set
rights on many files or the content of a folder? There seems to be no
such mechanism in Liferay to select multiple files in a repo and set
permissions to all. Is this feasible directly in the database or maybe
to error-prone and complicated (due to expando?)
I'll call it a day now, but can do some debugging tomorrow. :)
thanks for the support,
~klemens
On Sun, May 6, 2012 at 3:51 PM, Tomáš Polešovský
[email protected]
wrote:
Yeah, the jRebel - I use it for debugging :) I'm surprised that you have to install the plugin into Eclipse to make it work.
To be 100% sure:
1, start Liferay
2, delete repository from your Liferay instance
3, delete folder(s) tomcat/webapps/fsrepo-hook*
4, shutdown tomcat
5, start Liferay
6, install fsrepo-hook (mvn clean package liferay:deploy)
7, see the logs that it was installed
8, create again repositoryThen try to see if the error is still there & debug it in this case.
From the stacktrace I presume that it tries to load file from the WebServlet in the VirtualHostFilter, which ends with NPE.
Can you try it and get back to me with the result?
Thank you!!!!
-- tom
Reply to this email directly or view it on GitHub:
#6 (comment)
from fsrepo.
Ahoj :)
Thank you for the investigation. I've found the bug with thumbnails - it's calling default LocalRepository implementation and I don't care about local calls. Now it should be fixed - 1fe0c47
The other question - bulk permissions settings - there is currently no UI for this in the portal. But. You could use ACCESS permission in the Document Library & permissions.view.dynamic.inheritance in portal.properties ( https://github.com/liferay/liferay-portal/blob/6.1.0-ga1/portal-impl/src/portal.properties#L3536). The sad think here is that I haven't implemented it yet. So you can't use it right now. But using this you can then easily set at least VIEW permission hierarchically - in a tree.
from fsrepo.
When I apply your fix for the issue I have report (Fixing NPE when PermissionChecker is not initialized) image thumbnail and preview work good but now after apply the fix about this issue, some thumbnails and preview stop working, and I receive error of this kind:
13:13:39,685 INFO [PortalImpl:4873] Current URL /documents/127897/127924/GECAD1280x1024.bmp?version=1.0&t=1146137985519&imageThumbnail=1 generates exception: null
The images in repository main folder work, but if they are in a sub-folder don´t work.
EDIT: I replaced LocalFileSystemPermissionsUtil.java with the old code and now is working, something you have change broke this.
And about a thing McAviti have said:
"First, the first access to a folder creates a listing of "neutral"
place-holder thumbnails, the second then produces the real output.
Could it be that there is some lazy initialization that produces a
default pic at the first access?"
I like that too, because is annoying do constantly refresh to load all images thumbnails.
from fsrepo.
Ahoj
I debugged a little into the thing and found the following:
There are two Exceptions happening, the first - original one - in the
ExpandoService (seems to be injected by Spring or some other injection
mechanism). The line calling Expando is ExpandoValueServiceUtil.java
in a getData(..) method, line 75:
return getService()
.getData(companyId, className, tableName, columnName, classPK);
In the Expando Proxy class the following Exception is being thrown:
com.liferay.portal.security.auth.PrincipalException: PermissionChecker
not initialized
The stack trace there is:
Daemon Thread http-bio-8080-exec-7
com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(java.lang.String,
boolean) line: 178
com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(java.lang.String)
line: 159
cz.topolik.fsrepo.LocalFileSystemRepository.getFileFromExpando(com.liferay.portal.model.RepositoryEntry)
line: 914
cz.topolik.fsrepo.LocalFileSystemRepository.getFileFromRepositoryEntry(com.liferay.portal.model.RepositoryEntry)
line: 901
cz.topolik.fsrepo.LocalFileSystemRepository.folderIdToFile(long) line: 875
cz.topolik.fsrepo.LocalFileSystemRepository.getFileEntry(long,
java.lang.String) line: 405
cz.topolik.fsrepo.LocalFileSystemLocalRepository.getFileEntry(long,
java.lang.String) line: 73
sun.reflect.GeneratedMethodAccessor691.invoke(java.lang.Object,
java.lang.Object[]) line: not available
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 25
java.lang.reflect.Method.invoke(java.lang.Object,
java.lang.Object...) line: 597
com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.Object[]) line: 54
$Proxy524.getFileEntry(long, java.lang.String) line: not available
com.liferay.portal.repository.proxy.LocalRepositoryProxyBean.getFileEntry(long,
java.lang.String) line: 140
com.liferay.portlet.documentlibrary.service.impl.DLAppLocalServiceImpl.getFileEntry(long,
long, java.lang.String) line: 620
sun.reflect.GeneratedMethodAccessor688.invoke(java.lang.Object,
java.lang.Object[]) line: not available
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 25
java.lang.reflect.Method.invoke(java.lang.Object,
java.lang.Object...) line: 597
com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed() line: 112
com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)
line: 71
com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed() line: 108
com.liferay.portal.cache.ThreadLocalCacheAdvice(com.liferay.portal.spring.aop.ChainableMethodAdvice).invoke(org.aopalliance.intercept.MethodInvocation)
line: 59
com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed() line: 108
com.liferay.portal.messaging.async.AsyncAdvice(com.liferay.portal.spring.aop.ChainableMethodAdvice).invoke(org.aopalliance.intercept.MethodInvocation)
line: 59
com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed() line: 108
com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.Object[]) line: 211
$Proxy179.getFileEntry(long, long, java.lang.String) line: not available
com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil.getFileEntry(long,
long, java.lang.String) line: 556
com.liferay.portal.webserver.WebServerServlet._checkFileEntry(java.lang.String[])
line: 1084
com.liferay.portal.webserver.WebServerServlet.hasFiles(javax.servlet.http.HttpServletRequest)
line: 139
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)
line: 214
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 48
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter,
javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse) line: 184
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 92
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 738
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter,
javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 203
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 105
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse) line: 164
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse) line: 164
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse) line: 184
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 92
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 70
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 243
org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse) line: 210
org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 224
org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 169
org.apache.catalina.authenticator.FormAuthenticator(org.apache.catalina.authenticator.AuthenticatorBase).invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 472
org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 168
org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 98
org.apache.catalina.valves.AccessLogValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 928
org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request,
org.apache.catalina.connector.Response) line: 118
org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request,
org.apache.coyote.Response) line: 407
org.apache.coyote.http11.Http11Processor(org.apache.coyote.http11.AbstractHttp11Processor).process(org.apache.tomcat.util.net.SocketWrapper)
line: 987
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler(org.apache.coyote.AbstractProtocol$AbstractConnectionHandler<S,P>).process(org.apache.tomcat.util.net.SocketWrapper,
org.apache.tomcat.util.net.SocketStatus) line: 539
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run() line: 300
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
line: 886
java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 908
org.apache.tomcat.util.threads.TaskThread(java.lang.Thread).run() line: 662
Then in this class (ExpandoBridgeImpl, line 177) the Exception is
cought, logged but not handled any further. We teach our developers
that this is bad style in most cases... ;)
Then the variable "data" is return, but is obviously null.
And then it happens what has to happen:
cz.topolik.fsrepo.LocalFileSystemRepository.getFileFromExpando(com.liferay.portal.model.RepositoryEntry)
line: 915
In the line:
String file = value.substring(value.indexOf("-") + 1);
value is null and we get the NPE.
So - the originating PrincipalException is causing the problem, and
that one is unfortunately swalloed by the Liferay code - not very
friendly, it should be nested and rethrown, imho. Do you know what's
misconfigured so that this PermissionChecker is not initialized?
I hope my long story was not too confusing....
~klemens
from fsrepo.
Hi guys, thank you for finding this. I'm going to reopen the issue.
Klemens, thank you - I now understand what's going on but currently don't know how to fix it. I will need to go deeper into the code.
Seems that I can't use ExpandoBridge in these system calls, because I need call to Expando_LocalService. I assume ExpandoBridgeImpl use Expando_Service.
from fsrepo.
Should be fixed by 10a807d. Thx!
from fsrepo.
I can confirm this.
~k
On Sun, Jun 3, 2012 at 2:47 PM, Tomáš Polešovský
[email protected]
wrote:
Should be fixed by 10a807d. Thx!
Reply to this email directly or view it on GitHub:
#6 (comment)
from fsrepo.
Related Issues (14)
- Permissions in FSRepo HOT 5
- Folder/Subfolder creation throws exception HOT 7
- File Check-In and Check-Out HOT 3
- Inherited permissions checking for files inside folders HOT 1
- 6.2 support HOT 7
- Consider migration to dl-repository-shared layer HOT 6
- Packet for query is too large HOT 3
- Installation of the web archive HOT 1
- Moving a folder from FSRepo til Liferay doc. lib. HOT 1
- Media Gallery Image Icons and Preview only work for .png and .jpeg (v1.1) HOT 1
- Moved content stay in src HOT 2
- Clicking on download file throws error HOT 4
- Multiple file uploads support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fsrepo.