2016-09-06 77 views
0

我試圖通過使用SVNKit與Spring的Web門戶來處理svn操作。我能夠執行獨立的操作,如提交,清理,更新等我提交代碼是這樣:在Tomcat服務器上的Web應用程序中使用SVNKit時,JRE崩潰

public Exception commit(String user, String password, String fileName,String comment) { 

    Exception svnException = null; 
    try { 
     SVNUtil.cleanUpSVN(); 
     ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(user, password); 
     ISVNOptions options = SVNWCUtil.createDefaultOptions(true); 
     SVNClientManager svnClientManager = SVNClientManager.newInstance(options, authManager); 
     SVNCommitClient svnCommitClient = svnClientManager.getCommitClient(); 
     File commitFile = new File(fileName); 
     svnCommitClient.doCommit(new File[]{commitFile}, false, comment, null, null, false, false, SVNDepth.INFINITY); 
    } catch (SVNException svnEx) { 
     svnException = svnEx; 
     svnException.printStackTrace(); 
    }finally{ 
     System.out.print("Completed Execution of Commit method"); 
    } 
    return svnException; 

} 

上面的代碼工作就像一個魅力單獨觸發時,但所有的地獄衝出重圍,當我把這個我的webapp裏面執行我在catalina.out我得到class.The錯誤是如下:

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# SIGSEGV (0xb) at pc=0x0000003c3633362f, pid=13153, tid=0x00007f8791469700 
# 
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode linux-amd64 compressed oops) 
# Problematic frame: 
# C [libc.so.6+0x13362f] 
# 
# Core dump written. Default location: /home/shavivek/Downloads/apache-tomcat-7.0.70/logs/core or core.13153 
# 
# An error report file with more information is saved as: 
# /home/shavivek/Downloads/apache-tomcat-7.0.70/logs/hs_err_pid13153.log 
# 
# If you would like to submit a bug report, please visit: 
# http://bugreport.java.com/bugreport/crash.jsp 
# The crash happened outside the Java Virtual Machine in native code. 
# See problematic frame for where to report the bug. 
# 

/home/shavivek/Downloads/apache-tomcat-7.0.70/logs/hs_err_pid13153.log

Register to memory mapping: 

RAX=0x0000000000000001 is an unknown value 
RBX=0x6b65766976616873 is an unknown value 
RCX=0x0000000000000003 is an unknown value 
RDX=0x0000003c4ae0f520: <offset 0xf520> in /usr/lib64/libgnome-keyring.so.0.1.1 at 0x0000003c4ae00000 
RSP=0x00007f87914640b8 is pointing into the stack for thread: 0x00007f8764002000      
RBP=0x00007f8791464180 is pointing into the stack for thread: 0x00007f8764002000      
RSI=0x6b65766976616873 is an unknown value               
RDI=0x6b65766976616870 is an unknown value               
R8 =0x6b65766976616873 is an unknown value               
R9 =0x00007f876005f070 is an unknown value               
R10=0x00007f8791463e20 is pointing into the stack for thread: 0x00007f8764002000      
R11=0x0000003c36283a8e: <offset 0x83a8e> in /lib64/libc.so.6 at 0x0000003c36200000     
R12=0x00007f8754187a80 is an unknown value               
R13=0x00007f876005f060 is an unknown value               
R14=0x6b65766976616873 is an unknown value               
R15=0x0000000000000001 is an unknown value               


Stack: [0x00007f8791369000,0x00007f879146a000], sp=0x00007f87914640b8, free space=1004k 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)   
C [libc.so.6+0x13362f]                 
C 0x0000000000000032                  

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) 
J 6308 com.sun.jna.Native.invokeInt(JI[Ljava/lang/Object;)I (0 bytes) @ 0x00007f87b6080cd8 [0x00007f87b6080c80+0x58] 
j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+225       
J 7060 C1 com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object; (538 bytes) @ 0x00007f87b6228d3c [0x00007f87b62277a0+0x159c] 
J 6605 C2 com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (320 bytes) @ 0x00007f87b61f8ffc [0x00007f87b61f89e0+0x61c] 
j com.sun.proxy.$Proxy28.gnome_keyring_set_network_password_sync(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/sun/jna/Pointer;Lcom/sun/jna/ptr/IntByR 
eference;)I+67                                                        
v ~StubRoutines::call_stub                                                     
J 1155 sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x00007f87b5461cb7 [0x00007f87b5461c40+0x77]            
J 388 C1 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x00007f87b521fa0c [0x00007f87b521e880+0x118c]                 
J 1931 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f87b5744dcc [0x00007f87b5744d20+0xac]                     
j org.tmatesoft.svn.core.internal.wc.SVNMethodCallLogger.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+101                      
j com.sun.proxy.$Proxy28.gnome_keyring_set_network_password_sync(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/sun/jna/Pointer;Lcom/sun/jna/ptr/IntByR 
eference;)I+67                                                        
j org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring.setPassword(Ljava/lang/String;Ljava/lang/String;[C)Z+103                               
j org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring.setPassword(Ljava/lang/String;Ljava/lang/String;[CZLorg/tmatesoft/svn/core/internal/wc/ISVNGnomeKeyringPasswordProvider;)Z+71              
j org.tmatesoft.svn.core.internal.util.jna.SVNJNAUtil.addPasswordToGnomeKeyring(Ljava/lang/String;Ljava/lang/String;[CZLorg/tmatesoft/svn/core/internal/wc/ISVNGnomeKeyringPasswordProvider;)Z+12           
j org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider$GnomeKeyringPasswordStorage.savePassword(Ljava/lang/String;[CLorg/tmatesoft/svn/core/auth/SVNAuthentication;Lorg/tmatesoft/svn/core/SVNProperties;)Z+44  
j org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.savePasswordCredential(Lorg/tmatesoft/svn/core/SVNProperties;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Ljava/lang/String;)V+78       
j org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.saveAuthentication(Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Ljava/lang/String;Ljava/lang/String;)V+119             
j org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.acknowledgeAuthentication(ZLjava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/SVNErrorMessage;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;)V+90    
j org.tmatesoft.svn.core.auth.BasicAuthenticationManager.acknowledgeAuthentication(ZLjava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/SVNErrorMessage;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Lorg/tmatesoft/svn/core/SVNUR 
L;Lorg/tmatesoft/svn/core/auth/ISVNAuthenticationManager;)V+37                                            
j org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/io/InputStream;IILjava/io/OutputStream;Lorg/xml/sax/helpers/DefaultHa 
ndler;Lorg/tmatesoft/svn/core/SVNErrorMessage;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+2405                                 
j org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lang/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/Defaul 
tHandler;Lorg/tmatesoft/svn/core/SVNErrorMessage;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+67                                 
j org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lang/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/Defaul 
tHandler;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+15                                           
j org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(Lorg/tmatesoft/svn/core/internal/io/dav/http/IHTTPConnection;Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lan 
g/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/DefaultHandler;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+21                          
j org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doMakeActivity(Lorg/tmatesoft/svn/core/io/ISVNWorkspaceMediator;)Ljava/lang/String;+94                        
j org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.createActivity()[Ljava/lang/String;+8                                    
j org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.openRoot(J)V+335                                         
j org.tmatesoft.svn.core.internal.wc.SVNCommitUtil.driveCommitEditor(Lorg/tmatesoft/svn/core/internal/wc/ISVNCommitPathHandler;Ljava/util/Collection;Lorg/tmatesoft/svn/core/io/ISVNEditor;J)V+100           
j org.tmatesoft.svn.core.internal.wc.SVNCommitter.commit(Ljava/util/Collection;Ljava/util/Map;Lorg/tmatesoft/svn/core/SVNURL;Lorg/tmatesoft/svn/core/io/ISVNEditor;Lorg/tmatesoft/svn/core/wc/ISVNEventHandler;)Lorg/tmatesoft/svn/core/SVNC 
ommitInfo;+31                                                         
j org.tmatesoft.svn.core.internal.wc16.SVNCommitClient16.doCommit([Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)[Lorg/tmatesoft/svn/core/SVNCommitInfo;+358       
j org.tmatesoft.svn.core.internal.wc16.SVNCommitClient16.doCommit(Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)Lorg/tmatesoft/svn/core/SVNCommitInfo;+15       
j org.tmatesoft.svn.core.internal.wc2.old.SvnOldCommit.run()Lorg/tmatesoft/svn/core/SVNCommitInfo;+150                                  
j org.tmatesoft.svn.core.internal.wc2.old.SvnOldCommit.run()Ljava/lang/Object;+1                                        
j org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(Lorg/tmatesoft/svn/core/wc2/SvnOperation;)Ljava/lang/Object;+6                             
j org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(Lorg/tmatesoft/svn/core/wc2/SvnOperation;)Ljava/lang/Object;+67                               
j org.tmatesoft.svn.core.wc2.SvnOperation.run()Ljava/lang/Object;+9                                           
j org.tmatesoft.svn.core.wc2.SvnCommit.run()Lorg/tmatesoft/svn/core/SVNCommitInfo;+16                                      
j org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit([Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)[Lorg/tmatesoft/svn/core/SVNCommitInfo;+342          
j org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit([Ljava/io/File;ZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;[Ljava/lang/String;ZZLorg/tmatesoft/svn/core/SVNDepth;)Lorg/tmatesoft/svn/core/SVNCommitInfo;+29    
j com.diglert.implementation.MonsvnSVNHandler.commit(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Exception;+98                      
j com.diglert.implementation.FormRequestHandler.processUserInputs(Ljava/util/Map;)Ljava/lang/Exception;+204                                 
j com.diglert.controller.DiglertController.processFormData(Ljava/util/Map;Lorg/springframework/ui/ModelMap;Ljava/util/Map;)Ljava/lang/String;+12                        
v ~StubRoutines::call_stub                                                     
J 1155 sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x00007f87b5461cb7 [0x00007f87b5461c40+0x77]            
J 388 C1 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x00007f87b521fa0c [0x00007f87b521e880+0x118c]                 
J 1931 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f87b5744dcc [0x00007f87b5744d20+0xac]                     
j org.springframework.web.method.support.InvocableHandlerMethod.invoke([Ljava/lang/Object;)Ljava/lang/Object;+16                                
j org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)Ljava/lang/Obje 
ct;+78                                                          
j org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(Lorg/springframework/web/context/request/ServletWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/O 
bject;)V+4                                                         
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/s 
pringframework/web/servlet/ModelAndView;+230                                                 
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/sprin 
gframework/web/servlet/ModelAndView;+89                                                  
j org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Object;)Lorg/springframework/web/servlet/ModelAndView;+7   
j org.springframework.web.servlet.DispatcherServlet.doDispatch(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+305                       
j org.springframework.web.servlet.DispatcherServlet.doService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+319                       
j org.springframework.web.servlet.FrameworkServlet.processRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+72                      
j org.springframework.web.servlet.FrameworkServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3                        
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+149                            
j org.springframework.web.servlet.FrameworkServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+32                        
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30                                 
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+446                          
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101                            
j org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+21                       
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+151                          
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101                            
j org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+780                         
j org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+166                         
j org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+449                       
j org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+158                         
j org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6                          
j org.apache.catalina.valves.AccessLogValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6                          
j org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+71                         
j org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+199                               
j org.apache.coyote.http11.AbstractHttp11Processor.process(Lorg/apache/tomcat/util/net/SocketWrapper;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+634                 
j org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapper;Lorg/apache/tomcat/util/net/SocketStatus;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+270    
j org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run()V+106                                           
j java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95                                 
j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5                                             
j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4                                          
j java.lang.Thread.run()V+11                                                     
v ~StubRoutines::call_stub                      

請幫忙米Ë明白髮生了什麼事情錯在這裏

回答

0

好,花費很多小時後,我發現

-Dsvnkit.useJNA=false

解決的問題。可能會對某人有所幫助。

1

我相信我已經修復了SVNKit主幹r10638的問題。該修補程序將包含在SVNKit版本> = 1.8.16中。

簡短問題描述:SVNKit通過JNA錯誤地調用了Gnome Keyring函數。這就是爲什麼轉向Gnome Keyring或JNA呼叫有助於避免此問題。

我是SVNKit開發者之一。

+0

太棒了。謝謝:) –

+0

我必須使用1.8.7來擺脫這個問題。你有任何補丁或解決方法?順便說一下,你在mvnrepository中的最新版本是1.8.14,1.8.15在我的pom.xml文件中丟失了工件錯誤。 –

+0

@DmitryPavlenko當我創建authManager時,JRE不會崩潰: - SVNWCUtil.createDefaultAuthenticationManager();但JRE崩潰時,我設置密碼和用戶名SVNWCUtil.createDefaultAuthenticationManager(usernameString,passwordString.toCharArray()); (它的工作原理沒有用戶名和密碼,因爲它存儲在我的機器中。) –

相關問題