Hi there.

I have another case where running jpackage emits

Bundler DEB Bundle failed because of java.lang.NullPointerException:
Cannot invoke "java.lang.CharSequence.length()" because "this.text" is
null

I have never experienced NullPointerExceptions in other JDK tools.
Seems to me JPackage is a new kid on the block. In this case, JPackage
is invoked to finish from an existing appimage to the final package.
the failure is caused because some important files are missing in
appimage.

The previous run is even more puzzling for me. It is supposed to create
the appimage directory. And while it emits no error message, on my
development machine it runs reliably while on the Github Runner it just
does not create all files - no error message, no exit code - nothing.

Any idea what I could be looking at?

Hiran



On Mon, 2022-04-04 at 08:49 +0200, Hiran Chaudhuri wrote:
> Hello Alex,
>
> I tried running the same command with the jdk19 you pointed at. As a
> first, I get this output:
>
> $JAVA_HOME/bin/jpackage --version
> 19-ea
>
> With that, I invoked the command as before, and i fairly got the same
> output. So the behaviour in the latest version has not changed.
>
> Two things I'd like to point out:
> - there is no JPackage version in the output itself so both you and
> me
> have to trust the correct one was called
> - I found out the mistake: I should have used
>   --app-image build/app-image/SettlersRemake
>   but JPackage gave a warning in the beginning and processed all the
>   rest
>
> Hiran
>
>
> $JAVA_HOME/bin/jpackage --app-image build/app-image --verbose --dest
> build
> [08:41:58.675] Warning: app-image dir not generated by jpackage.
> [08:41:58.688] Running dpkg
> [08:41:58.696] Command [PID: 21712]:
>     dpkg --print-architecture
> [08:41:58.696] Output:
>     amd64
> [08:41:58.698] Returned: 0
>
> [08:41:58.702] Running dpkg
> [08:41:58.719] Command [PID: 21714]:
>     dpkg -s coreutils
> [08:41:58.719] Output:
>     Package: coreutils
>     Essential: yes
>     Status: install ok installed
>     Priority: required
>     Section: utils
>     Installed-Size: 7196
>     Maintainer: Ubuntu Developers <
> ubuntu-devel-disc...@lists.ubuntu.com>
>     Architecture: amd64
>     Multi-Arch: foreign
>     Version: 8.30-3ubuntu2
>     Pre-Depends: libacl1 (>= 2.2.23), libattr1 (>= 1:2.4.44), libc6
> (>=
> 2.28), libselinux1 (>= 2.1.13)
>     Description: GNU core utilities
>      This package contains the basic file, shell and text
> manipulation
>      utilities which are expected to exist on every operating system.
>      .
>      Specifically, this package includes:
>      arch base64 basename cat chcon chgrp chmod chown chroot cksum
> comm
> cp
>      csplit cut date dd df dir dircolors dirname du echo env expand
> expr
>      factor false flock fmt fold groups head hostid id install join
> link ln
>      logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
> nproc
> numfmt
>      od paste pathchk pinky pr printenv printf ptx pwd readlink
> realpath rm
>      rmdir runcon sha*sum seq shred sleep sort split stat stty sum
> sync
> tac
>      tail tee test timeout touch tr true truncate tsort tty uname
> unexpand
>      uniq unlink users vdir wc who whoami yes
>     Homepage: http://gnu.org/software/coreutils
>     Original-Maintainer: Michael Stone <mst...@debian.org>
> [08:41:58.719] Returned: 0
>
> [08:41:58.720] Running dpkg-deb
> [08:41:58.722] Warning: app-image dir not generated by jpackage.
> [08:41:58.723] Warning: app-image dir not generated by jpackage.
> [08:41:58.723] java.lang.NullPointerException: Cannot invoke
> "java.lang.CharSequence.length()" because "this.text" is null
>         at
> java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769)
>         at java.base/java.util.regex.Matcher.reset(Matcher.java:415)
>         at java.base/java.util.regex.Matcher.<init>(Matcher.java:252)
>         at
> java.base/java.util.regex.Pattern.matcher(Pattern.java:1144)
>         at
> jdk.jpackage/jdk.jpackage.internal.LinuxDebBundler.lambda$static$1(Li
> nu
> xDebBundler.java:84)
>         at
> jdk.jpackage/jdk.jpackage.internal.LinuxPackageBundler.validate(Linux
> Pa
> ckageBundler.java:72)
>         at
> jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments
> .j
> ava:688)
>         at
> jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Argumen
> ts
> .java:561)
>         at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:91)
>         at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
> [08:41:58.725] jdk.jpackage.internal.PackagerException: Bundler DEB
> Bundle failed because of java.lang.NullPointerException: Cannot
> invoke
> "java.lang.CharSequence.length()" because "this.text" is null
>         at
> jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments
> .j
> ava:710)
>         at
> jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Argumen
> ts
> .java:561)
>         at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:91)
>         at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
> Caused by: java.lang.NullPointerException: Cannot invoke
> "java.lang.CharSequence.length()" because "this.text" is null
>         at
> java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769)
>         at java.base/java.util.regex.Matcher.reset(Matcher.java:415)
>         at java.base/java.util.regex.Matcher.<init>(Matcher.java:252)
>         at
> java.base/java.util.regex.Pattern.matcher(Pattern.java:1144)
>         at
> jdk.jpackage/jdk.jpackage.internal.LinuxDebBundler.lambda$static$1(Li
> nu
> xDebBundler.java:84)
>         at
> jdk.jpackage/jdk.jpackage.internal.LinuxPackageBundler.validate(Linux
> Pa
> ckageBundler.java:72)
>         at
> jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments
> .j
> ava:688)
>         ... 3 more
>
>
> On Fri, 2022-04-01 at 12:37 -0400, Alexey Semenyuk wrote:
> > Hi Hiran,
> >
> > Looks like jpackage fails because of missing package name on the
> > command
> > line.
> > I agree that the error message is not helpful. Can you try one of
> > jdk19
> > EA builds [1] to see if the problem is reproducible?
> >
> > [1] https://jdk.java.net/19/
> >
> > - Alexey
> >
> > On 4/1/2022 5:58 AM, Hiran Chaudhuri wrote:
> > > Hello there.
> > >
> > > While I am trying to package my project using jpackage 16.0.1 on
> > > Ubuntu
> > > 20 LTS I have difficulty in assembling the correct commands.
> > >
> > > The documentation covers a lot but not everything. For example,
> > > it
> > > is
> > > not clear to me when I have to provide an option - especially
> > > since
> > > I
> > > meanwhile take a two step approach of building the appimage, then
> > > tweaking something (that could have done by JPackage directly)
> > > and
> > > finally building the DEB package.
> > >
> > > While I believe the documentation is good enough, the error
> > > messages
> > > presented by JPackage are not. Here is one example. Hopefully you
> > > agree
> > > that the NullPointerException does not at all tell me what is
> > > wrong
> > > and
> > > what I could improve on.
> > >
> > > My feeling is that JPackage should do some better error handling
> > > and
> > > come up with improved messages.
> > >
> > > Hiran
> > >
> > >
> > > $ jpackage --app-image build/app-image --verbose --dest build
> > > [10:34:45.915] Warning: app-image dir not generated by jpackage.
> > > [10:34:45.930] Running dpkg
> > > [10:34:45.937] Command:
> > >      dpkg --print-architecture
> > > [10:34:45.937] Output:
> > >      amd64
> > > [10:34:45.939] Returned: 0
> > >
> > > [10:34:45.944] Running dpkg
> > > [10:34:45.961] Command:
> > >      dpkg -s coreutils
> > > [10:34:45.962] Output:
> > >      Package: coreutils
> > >      Essential: yes
> > >      Status: install ok installed
> > >      Priority: required
> > >      Section: utils
> > >      Installed-Size: 7196
> > >      Maintainer: Ubuntu Developers <
> > > ubuntu-devel-disc...@lists.ubuntu.com>
> > >      Architecture: amd64
> > >      Multi-Arch: foreign
> > >      Version: 8.30-3ubuntu2
> > >      Pre-Depends: libacl1 (>= 2.2.23), libattr1 (>= 1:2.4.44),
> > > libc6 (>=
> > > 2.28), libselinux1 (>= 2.1.13)
> > >      Description: GNU core utilities
> > >       This package contains the basic file, shell and text
> > > manipulation
> > >       utilities which are expected to exist on every operating
> > > system.
> > >       .
> > >       Specifically, this package includes:
> > >       arch base64 basename cat chcon chgrp chmod chown chroot
> > > cksum
> > > comm
> > > cp
> > >       csplit cut date dd df dir dircolors dirname du echo env
> > > expand
> > > expr
> > >       factor false flock fmt fold groups head hostid id install
> > > join
> > > link ln
> > >       logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl
> > > nohup
> > > nproc
> > > numfmt
> > >       od paste pathchk pinky pr printenv printf ptx pwd readlink
> > > realpath rm
> > >       rmdir runcon sha*sum seq shred sleep sort split stat stty
> > > sum
> > > sync
> > > tac
> > >       tail tee test timeout touch tr true truncate tsort tty
> > > uname
> > > unexpand
> > >       uniq unlink users vdir wc who whoami yes
> > >      Homepage: http://gnu.org/software/coreutils
> > >      Original-Maintainer: Michael Stone <mst...@debian.org>
> > > [10:34:45.962] Returned: 0
> > >
> > > [10:34:45.963] Running dpkg-deb
> > > [10:34:45.965] Warning: app-image dir not generated by jpackage.
> > > [10:34:45.967] Warning: app-image dir not generated by jpackage.
> > > [10:34:45.967] java.lang.NullPointerException: Cannot invoke
> > > "java.lang.CharSequence.length()" because "this.text" is null
> > >          at
> > > java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769
> > > )
> > >          at
> > > java.base/java.util.regex.Matcher.reset(Matcher.java:415)
> > >          at
> > > java.base/java.util.regex.Matcher.<init>(Matcher.java:252)
> > >          at
> > > java.base/java.util.regex.Pattern.matcher(Pattern.java:1134)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.LinuxDebBundler.lambda$static$
> > > 1(
> > > Linu
> > > xDebBundler.java:83)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.LinuxPackageBundler.validate(L
> > > in
> > > uxPa
> > > ckageBundler.java:72)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Argum
> > > en
> > > ts.j
> > > ava:663)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arg
> > > um
> > > ents
> > > .java:538)
> > >          at
> > > jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:98)
> > >          at
> > > jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
> > > [10:34:45.969] jdk.jpackage.internal.PackagerException: Bundler
> > > DEB
> > > Bundle failed because of java.lang.NullPointerException: Cannot
> > > invoke
> > > "java.lang.CharSequence.length()" because "this.text" is null
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Argum
> > > en
> > > ts.j
> > > ava:685)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arg
> > > um
> > > ents
> > > .java:538)
> > >          at
> > > jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:98)
> > >          at
> > > jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
> > > Caused by: java.lang.NullPointerException: Cannot invoke
> > > "java.lang.CharSequence.length()" because "this.text" is null
> > >          at
> > > java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769
> > > )
> > >          at
> > > java.base/java.util.regex.Matcher.reset(Matcher.java:415)
> > >          at
> > > java.base/java.util.regex.Matcher.<init>(Matcher.java:252)
> > >          at
> > > java.base/java.util.regex.Pattern.matcher(Pattern.java:1134)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.LinuxDebBundler.lambda$static$
> > > 1(
> > > Linu
> > > xDebBundler.java:83)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.LinuxPackageBundler.validate(L
> > > in
> > > uxPa
> > > ckageBundler.java:72)
> > >          at
> > > jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Argum
> > > en
> > > ts.j
> > > ava:663)
> > >          ... 3 more
> > >
> > > $
> > >
> > >

Reply via email to