java - Gerrit 注册新电子邮件 500 错误

标签 java debian jetty gerrit turnkeylinux.org

我刚刚在交 key 版本控制 14.1 上安装了 gerrit 2.12.4,当我尝试注册新电子邮件功能时,我收到了 500 内部错误。 我在 error_log 中收到以下错误消息,但不知道如何解释它。

这是配置:

[gerrit]                                                                                                                                                                                                           
        basePath = /srv/repos/git/gerrit2/                                                                                                                                                                         
        canonicalWebUrl = http://revision-control:7900/                                                                                                                                                            
[database]                                                                                                                                                                                                         
        type = mysql                                                                                                                                                                                               
        hostname = localhost                                                                                                                                                                                       
        database = reviewdb                                                                                                                                                                                        
        username = gerrit2                                                                                                                                                                                         
[index]                                                                                                                                                                                                            
        type = LUCENE                                                                                                                                                                                              
[auth]                                                                                                                                                                                                             
        type = OPENID                                                                                                                                                                                              
[receive]                                                                                                                                                                                                          
        enableSignedPush = false                                                                                                                                                                                   
[sendemail]                                                                                                                                                                                                        
        enable = true                                                                                                                                                                                              
        smtpServer = smtp.office365.com                                                                                                                                                                            
        smtpServerPort = 587                                                                                                                                                                                       
        smtpUser = <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="40252d21292c00252d21292c6e232f2d" rel="noreferrer noopener nofollow">[email protected]</a>                                                                                                                                                                             
        smtpEncryption = ssl                                                                                                                                                                                       
        sslVerify = false                                                                                                                                                                                          
[container]                                                                                                                                                                                                        
        user = gerrit2
        javaHome =  /usr/lib/jvm/java-7-openjdk-amd64/jre                                                                                                                                                          
[sshd]                                                                                                                                                                                                             
        listenAddress = *:29418                                                                                                                                                                                    
[httpd]                                                                                                                                                                                                            
        listenUrl = http://*:7900/                                                                                                                                                                                 
[cache]                                                                                                                                                                                                            
        directory = cache  

我怀疑该过程在 smtp 身份验证之前就失败了。 我检查了java路径,它似乎是正确的。

我还授予了 gerrit2 对 java 文件夹和 gerrit 文件夹的完全权限。

任何帮助将不胜感激。

[2016-09-07 20:55:23,439] [main] INFO  org.eclipse.jetty.server.ServerConnector : Started ServerConnector@4a9829f1{HTTP/1.1}{0.0.0.0:7900}                                                                         
[2016-09-07 20:55:23,440] [main] INFO  org.eclipse.jetty.server.Server : Started @20499ms                                                                                                                          
[2016-09-07 20:55:23,442] [main] INFO  com.google.gerrit.pgm.Daemon : Gerrit Code Review 2.12.4 ready                                                                                                              
[2016-09-07 20:56:54,864] [HTTP-50] WARN  org.eclipse.jetty.servlet.ServletHandler : Error for /accounts/self/emails/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d9adbcaaad99bcb4b8b0b5f7bab6b4" rel="noreferrer noopener nofollow">[email protected]</a>                                                                  
java.lang.ExceptionInInitializerError                                                                                                                                                                              
        at com.google.gerrit.server.mail.OutgoingEmail.add(OutgoingEmail.java:384)                                                                                                                                 
        at com.google.gerrit.server.mail.RegisterNewEmailSender.init(RegisterNewEmailSender.java:49)                                                                                                               
        at com.google.gerrit.server.mail.OutgoingEmail.send(OutgoingEmail.java:92)                                                                                                                                 
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:134)                                                                                                                                
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:101)                                                                                                                                
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:42)                                                                                                                                 
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:328)                                                                                                                         
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)                                                                                                                                            
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)                                                                                                                   
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)                                                                                                                       
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182)                                                                                                                         
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)                                                                                                                
        at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:82)                                                                                                                                   
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:73)                                                                                                                      
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:117)                                                                                                                                      
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:136)                                                                                                              
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:105)                                                                                                                
        at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)                                                                                                                     
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)                                                                                                                
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)                                                                                                                                      
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)                                                                                                                                      
        at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)                                                                                                                                
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)                                                                                                                                    
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)                                                                                                                 
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)                                                                                                                              
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)                                                                                                                       
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)                                                                                                                      
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)                                                                                                                               
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)                                                                                                                        
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)                                                                                                                       
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)                                                                                                                           
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)                                                                                                                          
        at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)                                                                                                                    
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)                                                                                                                          
        at org.eclipse.jetty.server.Server.handle(Server.java:499)                                                                                                                                                 
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)                                                                                                                                       
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)                                                                                                                             
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)                                                                                                                              
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)                                                                                                                        
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)                                                                                                                         
        at java.lang.Thread.run(Thread.java:745)                                                                                                                                                                   
Caused by: java.lang.IllegalStateException: Can only invoke this method before calling getInstance                                                                                                                 
        at org.apache.commons.validator.routines.DomainValidator.updateTLDOverride(DomainValidator.java:1680)                                                                                                      
        at com.google.gerrit.server.mail.OutgoingEmailValidator.<clinit>(OutgoingEmailValidator.java:24)                                                                                                           
        ... 41 more        
[2016-09-07 20:56:54,866] [HTTP-50] ERROR com.google.gerrit.pgm.http.jetty.HiddenErrorHandler : Error in PUT /accounts/self/emails/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c4b0a1b7b084a1a9a5ada8eaa7aba9" rel="noreferrer noopener nofollow">[email protected]</a>                                                     
java.lang.ExceptionInInitializerError                                                                                                                                                                              
        at com.google.gerrit.server.mail.OutgoingEmail.add(OutgoingEmail.java:384)                                                                                                                                 
        at com.google.gerrit.server.mail.RegisterNewEmailSender.init(RegisterNewEmailSender.java:49)                                                                                                               
        at com.google.gerrit.server.mail.OutgoingEmail.send(OutgoingEmail.java:92)                                                                                                                                 
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:134)                                                                                                                                
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:101)                                                                                                                                
        at com.google.gerrit.server.account.CreateEmail.apply(CreateEmail.java:42)                                                                                                                                 
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:328)                                                                                                                         
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)                                                                                                                                            
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)                                                                                                                   
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)                                                                                                                       
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182)                                                                                                                         
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)                                                                                                                
        at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:82)                                                                                                                                   
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:73)                                                                                                                      
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:117)                                                                                                                                      
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:136)                                                                                                              
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:105)                                                                                                                
        at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)                                                                                                                     
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)                                                                                                                
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)                                                                                                                                      
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)                                                                                                                                      
        at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)                                                                                                                                
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)                                                                                                                                    
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)                                                                                                                 
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)                                                                                                                              
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)                                                                                                                       
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)                                                                                                                      
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)                                                                                                                               
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)                                                                                                                        
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)                                                                                                                       
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)                                                                                                                           
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)                                                                                                                          
        at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)                                                                                                                    
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)                                                                                                                          
        at org.eclipse.jetty.server.Server.handle(Server.java:499)                                                                                                                                                 
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)                                                                                                                                       
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)                                                                                                                             
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)                                                                                                                              
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)                                                                                                                        
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)                                                                                                                         
        at java.lang.Thread.run(Thread.java:745)                                                                                                                                                                   
Caused by: java.lang.IllegalStateException: Can only invoke this method before calling getInstance                                                                                                                 
        at org.apache.commons.validator.routines.DomainValidator.updateTLDOverride(DomainValidator.java:1680)                                                                                                      
        at com.google.gerrit.server.mail.OutgoingEmailValidator.<clinit>(OutgoingEmailValidator.java:24)                                                                                                           
        ... 41 more  

最佳答案

这似乎是 2.12.4 gerrit 构建中的一个错误。我从 gerrit forum 得到了一些帮助.

问题和修复:

Fix usage of OutgoingEmailValidator to make sure TLD override works

The call to DomainValidator.updateTLDOverride may only be done before
the call to EmailValidator.getInstance otherwise it throws an exception.

Putting the DomainValidator.updateTLDOverride call inside a static
block doesn't seem to be safe enough. Protect it with an atomic boolean
instead.

The bug已修复,正在等待 future 版本中的合并。

关于java - Gerrit 注册新电子邮件 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39385094/

相关文章:

Java Swing JFrame 打不开(扫雷游戏)?

java - Spring WebFlux - 使用间隔响应测试 RestController

java - java中如何指定文件路径?

php - 哪个操作系统更适合网络服务器,ubuntu 或 debian 或其他?

java - 在 Jetty 服务器上,如果您的 servlet 仅映射到特定的 url 模式,如何禁用目录列表?

ant - 非法参数异常 : key can't be empty -- Which Key?

java - 在camel路由中发送POST请求

java - 将字符串值转换为 Java 类名

macos - 无法解析类型 java.util.Map$Entry。 Mac OS 与 Debian 问题?

javascript - 跨站脚本有帮助吗?