jglapa opened a new issue, #15330:
URL: https://github.com/apache/grails-core/issues/15330

   ### Expected Behavior
   
   after setting `grails.serverURL = 'http://localhost:8080'`
   
   ```
   class MakeLinkController {
   
       LinkGenerator grailsLinkGenerator
   
       def index() {
   
           String link
           Thread.start {
               try {
                   link = grailsLinkGenerator.link(
                           absolute: true,
                           controller: 'MakeLink',
                           action: 'index',
                           id: 1
                   )
               } catch (Exception e) {
                   e.printStackTrace()
               }
           }
   
   
           String link2 = grailsLinkGenerator.link(
                   absolute: true,
                   controller: 'MakeLink',
                   action: 'index',
                   id: 1
           )
   
           render link + link2
       }
   }
   ```
   action result:
   
   
`http://localhost:8080/makeLink/index/1http://localhost:8080/makeLink/index/1`
   
   
   ```
   
   java.lang.IllegalStateException: Attribute absolute='true' specified but no 
grails.serverURL set in Config
           at 
org.grails.web.mapping.DefaultLinkGenerator.handleAbsolute(DefaultLinkGenerator.groovy:407)
           at 
org.grails.web.mapping.DefaultLinkGenerator.link(DefaultLinkGenerator.groovy:281)
           at 
org.grails.web.mapping.DefaultLinkGenerator.link(DefaultLinkGenerator.groovy)
           at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
           at 
grails7.absolute.link.issue.MakeLinkController$_index_closure1.doCall(MakeLinkController.groovy:14)
           at 
grails7.absolute.link.issue.MakeLinkController$_index_closure1.doCall(MakeLinkController.groovy)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
           at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.base/java.lang.reflect.Method.invoke(Method.java:569)
           at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
           at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:280)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
           at groovy.lang.Closure.call(Closure.java:433)
           at groovy.lang.Closure.call(Closure.java:412)
           at groovy.lang.Closure.run(Closure.java:505)
           at java.base/java.lang.Thread.run(Thread.java:840)
   
   ```
   
   ### Actual Behaviour
   
   action result:
   
   `nullhttp://localhost:8080/makeLink/index/1`
   
   
   ```
   
   java.lang.IllegalStateException: Attribute absolute='true' specified but no 
grails.serverURL set in Config
           at 
org.grails.web.mapping.DefaultLinkGenerator.handleAbsolute(DefaultLinkGenerator.groovy:407)
           at 
org.grails.web.mapping.DefaultLinkGenerator.link(DefaultLinkGenerator.groovy:281)
           at 
org.grails.web.mapping.DefaultLinkGenerator.link(DefaultLinkGenerator.groovy)
           at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
           at 
grails7.absolute.link.issue.MakeLinkController$_index_closure1.doCall(MakeLinkController.groovy:14)
           at 
grails7.absolute.link.issue.MakeLinkController$_index_closure1.doCall(MakeLinkController.groovy)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
           at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.base/java.lang.reflect.Method.invoke(Method.java:569)
           at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
           at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:280)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
           at groovy.lang.Closure.call(Closure.java:433)
           at groovy.lang.Closure.call(Closure.java:412)
           at groovy.lang.Closure.run(Closure.java:505)
           at java.base/java.lang.Thread.run(Thread.java:840)
   
   ```
   
   ### Steps To Reproduce
   
   1. set `grails.serverURL`
   2. generate a link outside web context (e.g. quartz job or a new thread)
   
   ### Environment Information
   
   _No response_
   
   ### Example Application
   
   https://github.com/jglapa/grails7-absolute-link-issue
   
   ### Version
   
   7.0.5


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to