jfrog / teamcity-artifactory-plugin

TeamCity plugin that enables traceable build artifacts with Artifactory
https://www.jfrog.com/confluence/display/JFROG/TeamCity+Artifactory+Plug-in
Apache License 2.0
42 stars 47 forks source link

java.lang.NoClassDefFoundError: org/jdom2/JDOMException (WORKAROUND) #136

Open lachlanodonnell opened 1 year ago

lachlanodonnell commented 1 year ago

Workaround by patching jdom2-2.0.6.1.jar into teamcity agent plugin's lib directory inside the teamcity plugin.

Using release process on TeamCity Professional 2022.10.2 (build 117025). The following stack trace was produced.

java.lang.NoClassDefFoundError: org/jdom2/JDOMException at org.jfrog.teamcity.agent.listener.AgentListenerReleaseHelper.changePomVersions(AgentListenerReleaseHelper.java:139) at org.jfrog.teamcity.agent.listener.AgentListenerReleaseHelper.runnerFinished(AgentListenerReleaseHelper.java:90) at org.jfrog.teamcity.agent.ArtifactoryAgentListener.runnerFinished(ArtifactoryAgentListener.java:135) 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 jetbrains.buildServer.util.EventDispatcher.invokeListeners(EventDispatcher.java:157) at jetbrains.buildServer.util.EventDispatcher.lambda$dispatch$0(EventDispatcher.java:134) at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:76) at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:134) at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:82) at com.sun.proxy.$Proxy24.runnerFinished(Unknown Source) at jetbrains.buildServer.agent.impl.buildStages.runnerStages.finish.FireRunnerFinishedFStage.doFinishStage(FireRunnerFinishedFStage.java:31) at jetbrains.buildServer.agent.impl.buildStages.RunnerFinishStagesExecutor.runFinishStage(RunnerFinishStagesExecutor.java:32) at jetbrains.buildServer.agent.impl.buildStages.RunnerFinishStagesExecutor.doBuildFinishStages(RunnerFinishStagesExecutor.java:23) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.safeCallFinishStages(RunnerContextExecutor.java:65) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.callRunnerStages(RunnerContextExecutor.java:56) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.StepExecutor.processNextStep(StepExecutor.java:25) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeRunnerStep(ForEachBuildRunnerStage.java:177) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.runStep(ForEachBuildRunnerStage.java:162) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeBuildRunners(ForEachBuildRunnerStage.java:112) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.doBuildStage(ForEachBuildRunnerStage.java:52) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:33) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:76) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:35) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.BuildRunActionImpl.doStages(BuildRunActionImpl.java:91) at jetbrains.buildServer.agent.impl.BuildRunActionImpl.runBuild(BuildRunActionImpl.java:65) at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:345) at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:63) at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:294) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.ClassNotFoundException: Class 'org.jdom2.JDOMException' was not found

mindruandrei3 commented 1 year ago

Hello,

I am facing the same issue with one Teamcity job, on Teamcity Enterprise version 2023.05. Could you tell me exactly in which plugin directory did you copy the jdom2 library? I tried copying it in the build agent's home/library path and in the job's workspace directory but with no success.

Regards, Andrei

lachlanodonnell commented 1 year ago

I did it originally by patching the artifactory teamcity plugin zip with the jar in the agent lib directory, then zipping with a new version number. On my server the directory that jdom2 ended up in is: image