Program: 47156
Project: 47156
Buggy source:
public synchronized void insertData(String name,long modified,int type,DLNAMediaInfo media){
  Connection conn=null;
  PreparedStatement ps=null;
  try {
    conn=getConnection();
    ps=conn.prepareStatement("String_Node_Str");
    ps.setString(1,name);
    ps.setTimestamp(2,new Timestamp(modified));
    ps.setInt(3,type);
    if (media != null) {
      if (media.getDuration() != null) {
        ps.setDouble(4,media.getDurationInSeconds());
      }
 else {
        ps.setNull(4,Types.DOUBLE);
      }
      int databaseBitrate=0;
      if (type != Format.IMAGE) {
        databaseBitrate=media.getBitrate();
        if (databaseBitrate == 0) {
          LOGGER.debug("String_Node_Str" + name);
        }
      }
      ps.setInt(5,databaseBitrate);
      ps.setInt(6,media.getWidth());
      ps.setInt(7,media.getHeight());
      ps.setLong(8,media.getSize());
      ps.setString(9,left(media.getCodecV(),SIZE_CODECV));
      ps.setString(10,left(media.getFrameRate(),SIZE_FRAMERATE));
      ps.setString(11,left(media.getAspectRatioDvdIso(),SIZE_ASPECTRATIO_DVDISO));
      ps.setString(12,left(media.getAspectRatioContainer(),SIZE_ASPECTRATIO_CONTAINER));
      ps.setString(13,left(media.getAspectRatioVideoTrack(),SIZE_ASPECTRATIO_VIDEOTRACK));
      ps.setByte(14,media.getReferenceFrameCount());
      ps.setString(15,left(media.getAvcLevel(),SIZE_AVC_LEVEL));
      ps.setInt(16,media.getBitsPerPixel());
      ps.setBytes(17,media.getThumb());
      ps.setString(18,left(media.getContainer(),SIZE_CONTAINER));
      if (media.getExtras() != null) {
        ps.setString(19,left(media.getExtrasAsString(),SIZE_MODEL));
      }
 else {
        ps.setString(19,left(media.getModel(),SIZE_MODEL));
      }
      ps.setInt(20,media.getExposure());
      ps.setInt(21,media.getOrientation());
      ps.setInt(22,media.getIso());
      ps.setString(23,left(media.getMuxingModeAudio(),SIZE_MUXINGMODE));
      ps.setString(24,left(media.getFrameRateMode(),SIZE_FRAMERATE_MODE));
      ps.setString(25,left(media.getStereoscopy(),SIZE_STEREOSCOPY));
      ps.setString(26,left(media.getMatrixCoefficients(),SIZE_MATRIX_COEFFICIENTS));
      ps.setBoolean(27,media.isEmbeddedFontExists());
      ps.setString(28,left(media.getFileTitleFromMetadata(),SIZE_TITLE));
      ps.setString(29,left(media.getVideoTrackTitleFromMetadata(),SIZE_TITLE));
    }
 else {
      ps.setString(4,null);
      ps.setInt(5,0);
      ps.setInt(6,0);
      ps.setInt(7,0);
      ps.setLong(8,0);
      ps.setString(9,null);
      ps.setString(10,null);
      ps.setString(11,null);
      ps.setString(12,null);
      ps.setString(13,null);
      ps.setByte(14,(byte)-1);
      ps.setString(15,null);
      ps.setInt(16,0);
      ps.setBytes(17,null);
      ps.setString(18,null);
      ps.setString(19,null);
      ps.setInt(20,0);
      ps.setInt(21,0);
      ps.setInt(22,0);
      ps.setString(23,null);
      ps.setString(24,null);
      ps.setString(25,null);
      ps.setString(26,null);
      ps.setBoolean(27,false);
      ps.setString(28,null);
      ps.setString(29,null);
    }
    ps.executeUpdate();
    int id;
    try (ResultSet rs=ps.getGeneratedKeys()){
      id=-1;
      while (rs.next()) {
        id=rs.getInt(1);
      }
    }
     if (media != null && id > -1) {
      PreparedStatement insert=null;
      if (media.getAudioTracksList().size() > 0) {
        insert=conn.prepareStatement("String_Node_Str");
        for (        DLNAMediaAudio audio : media.getAudioTracksList()) {
          insert.clearParameters();
          insert.setInt(1,id);
          insert.setInt(2,audio.getId());
          insert.setString(3,left(audio.getLang(),SIZE_LANG));
          insert.setString(4,left(audio.getAudioTrackTitleFromMetadata(),SIZE_TITLE));
          insert.setInt(5,audio.getAudioProperties().getNumberOfChannels());
          insert.setString(6,left(audio.getSampleFrequency(),SIZE_SAMPLEFREQ));
          insert.setString(7,left(audio.getCodecA(),SIZE_CODECA));
          insert.setInt(8,audio.getBitsperSample());
          insert.setString(9,left(trimToEmpty(audio.getAlbum()),SIZE_ALBUM));
          insert.setString(10,left(trimToEmpty(audio.getArtist()),SIZE_ARTIST));
          insert.setString(11,left(trimToEmpty(audio.getSongname()),SIZE_SONGNAME));
          insert.setString(12,left(trimToEmpty(audio.getGenre()),SIZE_GENRE));
          insert.setInt(13,audio.getYear());
          insert.setInt(14,audio.getTrack());
          insert.setInt(15,audio.getAudioProperties().getAudioDelay());
          insert.setString(16,left(trimToEmpty(audio.getMuxingModeAudio()),SIZE_MUXINGMODE));
          insert.setInt(17,audio.getBitRate());
          try {
            insert.executeUpdate();
          }
 catch (          SQLException e) {
            if (e.getErrorCode() == 23505) {
              LOGGER.debug("String_Node_Str" + name);
            }
 else {
              LOGGER.debug("String_Node_Str" + name);
            }
            LOGGER.debug("String_Node_Str" + e);
          }
        }
      }
      if (media.getSubtitleTracksList().size() > 0) {
        insert=conn.prepareStatement("String_Node_Str");
        for (        DLNAMediaSubtitle sub : media.getSubtitleTracksList()) {
          if (sub.getExternalFile() == null) {
            insert.clearParameters();
            insert.setInt(1,id);
            insert.setInt(2,sub.getId());
            insert.setString(3,left(sub.getLang(),SIZE_LANG));
            insert.setString(4,left(sub.getSubtitlesTrackTitleFromMetadata(),SIZE_TITLE));
            insert.setInt(5,sub.getType().getStableIndex());
            try {
              insert.executeUpdate();
            }
 catch (            SQLException e) {
              if (e.getErrorCode() == 23505) {
                LOGGER.debug("String_Node_Str" + name);
              }
 else {
                LOGGER.debug("String_Node_Str" + name);
              }
              LOGGER.debug("String_Node_Str" + e);
            }
          }
        }
      }
      close(insert);
    }
  }
 catch (  SQLException se) {
    if (se.getErrorCode() == 23505) {
      LOGGER.debug("String_Node_Str" + name + "String_Node_Str"+ se.getMessage());
    }
 else {
      LOGGER.error(null,se);
    }
  }
 finally {
    close(ps);
    close(conn);
  }
}

