Redmine Issue Link

Khaled Karray, geändert vor 3 Jahren.

Redmine Issue Link

Youngling Beiträge: 3 Beitrittsdatum: 02.12.20 Neueste Beiträge
Hello, I'm trying to test Redmine integration with klaros community and it works very well, but on the other hand I encounter a problem in link issue and I have this message: Unable to save this issue: Entity may not be null
attached screenshot
thumbnail
Torsten Stolpmann, geändert vor 3 Jahren.

RE: Redmine Issue Link

Jedi Council Member Beiträge: 755 Beitrittsdatum: 12.02.09 Neueste Beiträge
Hi Khaled,

thank you for your feedback. Can you please attach the relevant log files as well?

Regards,

Torsten
Khaled Karray, geändert vor 3 Jahren.

RE: Redmine Issue Link

Youngling Beiträge: 3 Beitrittsdatum: 02.12.20 Neueste Beiträge
Ok thanks,  i attached the log folder zipped
thumbnail
Torsten Stolpmann, geändert vor 3 Jahren.

RE: Redmine Issue Link

Jedi Council Member Beiträge: 755 Beitrittsdatum: 12.02.09 Neueste Beiträge
Sorry to bother you again, but as it seems that the relevant log message is only present in the console window you started.

Can you please repeat and send us the output?

Regards,

Torsten
thumbnail
Torsten Stolpmann, geändert vor 3 Jahren.

RE: Redmine Issue Link

Jedi Council Member Beiträge: 755 Beitrittsdatum: 12.02.09 Neueste Beiträge
Hello Khaled,

any update on this?
Khaled Karray, geändert vor 3 Jahren.

RE: Redmine Issue Link

