Skip to content

Cannot Generate SQL File from DAO Located in a Source Directory Created via Gradle Source Set #291

@xterao

Description

@xterao

Describe the bug
When attempting to generate an SQL file from a DAO method located in a source directory created via a Gradle source set configuration, a quick-fix action results in an IOException.

After restarting the IDE, SQL file generation and navigation between files work correctly without any issues.

Stack Trace:

2025-07-01 09:43:48,698 [83358483] SEVERE - #c.i.o.u.ObjectTree - java.io.IOException: Invalid file name: 'D:'
com.intellij.util.IncorrectOperationException: java.io.IOException: Invalid file name: 'D:'
	at org.domaframework.doma.intellij.common.psi.PsiDaoMethod.generateSqlFile$lambda$8$lambda$7(PsiDaoMethod.kt:189)
	at com.intellij.openapi.command.WriteCommandAction.lambda$runWriteCommandAction$4(WriteCommandAction.java:341)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:147)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction$lambda$5(AnyThreadWriteThreadingSupport.kt:379)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:389)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:379)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:896)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:145)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:217)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:188)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:154)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:121)
	at com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction(WriteCommandAction.java:341)
	at com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction(WriteCommandAction.java:329)
	at org.domaframework.doma.intellij.common.psi.PsiDaoMethod.generateSqlFile$lambda$8(PsiDaoMethod.kt:185)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction$lambda$3(AnyThreadWriteThreadingSupport.kt:258)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:272)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:258)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:853)
	at org.domaframework.doma.intellij.common.psi.PsiDaoMethod.generateSqlFile(PsiDaoMethod.kt:174)
	at org.domaframework.doma.intellij.inspection.dao.quickfix.GenerateSqlQuickFix.applyFix(GenerateSqlQuickFix.kt:40)
	at org.domaframework.doma.intellij.inspection.dao.quickfix.GenerateSqlQuickFix.applyFix(GenerateSqlQuickFix.kt:28)

To Reproduce

  1. A source directory is created using a Gradle source set (e.g., src/custom/java).
  2. A DAO is placed within this directory.
  3. Running the quick-fix to generate an SQL file from a DAO method causes the IDE to fail with an I/O error due to malformed path construction.

Expected behavior
The relative path should be correctly resolved even when the source directory is defined via a Gradle source set, and SQL file generation should complete without error.

Screenshots
Image

Desktop :

  • IDEA Version [2024.1.7]
  • Doma Tools Version [1.1.0]

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions