Issue with building the main branch

> Task :openremote:agent:compileJava
openremote/agent/src/main/java/org/openremote/agent/protocol/bluetooth/mesh/SequenceNumberPersistencyManager.java:22: error: package org.jdom does not exist
import org.jdom.Document;

All of a sudden having this issue when building the custom project. Even with a fresh clone of the custom project.
adding :

implementation 'org.jdom:jdom:1.1.3'

to the agent gradle file fixes it. Anyone else having this problem ? was not having it yesterday

2 Likes

Hi,

I have exactly the same problem. I fixed it the same way.

I even have it on my CI/CD pipeline that is a copy of the upstream workflows. I have it since yesterday.

Peter

thanks for confirming, I just spent2 hours fighting with my IDE thinking i’ve gone crazy

No worries, here I have precisely the same story. I am making a pull request for it.

Maybe somebody should look at the fact that this is using jdom and not jdom2. There are still CVE issues open for both libraries.

Peter

Hi all!

I also experienced this today, but it was indeed quite a simple fix.

You can also, instead of adding the additional dependency on jdom v1,
upgrade the imports from jdom to jdom2; it worked for me out of the box. :wink:
I think that’s a better approach too.

However, no clue how that got in, since no upgrade / dependency change happened on our end.
Maybe removal of a deprecated version we were using?

Just pinged the OR developers internally :grin:

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

Hi Martin,

I did not do the jdom2 upgrade in my pull request, as I do not have any means to test the changes applied. According to jdom.org, jdom2 is a complete rewrite, so it is advisable to perform a small test with the real end application.

I wasted a lot of time checking out the issue, as I now have the build problem without changing anything. Yesterday, everything was fine. Anyhow, it is still a riddle to me how it was built in the first place without the package being imported.

The build pipeline runs on ubuntu-latest. Maybe an update in one of the build components was pushed last night.

Looks like one of the developers has re-published the zwave dependency and that had a runtime dependency on org.jdom but doesn’t anymore. org.jdom2 is another transient runtime dependency.

1 Like

Hi,
I experienced the same issue one hour ago. I changed the import to jdom2 in SequenceNumberPersistencyManager.java but I still have errors:

Could not compile build file '/home/energy/or/custom-project/agent/build.gradle'.
> startup failed:
  General error during conversion: Unsupported class file major version 65
  
  java.lang.IllegalArgumentException: Unsupported class file major version 65
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)

etc…

It’s strange, I tried before that to add
implementation "org.jdom:jdom:1.1.3"
in the /custom-project/agent/build.gradle file, but as it didn’t work I removed it again. Theoretically the build.gradle file is restored to its original state.
Any hints?

Hi,

You’ve compiled the manager with a java version of 21 but the manager docker container is using java 17.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.