Youngling Beiträge: 3 Beitrittsdatum: 02.12.20 Neueste Beiträge
Hi Torsten,
I'm sorry, I was trained to prepare a certification in management, short I installed Klaros in a linux machine to be more consistent with my need and I have the same error of redmine link issue, hereafter the LOGs
2020-12-11 16:13:21: ERROR, de.verit.klaros.web.beans.pages.evaluate.issues.EvaluateLinkIssueBean
java.lang.IllegalArgumentException: Entity may not be null
        at org.apache.http.util.Args.notNull(Args.java:54)
        at org.apache.http.util.EntityUtils.getContentCharSet(EntityUtils.java:159)
        at com.taskadapter.redmineapi.internal.comm.HttpUtil.getCharset(HttpUtil.java:32)
        at com.taskadapter.redmineapi.internal.comm.TransportDecoder.processContent(TransportDecoder.java:26)
        at com.taskadapter.redmineapi.internal.comm.TransportDecoder.processContent(TransportDecoder.java:19)
        at com.taskadapter.redmineapi.internal.comm.ComposingHandler.processContent(ComposingHandler.java:25)
        at com.taskadapter.redmineapi.internal.comm.ComposingHandler.processContent(ComposingHandler.java:25)
        at com.taskadapter.redmineapi.internal.comm.BaseCommunicator.sendRequest(BaseCommunicator.java:47)
        at com.taskadapter.redmineapi.internal.comm.redmine.RedmineUserPasswordAuthenticator.sendRequest(RedmineUserPasswordAuthenticator.java:53)
        at com.taskadapter.redmineapi.internal.comm.FmapCommunicator.sendRequest(FmapCommunicator.java:26)
        at com.taskadapter.redmineapi.internal.comm.FmapCommunicator.sendRequest(FmapCommunicator.java:26)
        at com.taskadapter.redmineapi.internal.comm.BasicSimplifier.sendRequest(BasicSimplifier.java:24)
        at com.taskadapter.redmineapi.internal.Transport.send(Transport.java:615)
        at com.taskadapter.redmineapi.internal.Transport.updateObject(Transport.java:294)
        at com.taskadapter.redmineapi.bean.Issue.update(Issue.java:634)
        at de.verit.klaros.service.issuemanagement.redmine.RedmineIssueManagementService.updateIssue(RedmineIssueManagementService.java:883)
        at de.verit.klaros.service.issuemanagement.connection.IssueManagementConnectionImpl.updateIssue(IssueManagementConnectionImpl.java:164)
        at de.verit.klaros.web.service.issuemanagement.IssueManagementPersistenceService.updateIssue(IssueManagementPersistenceService.java:410)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:19)
        at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:29)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:46)
        at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:25)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:63)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at de.verit.klaros.web.beans.interceptor.ConfigurableSynchronizationInterceptor.aroundInvoke(ConfigurableSynchronizationInterceptor.java:44)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:95)
        at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
        at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:89)
        at de.verit.klaros.web.service.issuemanagement.IssueManagementPersistenceService_$$_jvst646_6e.updateIssue(IssueManagementPersistenceService_$$_jvst646_6e.java)
        at de.verit.klaros.web.beans.pages.evaluate.issues.EvaluateLinkIssueBean.attachIssueToTestCase(EvaluateLinkIssueBean.java:278)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:19)
        at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:29)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:46)
        at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:25)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:63)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at de.verit.klaros.web.beans.interceptor.ConfigurableSynchronizationInterceptor.aroundInvoke(ConfigurableSynchronizationInterceptor.java:44)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:54)
        at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:95)
        at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
        at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:89)
        at de.verit.klaros.web.beans.pages.evaluate.issues.EvaluateLinkIssueBean_$$_jvst646_74.attachIssueToTestCase(EvaluateLinkIssueBean_$$_jvst646_74.java)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:337)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:350)
        at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:57)
        at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
        at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:65)
        at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:66)
        at com.sun.faces.application.ActionListenerImpl.getNavigationOutcome(ActionListenerImpl.java:82)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:71)
        at net.bull.javamelody.JsfActionListener.processAction(JsfActionListener.java:67)
        at javax.faces.component.UICommand.broadcast(UICommand.java:222)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:847)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1396)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:58)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
        at de.verit.klaros.web.ui.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
        at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:707)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.omnifaces.filter.CacheControlFilter.doFilter(CacheControlFilter.java:239)
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:72)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.verit.klaros.web.service.authentication.cas.CasSpringConfiguration$DummyFilter.doFilter(CasSpringConfiguration.java:162)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.verit.klaros.web.service.authentication.cas.CasSpringConfiguration$DummyFilter.doFilter(CasSpringConfiguration.java:162)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.verit.klaros.web.service.authentication.cas.CasSpringConfiguration$DummyFilter.doFilter(CasSpringConfiguration.java:162)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:39)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:61)
        at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:53)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:61)
        at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:78)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:61)
        at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:60)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:61)
        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:48)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:61)
        at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:132)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.omnifaces.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:123)
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.verit.klaros.web.filter.UserAgentFilter.doFilter(UserAgentFilter.java:49)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
        at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:880)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1601)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:834)

thumbnail
Torsten Stolpmann, geändert vor 3 Jahren.

RE: Redmine Issue Link

Jedi Council Member Beiträge: 755 Beitrittsdatum: 12.02.09 Neueste Beiträge
Hi Khaled,

thanks for responding, this is the information I was looking for.

The problem itself is twofold:

1. Root cause: You are trying to link to an issue you are not allowed to write to

See https://github.com/taskadapter/redmine-java-api/issues/354 for a similar issue

We changed the behavior for issue linking in version 5.0.4, now we add a backlink for the linked Klaros test case to the issue when linking. This is refused by Redmine.

I raised issue KLAROS-4609 to allow linking without write access to an issue as well, as this is the user expected behavior.
his will get fixed with the release of version 5.0.7.

2. The response from Redmine is not a valid HTTP Response, and the connector is rightfully complaining about that.

Redmine is sending  HTTP 204 *with* a response body, which is forbidden by the spec. This is a known error on the Redmine side,
which to my knowlegde they refuse to fix for compatibility reasons. 

See https://www.redmine.org/issues/8626 and https://www.redmine.org/issues/11388 for reference.

Thanks again for your input!

Torsten