Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-58825

Requirements FIle causes exception during config save

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • chroot-plugin
    • None

      I'm trying to use the "requirements file" option.

      Setting it to a non-empty value causes a test to run whether the file already exists and shows a warning if it doesn't (good). The warning is also shown if the file already exists (bad), and trying to save the configuration leads to an exception (very bad).

      Setting the option through editing the job configuration XML and reloading the Jenkins configuration works, and the job correctly uses the contents of the file as additional packages to install (good), but editing the job from the UI is now impossible as saving the configuration fails.

          [JENKINS-58825] Requirements FIle causes exception during config save

          Alex Earl added a comment -

          It would be helpful to anyone who wants to look into this to see the stack trace.

          Alex Earl added a comment - It would be helpful to anyone who wants to look into this to see the stack trace.

          Simon Richter added a comment -

          Stack trace:

          java.io.FileNotFoundException: File 'src/REQUIREMENTS' does not exist
           at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:297)
           at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1805)
           at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1838)
           at org.jenkinsci.plugins.chroot.builders.ChrootBuilder.<init>(ChrootBuilder.java:92)
           at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
           at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
           at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
           at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
           at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:529)
          Caused: java.lang.IllegalArgumentException
           at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:544)
           at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:784)
           at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
           at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678)
          Caused: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.chroot.builders.ChrootBuilder from {"chrootName":"debian-buster","clear":false,"loginAsRoot":false,"command":"make","packagesFile":"src/REQUIREMENTS","additionalPackages":"","ignoreExit":false,"noUpdate":false,"forceInstall":false,"stapler-class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder","$class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder"}
           at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:681)
           at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
           at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474)
           at hudson.model.Descriptor.newInstance(Descriptor.java:596)
          Caused: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.chroot.builders.ChrootBuilder from {"chrootName":"debian-buster","clear":false,"loginAsRoot":false,"command":"make","packagesFile":"src/REQUIREMENTS","additionalPackages":"","ignoreExit":false,"noUpdate":false,"forceInstall":false,"stapler-class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder","$class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder"}
           at hudson.model.Descriptor.newInstance(Descriptor.java:604)
           at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1059)
           at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1021)
           at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208)
           at hudson.model.Project.submit(Project.java:230)
           at hudson.model.Job.doConfigSubmit(Job.java:1348)
           at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:772)
           at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
           at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
           at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
           at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
           at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
           at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
           at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
           at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535)
           at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
           at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
          Caused: javax.servlet.ServletException
           at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797)
           at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
           at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
           at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
           at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
           at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
           at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
           at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
           at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
           at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
           at org.jenkinsci.plugins.modernstatus.ModernStatusFilter.doFilter(ModernStatusFilter.java:52)
           at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
           at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
           at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
           at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
           at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
           at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
           at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
           at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
           at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
           at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
           at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
           at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
           at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
           at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
           at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
           at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701)
           at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
           at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
           at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
           at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
           at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
           at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
           at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
           at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
           at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
           at org.eclipse.jetty.server.Server.handle(Server.java:502)
           at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
           at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
           at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
           at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
           at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
           at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
           at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
           at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
           at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
           at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
           at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
           at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
           at java.base/java.lang.Thread.run(Thread.java:834)

          Simon Richter added a comment - Stack trace: java.io.FileNotFoundException: File 'src/REQUIREMENTS' does not exist at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:297) at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1805) at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1838) at org.jenkinsci.plugins.chroot.builders.ChrootBuilder.<init>(ChrootBuilder.java:92) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:529) Caused: java.lang.IllegalArgumentException at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:544) at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:784) at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83) at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678) Caused: java.lang.IllegalArgumentException: Failed to instantiate class org.jenkinsci.plugins.chroot.builders.ChrootBuilder from {"chrootName":"debian-buster","clear":false,"loginAsRoot":false,"command":"make","packagesFile":"src/REQUIREMENTS","additionalPackages":"","ignoreExit":false,"noUpdate":false,"forceInstall":false,"stapler-class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder","$class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder"} at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:681) at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478) at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474) at hudson.model.Descriptor.newInstance(Descriptor.java:596) Caused: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.chroot.builders.ChrootBuilder from {"chrootName":"debian-buster","clear":false,"loginAsRoot":false,"command":"make","packagesFile":"src/REQUIREMENTS","additionalPackages":"","ignoreExit":false,"noUpdate":false,"forceInstall":false,"stapler-class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder","$class":"org.jenkinsci.plugins.chroot.builders.ChrootBuilder"} at hudson.model.Descriptor.newInstance(Descriptor.java:604) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1059) at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:1021) at hudson.util.DescribableList.rebuildHetero(DescribableList.java:208) at hudson.model.Project.submit(Project.java:230) at hudson.model.Job.doConfigSubmit(Job.java:1348) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:772) at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408) at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77) at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145) at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) Caused: javax.servlet.ServletException at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) at org.jenkinsci.plugins.modernstatus.ModernStatusFilter.doFilter(ModernStatusFilter.java:52) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:502) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.base/java.lang.Thread.run(Thread.java:834)

            Unassigned Unassigned
            simonrichter Simon Richter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: