I've got another weird crash, still on a mac, theoretically with no involvement of anything but the official client. I say "theoretically" because I don't quite believe it.
I've been very careful since my last pair of bug reports in this forum to keep 2 separate versions of $HOME/.haven One was used *only* with the official client, and the other only with the beta version of Ender's client.
Today I got a crash with the ender beta client. My version was at least one update out of date, FWIW. After reporting it on the relevant thread, I downloaded the latest version of that client, launched it, and got a different client crash. So I reported that too. (See the Ender client thread, page 229, if you want the details.)
I then moved the $HOME/.haven I'd been using with that client to $HOME/haven/ender_beta/haven_bad and restored the copy of $HOME/.haven I'd squirreled away in $HOME/haven/official_client/haven_save
I launched the official client, and tried to select the same character who had experienced the 2 ender client crashes.
I got a crash of the official client before the character's location was completely displayed.
- Code: Select all
java.lang.NullPointerException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:564)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:591)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:689)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at haven.OCache.ctick(OCache.java:127)
at haven.Glob.ctick(Glob.java:148)
at haven.GLPanel$Loop.run(GLPanel.java:366)
at haven.JOGLPanel.run(JOGLPanel.java:246)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NullPointerException: Cannot read field "name" because "this.b" is null
at haven.res.ui.obj.buddy.Buddy.ctick(buddy.cjava:148)
at haven.Gob.ctick(Gob.java:442)
at haven.OCache.lambda$ctick$0(OCache.java:121)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
This stack trace is essentially identical to the second crash I got with the ender beta client.
I see three possibilities here:
- ender imported a bug from the official client, yet I'm the only one to encounter it in the official client. Doesn't seem plausible
- they coincidentally both have a bug with the same symptoms, and I'm once again the only one to encounter it in the official client. That seems even less likely
- there is an additional location that's used by both the official client and the ender client, and the ender client put something there that neither of them liked. (Theoretically the culprit could be the official client, but once again, there'd be more bug reports.)
The other alternative is that I screwed up my efforts to keep the two directories completely separate, each touched by only one client. This isn't likely, but I still haven't written launch scripts that automatically save/restore the shared directories as part of launching the two clients, so it has to be considered possible.
So, question for anyone who knows: is there another shared location?
[Edited to add: the character _is_ able to log in with the official client after removing $HOME/.haven, then launching the official client.]