Gradle p4java java.net.sockettimeoutexception: читать времяJAVA

Программисты JAVA общаются здесь
Anonymous
Gradle p4java java.net.sockettimeoutexception: читать время

Сообщение Anonymous »

Я использую библиотеку p4java в моем файле build.gradle для синхронизации большого zip -файла (> 200 МБ), находящегося в репозитории удаленного Perforce, но я сталкиваюсь с «java.net.sockettimeoutexception: считываемой погрешности» либо во время процесса синхронизации, либо (в основном) во время удаления временного клиента, созданного для операции Sync. Я имею в виду http://razgulyaev.blogspot.in/2011/08/p ... mpary.html для работы с временными клиентами, используя P4Java API. http://answers.perforce.com/articles/kb/8044, а также введя сон, но оба подхода не решили проблему. Последующее исследование сервера для проверки подключения с помощью getServerInfo () Прямо перед выполнением синхронизации или удаления операций приводит к успешной проверке подключения. Может ли кто -нибудь указать мне, где я должен искать ответы? < /p>

Спасибо. < /p>

Предоставление фрагмента кода: < /p>

void perforceSync(String srcPath, String destPath, String server) {

// Generating the file(s) to sync-up
String[] pathUnderDepot = [
srcPath + "*"
]

// Increasing timeout from default 30 sec to 60 sec
Properties defaultProps = new Properties()
defaultProps.put(PropertyDefs.PROG_NAME_KEY, "CustomBuildApp")
defaultProps.put(PropertyDefs.PROG_VERSION_KEY, "tv_1.0")
defaultProps.put(RpcPropertyDefs.RPC_SOCKET_SO_TIMEOUT_NICK, "60000")

// Instantiating the server
IOptionsServer p4Server = ServerFactory.getOptionsServer("p4java://" + server, defaultProps)
p4Server.connect()

// Authorizing
p4Server.setUserName("perforceUserName")
p4Server.login("perforcePassword")

// Just check if connected successfully
IServerInfo serverInfo = p4Server.getServerInfo()
println 'Server info: ' + serverInfo.getServerLicense()

// Creating new client
IClient tempClient = new Client()

// Setting up the name and the root folder
tempClient.setName("tempClient" + UUID.randomUUID().toString().replace("-", ""))
tempClient.setRoot(destPath)
tempClient.setServer(p4Server)

// Setting the client as the current one for the server
p4Server.setCurrentClient(tempClient)

// Creating Client View entry
ClientViewMapping tempMappingEntry = new ClientViewMapping()

// Setting up the mapping properties
tempMappingEntry.setLeft(srcPath + "...")
tempMappingEntry.setRight("//" + tempClient.getName() + "/...")
tempMappingEntry.setType(EntryType.INCLUDE)

// Creating Client view
ClientView tempClientView = new ClientView()

// Attaching client view entry to client view
tempClientView.addEntry(tempMappingEntry)
tempClient.setClientView(tempClientView)

// Registering the new client on the server
println p4Server.createClient(tempClient)

// Surrounding the underlying block with try as we want some action
// (namely client removing) to be performed in any way
try {

// Forming the FileSpec collection to be synced-up
List fileSpecsSet = FileSpecBuilder.makeFileSpecList(pathUnderDepot)

// Syncing up the client
println "Syncing..."
tempClient.sync(FileSpecBuilder.getValidFileSpecs(fileSpecsSet), true, false, false, false)
}
catch (Exception e) {
println "Sync failed. Trying again..."
sleep(60 * 1000)
tempClient.sync(FileSpecBuilder.getValidFileSpecs(fileSpecsSet), true, false, false, false)
}
finally {
println "Done syncing."

try {
p4Server.connect()

IServerInfo serverInfo2 = p4Server.getServerInfo()
println '\nServer info: ' + serverInfo2.getServerLicense()

// Removing the temporary client from the server
println p4Server.deleteClient(tempClient.getName(), false)
}
catch(Exception e) {
println 'Ignoring exception caught while deleting tempClient!'

/*sleep(60 * 1000)
p4Server.connect()

IServerInfo serverInfo3 = p4Server.getServerInfo()
println '\nServer info: ' + serverInfo3.getServerLicense()

sleep(60 * 1000)
println p4Server.deleteClient(tempClient.getName(), false)*/
}
}
}
< /code>

Одна необычная вещь, которую я наблюдал при удалении TempClient, на самом деле удалял клиента, но все еще бросал «java.net.sockettimeoutexception: прочитать время>

Подробнее здесь: https://stackoverflow.com/questions/314 ... -timed-out

Вернуться в «JAVA»