убедитесь, что вы закрыли все свои утверждения и результирующие наборы перед запуском rs.next. Finaly гарантирует это
public boolean flowExists( Integer idStatusPrevious, Integer idStatus, Connection connection ) {
LogUtil.logRequestMethod();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = connection.prepareStatement( Constants.SCRIPT_SELECT_FIND_FLOW_STATUS_BY_STATUS );
ps.setInt( 1, idStatusPrevious );
ps.setInt( 2, idStatus );
rs = ps.executeQuery();
Long count = 0L;
if ( rs != null ) {
while ( rs.next() ) {
count = rs.getLong( 1 );
break;
}
}
LogUtil.logSuccessMethod();
return count > 0L;
} catch ( Exception e ) {
String errorMsg = String
.format( Constants.ERROR_FINALIZED_METHOD, ( e.getMessage() != null ? e.getMessage() : "" ) );
LogUtil.logError( errorMsg, e );
throw new FatalException( errorMsg );
} finally {
rs.close();
ps.close();
}
<Property Id="WixQuietExecCmdLine" Value='"[INSTALLFOLDER]Lifen.exe" --new-version'/>
[INSTALLFOLDER]
, поскольку среда выполнения MSI гарантирует, что значения всех свойств установочной папки заканчиваются обратной косой чертой. То же самое для аргументов, вам нужно процитировать, если они могут содержать пробелы . Если у вас есть постоянный аргумент, такой как --new-version
, где вы точно знаете, что пробелов нет, вам не нужно заключать в кавычки. Для аргументов, которые содержат ссылки на свойства, безопаснее всегда заключать в кавычки. E. g.:
<Property Id="WixQuietExecCmdLine" Value='"[INSTALLFOLDER]Lifen.exe" "--new-version=[NEWVERSION]"'/>
Если вы сомневаетесь, загляните в подробный журнал , чтобы увидеть, является ли фактическое значение WixQuietExecCmdLine
что вы ожидаете Активируйте подробное ведение журнала, позвонив по номеру msiexec -l*v logfile.txt <OtherParameters>
.
Чтобы запустить 64-битные исполняемые файлы, используйте взамен настраиваемое действие WixQuietExec64
и свойство WixQuietExec64CmdLine
.