title: Java substring: 'string index out of range'
body: <p>I'm guessing I'm getting this error because the string is trying to substring a <code>null</code> value. But wouldn't the <code>".length() &gt; 0"</code> part eliminate that issue?</p>
  
  <p>Here is the Java snippet:</p>
  
  <pre><code>if (itemdescription.length() &gt; 0) {
      pstmt2.setString(3, itemdescription.substring(0,38));
  } 
  else { 
      pstmt2.setString(3, "_");
  } 
  </code></pre>
  
  <p>I got this error: </p>
  
  <pre><code> java.lang.StringIndexOutOfBoundsException: String index out of range: 38
      at java.lang.String.substring(Unknown Source)
      at MASInsert2.itemimport(MASInsert2.java:192)
      at MASInsert2.processRequest(MASInsert2.java:125)
      at MASInsert2.doGet(MASInsert2.java:219)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
      at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:835)
      at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
      at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>