Page 1 of 1

No row with the given identifier exists

PostPosted:Fri Sep 27, 2013 10:55 am
by shie
Hi!
Suddenly, a folder in my openkm can not be opened. I used it with nothing wrong yesterday, and I have not edit/write it since weeks ago.
folder name: /okm:root/03项目知识库/

What wrong is it? Hope you experts can help me!

Here is the catalina-LOG-ERROR:
Code: Select all
2013-09-27 16:59:27,916 [http-bio-192.168.10.2-8080-exec-242] ERROR com.openkm.servlet.frontend.FolderServlet - No row with the given identifier exists: [com.openkm.dao.bean.NodeFolder#097594a0-5c72-4235-ad47-d5652303f086]
com.openkm.core.DatabaseException: No row with the given identifier exists: [com.openkm.dao.bean.NodeFolder#097594a0-5c72-4235-ad47-d5652303f086]
	at com.openkm.dao.NodeFolderDAO.resolveCategories(NodeFolderDAO.java:585)
	at com.openkm.module.db.base.BaseFolderModule.getProperties(BaseFolderModule.java:159)
	at com.openkm.module.db.DbFolderModule.getChildren(DbFolderModule.java:444)
	at com.openkm.api.OKMFolder.getChildren(OKMFolder.java:152)
	at com.openkm.servlet.frontend.FolderServlet.getChilds(FolderServlet.java:188)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	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:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.openkm.dao.bean.NodeFolder#097594a0-5c72-4235-ad47-d5652303f086]
	at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:435)
	at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:189)
	at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:178)
	at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
	at com.openkm.dao.bean.NodeFolder_$$_javassist_114.getUuid(NodeFolder_$$_javassist_114.java)
	at com.openkm.module.db.stuff.DbSimpleAccessManager.isGranted(DbSimpleAccessManager.java:63)
	at com.openkm.dao.NodeFolderDAO.resolveCategories(NodeFolderDAO.java:572)
	... 53 more

Re: No row with the given identifier exists

PostPosted:Sat Sep 28, 2013 3:09 pm
by jllort
Could be older bug what allow to delete not empty category. Then in database the node refer to category uuid what does not exists.

Should solve by administration / database query:
Code: Select all
SELECT * FROM OKM_NODE_CATEGORY WHERE NCT_CATEGORY='097594a0-5c72-4235-ad47-d5652303f086';
I think uuid node 097594a0-5c72-4235-ad47-d5652303f086 is category uuid. If this is the case delete this databaes row.

Re: No row with the given identifier exists

PostPosted:Sun Sep 29, 2013 1:45 am
by shie
jllort wrote:Could be older bug what allow to delete not empty category. Then in database the node refer to category uuid what does not exists.

Should solve by administration / database query:
Code: Select all
SELECT * FROM OKM_NODE_CATEGORY WHERE NCT_CATEGORY='097594a0-5c72-4235-ad47-d5652303f086';
I think uuid node 097594a0-5c72-4235-ad47-d5652303f086 is category uuid. If this is the case delete this databaes row.
Thank you, jllort.
Yes, the error comes after delete category. This is the output of database query:
Code: Select all
NCT_NODE	                        NCT_CATEGORY
213e33ce-f356-4b2c-a5fb-163512dc7415	097594a0-5c72-4235-ad47-d5652303f086
492f10be-53ef-499c-a8fc-12224ac42c3c	097594a0-5c72-4235-ad47-d5652303f086
3cad9fe9-dd84-49bf-8605-d68ddd447327	097594a0-5c72-4235-ad47-d5652303f086
c11c806b-fc45-4da3-abd7-c13bf7905e7a	097594a0-5c72-4235-ad47-d5652303f086
1b09d953-32d2-46ef-93eb-7d3290fedcf9	097594a0-5c72-4235-ad47-d5652303f086
be246db2-fdd5-4440-81ab-4429246a345b	097594a0-5c72-4235-ad47-d5652303f086
d12cefd1-077a-48f1-88ed-b02b910bd9ed	097594a0-5c72-4235-ad47-d5652303f086
b5ed6aa3-1359-4da0-be18-f2e5caacbb9a	097594a0-5c72-4235-ad47-d5652303f086
I am not familia with mysql. How to "delete this databaes row"?

And, how can I avoid this kind of error? Deleting category should not affect taxonomy.

Re: No row with the given identifier exists

PostPosted:Sun Sep 29, 2013 10:26 am
by jllort
Execute it. Will delete the category reference from database.
Code: Select all
DELETE FROM OKM_NODE_CATEGORY WHERE NCT_CATEGORY='097594a0-5c72-4235-ad47-d5652303f086';
Consider extend you knowledge or get some kind of support of your application. It's not good idea think all goes fine always, errors happens. At least the most important thing you should get under control is backup. Do not hate me, but honestly, If your actual knowledge does not covers database query, probably backup, server administration etc... are neither well done. If you appreciate your information I suggest take some time to think about it. Have several options, us we offer cloud ( SAAS what covers backup, etc... ) or normal support in your server, or get some technical who can asume it with garantees.