Skip to content

nbbuild external libraries upgrade - #9594

Open
ebarboni wants to merge 1 commit into
apache:masterfrom
ebarboni:sigupgdate
Open

ebarboni wants to merge 1 commit into
apache:masterfrom
ebarboni:sigupgdate

Conversation

@ebarboni

@ebarboni ebarboni commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

not tackling rat as scanning time is too long

sigtest to 2.7

removed the jsoup update on this pr

@ebarboni ebarboni added this to the NB32 milestone Sep 2, 2026
@ebarboni ebarboni added the build label Sep 2, 2026
@mbien mbien added the Upgrade Library Library (Dependency) Upgrade label Sep 2, 2026
@ebarboni
ebarboni requested a review from mbien September 3, 2026 13:23
@ebarboni

ebarboni commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

@mbien it looks hard, I tried to resign but look like the binaryclass contain type like 0x60 and other that is not related to any possible type listed in the sigtest plugin.

@mbien

mbien commented Sep 3, 2026

Copy link
Copy Markdown
Member

master has a similar exception:

  [sigtest] Sep 02, 2026 4:43:37 PM com.sun.tdk.signaturetest.SignatureTest parseParameters
  [sigtest] INFO: SignatureTest.args: [-FileName, /home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig, -static, -b, -Mode, bin, -ApiVersion, 3.16, -PackageWithoutSubpackages, org.newsclub.net.unix, -BootCP, 8, -Classpath, /home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-native-common-2.5.1.jar:/home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-common-2.5.1.jar:/home/runner/work/netbeans/netbeans/nbbuild/netbeans/ide/modules/libs-c-kohlschutter-junixsocket.jar]
  [sigtest] java.lang.ClassFormatError: Index out of the constant pool bounds
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$BinaryClassDescription.getConstant(BinaryClassDescrLoader.java:126)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$BinaryClassDescription.getName(BinaryClassDescrLoader.java:173)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.readAnnotation(BinaryClassDescrLoader.java:1103)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.readExtAnnotations(BinaryClassDescrLoader.java:985)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.read(BinaryClassDescrLoader.java:929)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readFields(BinaryClassDescrLoader.java:589)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readClass(BinaryClassDescrLoader.java:418)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readClass(BinaryClassDescrLoader.java:366)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.load(BinaryClassDescrLoader.java:243)
  [sigtest] 	at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:180)
  [sigtest] 	at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:164)
  [sigtest] 	at com.sun.tdk.signaturetest.SignatureTest.verifyClass(SignatureTest.java:1016)
...

PR:

  [sigtest] Sep 03, 2026 2:48:44 PM com.sun.tdk.signaturetest.SignatureTest parseParameters
  [sigtest] INFO: SignatureTest.args: [-FileName, /home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig, -static, -b, -Mode, bin, -ApiVersion, 3.16, -PackageWithoutSubpackages, org.newsclub.net.unix, -BootCP, 8, -Classpath, /home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-native-common-2.5.1.jar:/home/runner/work/netbeans/netbeans/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-common-2.5.1.jar:/home/runner/work/netbeans/netbeans/nbbuild/netbeans/ide/modules/libs-c-kohlschutter-junixsocket.jar]
  [sigtest] java.io.EOFException
  [sigtest] 	at java.base/java.io.DataInputStream.readUnsignedByte(DataInputStream.java:297)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.readLocations(BinaryClassDescrLoader.java:1095)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.readExtAnnotations(BinaryClassDescrLoader.java:1006)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader$AttrsIter.read(BinaryClassDescrLoader.java:929)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readFields(BinaryClassDescrLoader.java:589)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readClass(BinaryClassDescrLoader.java:418)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.readClass(BinaryClassDescrLoader.java:366)
  [sigtest] 	at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.load(BinaryClassDescrLoader.java:243)
  [sigtest] 	at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:180)
  [sigtest] 	at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:164)
  [sigtest] 	at com.sun.tdk.signaturetest.SignatureTest.verifyClass(SignatureTest.java:1031)
  [sigtest] 	at com.sun.tdk.signaturetest.SignatureTest.check(SignatureTest.java:831)
  [sigtest] 	at com.sun.tdk.signaturetest.SignatureTest.run(SignatureTest.java:292)
  [sigtest] 	at org.netbeans.apitest.SigtestHandler.execute(SigtestHandler.java:168)
  [sigtest] 	at org.netbeans.apitest.Sigtest.execute(Sigtest.java:199)
  [sigtest] 	at org.netbeans.nbbuild.Sigtest.apitest(Sigtest.java:296)
  [sigtest] 	at org.netbeans.nbbuild.Sigtest.execute(Sigtest.java:136)
  [sigtest] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
  [sigtest] 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  [sigtest] 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
  [sigtest] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
  [sigtest] 	at org.apache.tools.ant.Task.perform(Task.java:350)

libs-c-kohlschutter-junixsocket.jar might be redundant by now (edit: #9597), but it happens to org-netbeans-libs-tomlj.jar too.

we really have to get the logging under control and only log the interesting stuff, even simple steps produce thousands of lines.

@mbien

mbien commented Sep 3, 2026

Copy link
Copy Markdown
Member

<target name="gen-sigtest">
<!--
Workaround for sigtest generation failures. Problems:
- RuntimeInvisibleTypeAnnotations are not parsed properly
(the org.eclipse.jdt.annotation.NonNull annotation on the return
and parameter types causes this code to be executed)
- AFUNIXServerSocket::newImpl and
AFDatagramSocket::getAncillaryDataSupport return non-public types from
protected methods
- Protected constructor org.newsclub.net.unix.AFSocketAddress.init
(java.lang.Class<org.newsclub.net.unix.SentinelSocketAddress>,int)
uses a non-public type as parameter
-->
<antcall target="projectized.gen-sigtest">
<param name="sigtest.gen.fail.on.error" value="false"/>
</antcall>
</target>

@mbien

mbien commented Sep 15, 2026

Copy link
Copy Markdown
Member

it looks like some lib wrappers which failed on validation were configured with sigtest.gen.fail.on.error=false already. Newer versions of the sigtest library interpret this particular failure as fatal and let the exception now through.

Solution is relatively simple: lets disable sigtest for lib wrappers which were previously marked with fail-on-error false entirely, and we should be able to upgrade. Tested via #9620

We can move the commit over to this PR later, once reviewed so that everything is at the right PR.

IMO: we should also reconsider if sigtesting third party libs is worth the effort, it creates just noise, huge diffs and is likely of little value for anyone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Upgrade Library Library (Dependency) Upgrade

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants