It's all about the answers!

Ask a question

StringIndexOutOfBoundsException during [IBM i Command Build


Bud Blanchard (3633) | asked May 04 '10, 4:02 p.m.
StringIndexOutOfBoundsException during

RTCi
IBM Rational Developer for i 7.5.0.3
IBM Rational Developer for i, Version 7.5.0.3 Interim Fix 001

After the last source member was built, these messages appear and the build stops:
java.lang.StringIndexOutOfBoundsException
at java.lang.String.charAt(String.java:415)
at java.util.regex.Matcher.appendReplacement(Matcher.java:720)
at java.util.regex.Matcher.replaceAll(Matcher.java:822)
at java.lang.String.replaceAll(String.java:1566)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.generateCommand(QcmdBuildParticipant.java:1025)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.buildProject(QcmdBuildParticipant.java:429)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.executeCommandOnAll(QcmdBuildParticipant.java:360)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.build(QcmdBuildParticipant.java:216)
at com.ibm.team.build.internal.engine.BuildLoop.invokeBuildParticipants(BuildLoop.java:601)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:432)
at java.lang.Thread.run(Thread.java:811)

What can I do to clear this error? I can't complete a build and deliver all my changes.

13 answers



permanent link
Anthony Kesterton (7.5k9180136) | answered May 04 '10, 5:30 p.m.
JAZZ DEVELOPER
StringIndexOutOfBoundsException during

RTCi
IBM Rational Developer for i 7.5.0.3
IBM Rational Developer for i, Version 7.5.0.3 Interim Fix 001

After the last source member was built, these messages appear and the build stops:
java.lang.StringIndexOutOfBoundsException
at java.lang.String.charAt(String.java:415)
at java.util.regex.Matcher.appendReplacement(Matcher.java:720)
at java.util.regex.Matcher.replaceAll(Matcher.java:822)
at java.lang.String.replaceAll(String.java:1566)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.generateCommand(QcmdBuildParticipant.java:1025)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.buildProject(QcmdBuildParticipant.java:429)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.executeCommandOnAll(QcmdBuildParticipant.java:360)
at com.ibm.teami.build.internal.engine.QcmdBuildParticipant.build(QcmdBuildParticipant.java:216)
at com.ibm.team.build.internal.engine.BuildLoop.invokeBuildParticipants(BuildLoop.java:601)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:432)
at java.lang.Thread.run(Thread.java:811)

What can I do to clear this error? I can't complete a build and deliver all my changes.


I would raise a defect here on jazz.net unless someone else can suggest what went wrong.

anthony

permanent link
Nick Edgar (6.5k711) | answered May 04 '10, 8:28 p.m.
JAZZ DEVELOPER
This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK

permanent link
Bud Blanchard (3633) | answered May 05 '10, 10:46 a.m.
This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK


Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following:
cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse
startup.qsh -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********

Here is the resulting Command for the current build engine from the IBM i job that was submitted:
QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********')


Here are the installed license programs on my IBM i:
5722JV1 V5R4M0 IBM Developer Kit for Java
5722JV1 V5R4M0 Java Developer Kit 1.3
5722JV1 V5R4M0 Java Developer Kit 1.4
5722JV1 V5R4M0 Java Developer Kit 5.0
5722JV1 V5R4M0 J2SE 5.0 32 bit
5722JV1 V5R4M0 Java Developer Kit


We are running WAS 6.1 on the IBM i.

Bud.

permanent link
Nick Edgar (6.5k711) | answered May 05 '10, 1:34 p.m.
JAZZ DEVELOPER
Bud,

Yes, that example is Windows-specific. I'm not exactly sure how the startup.qsh wrapper works on iSeries, or how to modify it to refer to a different JDK, but the preferred JDK is either the one that ships with RTC, or IBM 1.5.0 SR11 (or later).

It may also be that the problem is with special characters in the configured command line. Please see my question in the work item I've filed for this. Let's follow up there.

Regards,
Nick

permanent link
Bud Blanchard (3633) | answered May 05 '10, 3:02 p.m.
Bud,

Yes, that example is Windows-specific. I'm not exactly sure how the startup.qsh wrapper works on iSeries, or how to modify it to refer to a different JDK, but the preferred JDK is either the one that ships with RTC, or IBM 1.5.0 SR11 (or later).

It may also be that the problem is with special characters in the configured command line. Please see my question in the work item I've filed for this. Let's follow up there.

Regards,
Nick

Nick,

  1. My JAZZ.net UserID/pw is not authorized to the link for the work item you filed for this.
  2. I looked in the IFS for the directory: /QOpenSys/QIBM/ProdData/JavaVM/jdk50/ and I don't have it! I have /QOpenSys/QIBM/ProdData/Java400/jdk15/bin/java (also /jdk13/bin/java, /jdk14/bin/java and /jdk6/bin/java). So there must be a configuration entry somewhere that currently points to /JavaVM... that needs to point to /Java400... ? where can I find that entry?

I wonder what JDK is being used?
Bud

permanent link
Kushal Munir (126103) | answered May 05 '10, 3:15 p.m.
JAZZ DEVELOPER
Hi Bud,

Do you have a special character, such as '$', '@' or '#', in your library, source file or member names?

Thanks,
Kushal

This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK


Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following:
cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse
startup.qsh -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********

Here is the resulting Command for the current build engine from the IBM i job that was submitted:
QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********')


Here are the installed license programs on my IBM i:
5722JV1 V5R4M0 IBM Developer Kit for Java
5722JV1 V5R4M0 Java Developer Kit 1.3
5722JV1 V5R4M0 Java Developer Kit 1.4
5722JV1 V5R4M0 Java Developer Kit 5.0
5722JV1 V5R4M0 J2SE 5.0 32 bit
5722JV1 V5R4M0 Java Developer Kit


We are running WAS 6.1 on the IBM i.

Bud.

permanent link
Nick Edgar (6.5k711) | answered May 05 '10, 3:50 p.m.
JAZZ DEVELOPER
Bud, I've asked our webmaster why you can't access the work item. I think you should be able to. I'll let Kushal follow up on the original problem (thanks Kushal).

permanent link
Bud Blanchard (3633) | answered May 05 '10, 3:50 p.m.
Hi Bud,

Do you have a special character, such as '$', '@' or '#', in your library, source file or member names?

Thanks,
Kushal

This looks like a JDK bug, since String.replaceAll doesn't take any index arguments. Which JDK are you using to run JBE? Please see: https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK


Nick, The referenced FAQ example has the -vm entry pointing to \Program Files\IBM\TeamConcert\jdk\bin\java which is a Windows environment. We are starting the Build Engine from the IBM i system. I am submitting the following:
cd /QIBM/ProdData/RTCi/V1.0/Build/Jazz/BuildSystem/BuildEngine/Eclipse
startup.qsh -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********

Here is the resulting Command for the current build engine from the IBM i job that was submitted:
QSH CMD('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/bin/java -Dos400.stdout=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeout -Dos400.stderr=file:/QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/RTCiLogs/QRTCIBE308/jbeerr -Dos400.stdio.convert=Y -cp /QIBM/ProdData/RTCi/V1.0/Build/jazz/buildsystem/buildengine/eclipse/./plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar -DDB2I_JDBC=/QIBM/ProdData/HTTP/Public/jt400/lib org.eclipse.equinox.launcher.Main -application com.ibm.team.build.engine.jazzBuildEngine -repository https://tfcs1:9443/jazz -engineId TFCS -userId JAZZBUILDR -pass **********')


Here are the installed license programs on my IBM i:
5722JV1 V5R4M0 IBM Developer Kit for Java
5722JV1 V5R4M0 Java Developer Kit 1.3
5722JV1 V5R4M0 Java Developer Kit 1.4
5722JV1 V5R4M0 Java Developer Kit 5.0
5722JV1 V5R4M0 J2SE 5.0 32 bit
5722JV1 V5R4M0 Java Developer Kit


We are running WAS 6.1 on the IBM i.

Bud.
Kushal,

Yes, I have some of each in member names only. That must be a problem? Some of these member names with special characters have been delivered and built for upwards of a year now.

I also have the underscore character in some member names. None of the source file names contain any special characters. A few libraries have a period in the middle of the name (carry over from ADM).

Bud.

permanent link
Seth Packham (1.4k42213) | answered May 05 '10, 5:33 p.m.
FORUM ADMINISTRATOR / JAZZ DEVELOPER

My JAZZ.net UserID/pw is not authorized to the link for the work item you filed for this.


Bud, are you getting a specific error when you try to follow the link to the work item? Are you able to view other work items in other project areas on jazz.net? jazz.net/jazz or jazz.net/jazz02, etc. I was able to browse to that work item using another public ID that I have, so it seems that the permissions are correct.

Are you using ALSWizard as your jazz.net login ID?

permanent link
Bud Blanchard (3633) | answered May 05 '10, 6:57 p.m.

My JAZZ.net UserID/pw is not authorized to the link for the work item you filed for this.


Bud, are you getting a specific error when you try to follow the link to the work item? Are you able to view other work items in other project areas on jazz.net? jazz.net/jazz or jazz.net/jazz02, etc. I was able to browse to that work item using another public ID that I have, so it seems that the permissions are correct.

Are you using ALSWizard as your jazz.net login ID?

The message was to the effect that my ID was not authorized. I didn't copy it. However, I just tried and I get:
Bad Gateway

The proxy server received an invalid response from an upstream server.


Yes, alswizard. Is it case sensitive? Bud

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.