Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.StringIndexOutOfBoundsException #537

Open
jcanderan opened this issue Jul 17, 2024 · 2 comments
Open

java.lang.StringIndexOutOfBoundsException #537

jcanderan opened this issue Jul 17, 2024 · 2 comments
Assignees
Labels

Comments

@jcanderan
Copy link

jcanderan commented Jul 17, 2024

Hello,

I posted about this issue in the #438 but wasn't able to duplicate it reliably. I've encountered it again and have been able to duplicate it consistently on different machines (even with re-running SearchGUI) with the same file.

edit: noticed I also had it opened as #485 but it was only temporarily resolved and has returned

Typically it goes away after re-trying a number of times but not this time.

(same error as below on a linux machine with 64 GB and Java 19)

I put the searchgui_out.zip here

Thanks!

Error from PeptideShaker side:


Wed Jul 17 10:47:00 EDT 2024        Selecting leading proteins, inferring peptide and protein inference status.
Wed Jul 17 10:47:01 EDT 2024        An error occurred: null
Wed Jul 17 10:47:01 EDT 2024        Please contact the developers (https://github.com/compomics/peptide-shaker/issues).

Wed Jul 17 10:47:01 EDT 2024        Importing Data Canceled!

Contents of the log file:

Wed Jul 17 10:43:35 EDT 2024: PeptideShaker version 3.0.8.
Memory given to the Java virtual machine: 4294967296.
Total amount of memory in the Java virtual machine: 134217728.
Free memory: 75491800.
Java version: 22.
1714 script command tokens
(C) 2009 Jmol Development
Jmol Version: 12.0.43  2011-05-03 14:21
java.vendor: Oracle Corporation
java.version: 22
os.name: Windows 11
memory: 57.0/134.2
processors available: 16
useCommandThread: false

java.lang.StringIndexOutOfBoundsException
	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
	at java.base/java.util.concurrent.ForkJoinTask.getException(ForkJoinTask.java:557)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:573)
	at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:663)
	at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:677)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:264)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:611)
	at eu.isas.peptideshaker.protein_inference.ProteinInference.inferPiStatus(ProteinInference.java:115)
	at eu.isas.peptideshaker.PeptideShaker.createProject(PeptideShaker.java:632)
	at eu.isas.peptideshaker.gui.NewDialog$20.run(NewDialog.java:748)
	at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.StringIndexOutOfBoundsException: Index 382 out of bounds for length 382
	at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
	at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
	at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
	at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
	at java.base/java.lang.String.checkIndex(String.java:4881)
	at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:46)
	at java.base/java.lang.String.charAt(String.java:1582)
	at com.compomics.util.experiment.identification.utils.PeptideUtils.getNEnzymaticTermini(PeptideUtils.java:639)
	at com.compomics.util.experiment.identification.utils.PeptideUtils.lambda$isEnzymatic$16(PeptideUtils.java:681)
	at java.base/java.util.stream.IntPipeline$4$1.accept(IntPipeline.java:246)
	at java.base/java.util.Spliterators$IntArraySpliterator.tryAdvance(Spliterators.java:1133)
	at java.base/java.util.stream.IntPipeline.forEachWithCancel(IntPipeline.java:163)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:574)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:546)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.IntPipeline.anyMatch(IntPipeline.java:537)
	at com.compomics.util.experiment.identification.utils.PeptideUtils.lambda$isEnzymatic$18(PeptideUtils.java:688)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1686)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:144)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:574)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:546)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:647)
	at com.compomics.util.experiment.identification.utils.PeptideUtils.isEnzymatic(PeptideUtils.java:678)
	at eu.isas.peptideshaker.protein_inference.ProteinInference.lambda$compareMainProtein$4(ProteinInference.java:403)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.stream.LongPipeline$1$1.accept(LongPipeline.java:177)
	at java.base/java.util.Spliterators$LongArraySpliterator.tryAdvance(Spliterators.java:1232)
	at java.base/java.util.stream.LongPipeline.forEachWithCancel(LongPipeline.java:161)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:574)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:546)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:647)
	at eu.isas.peptideshaker.protein_inference.ProteinInference.compareMainProtein(ProteinInference.java:402)
	at eu.isas.peptideshaker.protein_inference.ProteinInference.inferPiStatus(ProteinInference.java:173)
	at eu.isas.peptideshaker.protein_inference.ProteinInference.lambda$inferPiStatus$1(ProteinInference.java:116)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:212)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:556)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:759)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
@hbarsnes hbarsnes self-assigned this Jul 21, 2024
@hbarsnes hbarsnes added the bug label Jul 21, 2024
@hbarsnes
Copy link
Member

Thanks for sharing the test data. I can confirm that the error is reproduced on my end. I will look into it after the summer holidays and see if I can come up with a fix.

@hbarsnes
Copy link
Member

hbarsnes commented Sep 4, 2024

I've finally released a new version of PeptideShaker with a quick fix that supports slightly larger databases. You should now be able to load your data. However, the issue may reappear if using even larger databases. Hence, a proper fix ought to be implemented at some point. I will therefore keep the issue open as a reminder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants