7.2 Проблемы с hotdeploy в среде Windows

Добрый день.

Не знаю происходит ли только из-за увеличения длины путей conf\ROOT-coredeploy\app_home\ROOT-core\conf

idea.log
2020-01-27 14:16:15,821 [11333679]   WARN - intellij.hotdeploy.HotDeployer - What is this? 
java.io.IOException: Cannot run program "C:/Program Files/AdoptOpenJDK/jdk-8.0.232.09-hotspot/bin/javac": CreateProcess error=206, »м¤ файла или его расширение имеет слишком большую длину
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
	at com.haulmont.studio.intellij.hotdeploy.compile.JavaCubaHotDeployCompiler.compile(JavaCubaHotDeployCompiler.kt:30)
	at com.haulmont.studio.intellij.hotdeploy.compile.HotDeployCompilerService.compileModuleFiles(HotDeployCompilerService.kt:82)
	at com.haulmont.studio.intellij.hotdeploy.compile.HotDeployCompilerService.compile$studio_intellij(HotDeployCompilerService.kt:50)
	at com.haulmont.studio.intellij.hotdeploy.HotDeployCollector.collect(HotDeployCollector.kt:73)
	at com.haulmont.studio.intellij.hotdeploy.HotDeployer$CollectHotDeployFilesTask.computeInReadAction(HotDeployer.java:285)
	at com.intellij.openapi.progress.util.ReadTask.performInReadAction(ReadTask.java:49)
	at com.intellij.openapi.progress.util.ReadTask.lambda$runBackgroundProcess$0(ReadTask.java:66)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:825)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69)
	at com.intellij.openapi.progress.util.ReadTask.runBackgroundProcess(ReadTask.java:66)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runUnderProgress$4(ProgressIndicatorUtils.java:232)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$3(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runUnderProgress(ProgressIndicatorUtils.java:230)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.access$100(ProgressIndicatorUtils.java:36)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils$4.run(ProgressIndicatorUtils.java:181)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: CreateProcess error=206, »м¤ файла или его расширение имеет слишком большую длину
	at java.base/java.lang.ProcessImpl.create(Native Method)
	at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:478)
	at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:154)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
	... 25 more

Добрый день! Спасибо за отзыв, завел тикет в баг трекере.

1 симпатия

Доброго дня.
Напишу тут-же:
Платформа - 7.2.0.BETA2, студия - 13.0.BETA3-191
Хотдеплой неожиданно заработал в среде Windows. Не знаю правили ли в этом отношении что-то…
Но спустя некоторое время вдруг отвалился:

Ошибка
Hot deploy compilation errors:
C:\Users\sergeyev_ms\.gradle\caches\modules-2\files-2.1\com.vaadin\vaadin-server\8.9.2-2-cuba\6cc3661aae5bd670287537f36cf76dc69594922d\vaadin-server-8.9.2-2-cuba.jar(/com/vaadin/server/VaadinRequest.java):29: error: package javax.portlet does not exist
import javax.portlet.ClientDataRequest;
                    ^
C:\Users\sergeyev_ms\.gradle\caches\modules-2\files-2.1\com.vaadin\vaadin-server\8.9.2-2-cuba\6cc3661aae5bd670287537f36cf76dc69594922d\vaadin-server-8.9.2-2-cuba.jar(/com/vaadin/server/VaadinRequest.java):30: error: package javax.portlet does not exist
import javax.portlet.PortletRequest;
                    ^
C:\Users\sergeyev_ms\.gradle\caches\modules-2\files-2.1\com.vaadin\vaadin-server\8.9.2-2-cuba\6cc3661aae5bd670287537f36cf76dc69594922d\vaadin-server-8.9.2-2-cuba.jar(/com/vaadin/server/WrappedSession.java):22: error: package javax.portlet does not exist
import javax.portlet.PortletSession;
                    ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\sergeyev_ms\.gradle\caches\modules-2\files-2.1\com.vaadin\vaadin-server\8.9.2-2-cuba\6cc3661aae5bd670287537f36cf76dc69594922d\vaadin-server-8.9.2-2-cuba.jar(/com/vaadin/server/AbstractClientConnector.java) uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 errors

Добрый день! Можете включить дебаг логи Help -> Debug Log Settings -> Добавить строку #com.haulmont.studio -> OK. После этого воспроизвети проблему и приложить idea.log

Держите.
idea.log_.txt (88.9 КБ)

Можете теперь приложить PartBrowse.java?

Конечно, тут вообще ничего криминального…

package com.borets.circles.web.screens.part;

import com.borets.circles.config.IntegrationConfig;
import com.borets.circles.entity.Part;
import com.haulmont.cuba.gui.components.Button;
import com.haulmont.cuba.gui.model.CollectionContainer;
import com.haulmont.cuba.gui.screen.*;
import com.haulmont.cuba.web.AppUI;

import javax.inject.Inject;

@UiController("circles_Part.browse")
@UiDescriptor("part-browse.xml")
@LookupComponent("partsTable")
@LoadDataBeforeShow
public class PartBrowse extends StandardLookup<Part> {
    @Inject
    private IntegrationConfig integrationConfig;
    @Inject
    private CollectionContainer<Part> partsDc;

    @Subscribe("openUrlBtn")
    public void onOpenUrlBtnClick(Button.ClickEvent event) {
        final String url = String.format(integrationConfig.getWindchillPartUrlTemplate(), partsDc.getItem().getWtPartNumber());
        AppUI.getCurrent().getWebBrowserTools().showWebPage(url, null);
    }
}

Извиняюсь, я тут рефакторинг с этим проектом делал (переименовывал). Вот плюсом новые логи, чтобы недопонимания не возникло.
idea.log (99.8 КБ)

1 симпатия

Хочу обратить внимание, что также происходит ошибка и при хотдеплое вновь созданного сервиса:

Hot deploy compilation errors:
C:\Users\sergeyev_ms\studio-projects\circles\modules\core\src\com\borets\circles\service\PartImportServiceBean.java:6: error: cannot find symbol
public class PartImportServiceBean implements PartImportService {
                                              ^
  symbol: class PartImportService
C:\Users\sergeyev_ms\studio-projects\circles\modules\core\src\com\borets\circles\service\PartImportServiceBean.java:5: error: cannot find symbol
@Service(PartImportService.NAME)
         ^
  symbol: variable PartImportService
2 errors

Это ожидаемое поведение. Хотдеплой не деплоит классы из global модуля, к которым относится интерфейс вновь созданного сервиса.

Мне известно, что о невозможности деплоя из глобал модуля. Немного не понятно зачем студия пытается это сделать и уж тем более вываливает ошибку в консоль.

Александр, студия и платформа смотрю зареризились, но проблема осталась…

Можете приложить логи из нового релиза?

Проявляется по своему усмотрению. Добавлю лог с дебагом как только проявится…

Держите пока другую - добавляем кириллическую букву И в комментарии класса и получаем:

Hot deploy compilation errors:
C:\Users\sergeyev_ms\studio-projects\npd\modules\web\src\com\borets\npd\web\screens\costplan\CostPlanEdit.java:203: error: unmappable character (0x98) for encoding windows-1251
        //а�?
             ^
1 error

idea.log (384.0 КБ)

1 симпатия

Поменяйте кодировку файла на UTF-8.

Если верить идее, то она UTF-8:
image

В этом отношении мной ничего не изменялось… Классы создаются из идеи/куба-студии.