Fixed version (ground truth):
public synchronized void insertData(String name,long modified,int type,DLNAMediaInfo media){
  Connection conn=null;
  PreparedStatement ps=null;
  try {
    conn=getConnection();
    ps=conn.prepareStatement("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    ps.setString(1,name);
    ps.setTimestamp(2,new Timestamp(modified));
    ps.setInt(3,type);
    if (media != null) {
      if (media.getDuration() != null) {
        ps.setDouble(4,media.getDurationInSeconds());
      }
 else {
        ps.setNull(4,Types.DOUBLE);
      }
      int databaseBitrate=0;
      if (type != Format.IMAGE) {
        databaseBitrate=media.getBitrate();
        if (databaseBitrate == 0) {
          LOGGER.debug("String_Node_Str" + name);
        }
      }
      ps.setInt(5,databaseBitrate);
      ps.setInt(6,media.getWidth());
      ps.setInt(7,media.getHeight());
      ps.setLong(8,media.getSize());
      ps.setString(9,left(media.getCodecV(),SIZE_CODECV));
      ps.setString(10,left(media.getFrameRate(),SIZE_FRAMERATE));
      ps.setString(11,left(media.getAspectRatioDvdIso(),SIZE_ASPECTRATIO_DVDISO));
      ps.setString(12,left(media.getAspectRatioContainer(),SIZE_ASPECTRATIO_CONTAINER));
      ps.setString(13,left(media.getAspectRatioVideoTrack(),SIZE_ASPECTRATIO_VIDEOTRACK));
      ps.setByte(14,media.getReferenceFrameCount());
      ps.setString(15,left(media.getAvcLevel(),SIZE_AVC_LEVEL));
      ps.setInt(16,media.getBitsPerPixel());
      ps.setBytes(17,media.getThumb());
      ps.setString(18,left(media.getContainer(),SIZE_CONTAINER));
      if (media.getExtras() != null) {
        ps.setString(19,left(media.getExtrasAsString(),SIZE_MODEL));
      }
 else {
        ps.setString(19,left(media.getModel(),SIZE_MODEL));
      }
      ps.setInt(20,media.getExposure());
      ps.setInt(21,media.getOrientation());
      ps.setInt(22,media.getIso());
      ps.setString(23,left(media.getMuxingModeAudio(),SIZE_MUXINGMODE));
      ps.setString(24,left(media.getFrameRateMode(),SIZE_FRAMERATE_MODE));
      ps.setString(25,left(media.getStereoscopy(),SIZE_STEREOSCOPY));
      ps.setString(26,left(media.getMatrixCoefficients(),SIZE_MATRIX_COEFFICIENTS));
      ps.setBoolean(27,media.isEmbeddedFontExists());
      ps.setString(28,left(media.getFileTitleFromMetadata(),SIZE_TITLE));
      ps.setString(29,left(media.getVideoTrackTitleFromMetadata(),SIZE_TITLE));
      ps.setInt(30,media.getVideoTrackCount());
      ps.setInt(31,media.getImageCount());
    }
 else {
      ps.setString(4,null);
      ps.setInt(5,0);
      ps.setInt(6,0);
      ps.setInt(7,0);
      ps.setLong(8,0);
      ps.setString(9,null);
      ps.setString(10,null);
      ps.setString(11,null);
      ps.setString(12,null);
      ps.setString(13,null);
      ps.setByte(14,(byte)-1);
      ps.setString(15,null);
      ps.setInt(16,0);
      ps.setBytes(17,null);
      ps.setString(18,null);
      ps.setString(19,null);
      ps.setInt(20,0);
      ps.setInt(21,0);
      ps.setInt(22,0);
      ps.setString(23,null);
      ps.setString(24,null);
      ps.setString(25,null);
      ps.setString(26,null);
      ps.setBoolean(27,false);
      ps.setString(28,null);
      ps.setString(29,null);
      ps.setInt(30,0);
      ps.setInt(31,0);
    }
    ps.executeUpdate();
    int id;
    try (ResultSet rs=ps.getGeneratedKeys()){
      id=-1;
      while (rs.next()) {
        id=rs.getInt(1);
      }
    }
     if (media != null && id > -1) {
      PreparedStatement insert=null;
      if (media.getAudioTracksList().size() > 0) {
        insert=conn.prepareStatement("String_Node_Str");
        for (        DLNAMediaAudio audio : media.getAudioTracksList()) {
          insert.clearParameters();
          insert.setInt(1,id);
          insert.setInt(2,audio.getId());
          insert.setString(3,left(audio.getLang(),SIZE_LANG));
          insert.setString(4,left(audio.getAudioTrackTitleFromMetadata(),SIZE_TITLE));
          insert.setInt(5,audio.getAudioProperties().getNumberOfChannels());
          insert.setString(6,left(audio.getSampleFrequency(),SIZE_SAMPLEFREQ));
          insert.setString(7,left(audio.getCodecA(),SIZE_CODECA));
          insert.setInt(8,audio.getBitsperSample());
          insert.setString(9,left(trimToEmpty(audio.getAlbum()),SIZE_ALBUM));
          insert.setString(10,left(trimToEmpty(audio.getArtist()),SIZE_ARTIST));
          insert.setString(11,left(trimToEmpty(audio.getSongname()),SIZE_SONGNAME));
          insert.setString(12,left(trimToEmpty(audio.getGenre()),SIZE_GENRE));
          insert.setInt(13,audio.getYear());
          insert.setInt(14,audio.getTrack());
          insert.setInt(15,audio.getAudioProperties().getAudioDelay());
          insert.setString(16,left(trimToEmpty(audio.getMuxingModeAudio()),SIZE_MUXINGMODE));
          insert.setInt(17,audio.getBitRate());
          try {
            insert.executeUpdate();
          }
 catch (          SQLException e) {
            if (e.getErrorCode() == 23505) {
              LOGGER.debug("String_Node_Str" + name);
            }
 else {
              LOGGER.debug("String_Node_Str" + name);
            }
            LOGGER.debug("String_Node_Str" + e);
          }
        }
      }
      if (media.getSubtitleTracksList().size() > 0) {
        insert=conn.prepareStatement("String_Node_Str");
        for (        DLNAMediaSubtitle sub : media.getSubtitleTracksList()) {
          if (sub.getExternalFile() == null) {
            insert.clearParameters();
            insert.setInt(1,id);
            insert.setInt(2,sub.getId());
            insert.setString(3,left(sub.getLang(),SIZE_LANG));
            insert.setString(4,left(sub.getSubtitlesTrackTitleFromMetadata(),SIZE_TITLE));
            insert.setInt(5,sub.getType().getStableIndex());
            try {
              insert.executeUpdate();
            }
 catch (            SQLException e) {
              if (e.getErrorCode() == 23505) {
                LOGGER.debug("String_Node_Str" + name);
              }
 else {
                LOGGER.debug("String_Node_Str" + name);
              }
              LOGGER.debug("String_Node_Str" + e);
            }
          }
        }
      }
      close(insert);
    }
  }
 catch (  SQLException se) {
    if (se.getErrorCode() == 23505) {
      LOGGER.debug("String_Node_Str" + name + "String_Node_Str"+ se.getMessage());
    }
 else {
      LOGGER.error(null,se);
    }
  }
 finally {
    close(ps);
    close(conn);
  }
}