You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/01/28 20:34:19 UTC

[jspwiki] 18/32: JSPWIKI-1127: propagate changes on java code

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit 74e04345f5dcb5c1e8b61828848d53f11c47af7a
Author: juanpablo <ju...@apache.org>
AuthorDate: Wed Jan 22 23:22:32 2020 +0100

    JSPWIKI-1127: propagate changes on java code
---
 .../apache/wiki/attachment/AttachmentServlet.java  |   4 +-
 .../org/apache/wiki/auth/AuthorizationManager.java |   2 +-
 .../apache/wiki/filters/PingWeblogsComFilter.java  |  82 +++---
 .../main/java/org/apache/wiki/plugin/Groups.java   |  40 ++-
 .../main/java/org/apache/wiki/rss/AtomFeed.java    |   5 +-
 .../main/java/org/apache/wiki/rss/RSS10Feed.java   |  10 +-
 .../main/java/org/apache/wiki/rss/RSS20Feed.java   |   2 +-
 .../java/org/apache/wiki/rss/RSSGenerator.java     |  16 +-
 .../org/apache/wiki/tags/FeedDiscoveryTag.java     |  37 +--
 .../main/java/org/apache/wiki/tags/LinkTag.java    | 310 ++++++++-------------
 .../wiki/tasks/auth/SaveUserProfileTask.java       |   2 +-
 .../java/org/apache/wiki/ui/CommandResolver.java   |   3 +-
 .../org/apache/wiki/xmlrpc/MetaWeblogHandler.java  |   4 +-
 .../org/apache/wiki/search/SearchManagerTest.java  |   2 +-
 14 files changed, 201 insertions(+), 318 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
index 2bb0053..53c6b7f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
@@ -275,7 +275,7 @@ public class AttachmentServlet extends HttpServlet {
                     res.sendRedirect(
                         validateNextPage(
                             TextUtil.urlEncodeUTF8(nextPage),
-                            m_engine.getURL( WikiContext.ERROR, "", null, false )
+                            m_engine.getURL( WikiContext.ERROR, "", null )
                         )
                     );
                 }
@@ -420,7 +420,7 @@ public class AttachmentServlet extends HttpServlet {
     protected String upload( final HttpServletRequest req ) throws RedirectException, IOException {
         String msg     = "";
         final String attName = "(unknown)";
-        final String errorPage = m_engine.getURL( WikiContext.ERROR, "", null, false ); // If something bad happened, Upload should be able to take care of most stuff
+        final String errorPage = m_engine.getURL( WikiContext.ERROR, "", null ); // If something bad happened, Upload should be able to take care of most stuff
         String nextPage = errorPage;
         final String progressId = req.getParameter( "progressid" );
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
index 040046d..f7fb9c4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
@@ -432,7 +432,7 @@ public class AuthorizationManager {
                 log.info("User "+currentUser.getName()+" has no access - redirecting (permission=" + context.requiredPermission() + ")");
                 context.getWikiSession().addMessage( MessageFormat.format( rb.getString("security.error.noaccess"), context.getName() ) );
             }
-            response.sendRedirect( m_engine.getURL(WikiContext.LOGIN, pageurl, null, false ) );
+            response.sendRedirect( m_engine.getURL(WikiContext.LOGIN, pageurl, null ) );
         }
         return allowed;
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
index 8cbe7bf..f2a139a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
@@ -18,12 +18,6 @@
  */
 package org.apache.wiki.filters;
 
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Hashtable;
-import java.util.Properties;
-import java.util.Vector;
-
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
@@ -31,17 +25,21 @@ import org.apache.wiki.api.filters.BasicPageFilter;
 import org.apache.xmlrpc.AsyncCallback;
 import org.apache.xmlrpc.XmlRpcClient;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Hashtable;
+import java.util.Properties;
+import java.util.Vector;
+
 /**
- *  A very dumb class that pings weblogs.com on each save.  INTERNAL USE ONLY SO FAR!
- *  Look, but don't use as-is.
+ *  A very dumb class that pings weblogs.com on each save.  INTERNAL USE ONLY SO FAR! Look, but don't use as-is.
  */
 // FIXME: Needs to figure out when only weblogs have been saved.
 // FIXME: rpc endpoint must be configurable
 // FIXME: Should really be settable per-page.
 // FIXME: Weblog name has been set to stone
-public class PingWeblogsComFilter
-    extends BasicPageFilter
-{
+public class PingWeblogsComFilter extends BasicPageFilter {
+
     private static final Logger log = Logger.getLogger( PingWeblogsComFilter.class );
 
     private String m_pingURL;
@@ -54,64 +52,52 @@ public class PingWeblogsComFilter
     /**
      *  {@inheritDoc}
      */
-    public void initialize( WikiEngine engine, Properties props )
-    {
+    public void initialize( final WikiEngine engine, final Properties props ) {
         m_pingURL = props.getProperty( PROP_PINGURL, "http://rpc.weblogs.com/RPC2" );
     }
 
     /**
      *  {@inheritDoc}
      */
-    public void postSave( WikiContext context, String pagecontent )
-    {
-        String     blogName = context.getPage().getName();
-        WikiEngine engine   = context.getEngine();
-
-        int blogentryTxt = blogName.indexOf("_blogentry_");
-        if( blogentryTxt == -1 )
-        {
+    public void postSave( final WikiContext context, final String pagecontent ) {
+        String blogName = context.getPage().getName();
+        final WikiEngine engine   = context.getEngine();
+
+        final int blogentryTxt = blogName.indexOf("_blogentry_");
+        if( blogentryTxt == -1 ) {
             return; // This is not a weblog entry.
         }
         
         blogName = blogName.substring( 0, blogentryTxt );
 
-        if( blogName.equals( engine.getFrontPage() ) )
-        {
+        if( blogName.equals( engine.getFrontPage() ) ) {
             blogName = null;
         }
 
-        try
-        {
-            XmlRpcClient xmlrpc = new XmlRpcClient(m_pingURL);
-            Vector<String> params = new Vector<String>();
+        try {
+            final XmlRpcClient xmlrpc = new XmlRpcClient(m_pingURL);
+            final Vector< String > params = new Vector<>();
             params.addElement( "The Butt Ugly Weblog" ); // FIXME: Must be settable
-            params.addElement( engine.getURL( WikiContext.VIEW, blogName, null, true ) );
+            params.addElement( engine.getURL( WikiContext.VIEW, blogName, null ) );
 
-            if( log.isDebugEnabled() )
-                log.debug("Pinging weblogs.com with URL: "+engine.getURL( WikiContext.VIEW, blogName, null, true ));
+            if( log.isDebugEnabled() ) {
+                log.debug( "Pinging weblogs.com with URL: " + engine.getURL( WikiContext.VIEW, blogName, null ) );
+            }
 
             xmlrpc.executeAsync("weblogUpdates.ping", params, 
-                                new AsyncCallback() 
-                                {
-                                    public void handleError( Exception ex,
-                                                             URL url,
-                                                             String method )
-                                    {
-                                        log.error("Unable to execute weblogs.com ping to URL: "+url.toString(),ex);
+                                new AsyncCallback() {
+                                    public void handleError( final Exception ex, final URL url, final String method ) {
+                                        log.error( "Unable to execute weblogs.com ping to URL: " + url.toString(), ex );
                                     }
 
-                                    public void handleResult( Object result,
-                                                              URL url,
-                                                              String method )
-                                    {
+                                    public void handleResult( final Object result, final URL url, final String method ) {
                                         @SuppressWarnings("unchecked")
-                                        Hashtable< String, Object > res = (Hashtable < String, Object > ) result;
+                                        final Hashtable< String, Object > res = (Hashtable < String, Object > ) result;
 
-                                        Boolean flerror = (Boolean)res.get("flerror");
-                                        String  msg     = (String)res.get("message");
+                                        final Boolean flerror = (Boolean)res.get("flerror");
+                                        final String  msg     = (String)res.get("message");
 
-                                        if( flerror.booleanValue() )
-                                        {
+                                        if( flerror ) {
                                             log.error("Failed to ping: "+msg);
                                         }
 
@@ -119,9 +105,7 @@ public class PingWeblogsComFilter
                                     }
                                 }
                                 );
-        }
-        catch( MalformedURLException e )
-        {
+        } catch( final MalformedURLException e ) {
             log.error("Malformed URL",e);
         }
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
index fa6bfa6..5a77dfc 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
@@ -18,11 +18,6 @@
  */
 package org.apache.wiki.plugin;
 
-import java.security.Principal;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Map;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.api.exceptions.PluginException;
@@ -30,41 +25,41 @@ import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.auth.PrincipalComparator;
 import org.apache.wiki.auth.authorize.GroupManager;
 
+import java.security.Principal;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Map;
+
 /**
  *  <p>Prints the groups managed by this wiki, separated by commas.
  *  <br>The groups are sorted in ascending order, and are hyperlinked to the page that displays the group's members.
  *  </p>
  *  <p>Parameters : </p>
  *  NONE
- *  
- *  
+ *
  *  @since 2.4.19
  */
-public class Groups
-    implements WikiPlugin
-{
+public class Groups implements WikiPlugin {
+
     private static final Comparator<Principal> COMPARATOR = new PrincipalComparator();
     
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext context, Map<String, String> params )
-        throws PluginException
-    {
+    public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
         // Retrieve groups, and sort by name
-        WikiEngine engine = context.getEngine();
-        GroupManager groupMgr = engine.getGroupManager();
-        Principal[] groups = groupMgr.getRoles();
+        final WikiEngine engine = context.getEngine();
+        final GroupManager groupMgr = engine.getGroupManager();
+        final Principal[] groups = groupMgr.getRoles();
         Arrays.sort( groups, COMPARATOR );
 
-        StringBuilder s = new StringBuilder();
+        final StringBuilder s = new StringBuilder();
         
-        for ( int i = 0; i < groups.length; i++ )
-        {
-            String name = groups[i].getName();
+        for ( int i = 0; i < groups.length; i++ ) {
+            final String name = groups[ i ].getName();
             
             // Make URL
-            String url = engine.getURLConstructor().makeURL( WikiContext.VIEW_GROUP, name, false, null );
+            final String url = engine.getURLConstructor().makeURL( WikiContext.VIEW_GROUP, name,  null );
             
             // Create hyperlink
             s.append( "<a href=\"" );
@@ -74,8 +69,7 @@ public class Groups
             s.append( "</a>" );
             
             // If not the last one, add a comma and space
-            if ( i < ( groups.length - 1 ) )
-            {
+            if ( i < ( groups.length - 1 ) ) {
                 s.append( ',' );
                 s.append( ' ' );
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
index b8d7449..4d38bc0 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
@@ -103,7 +103,7 @@ public class AtomFeed extends Feed {
                     for( final Attachment att : c ) {
                         final Element attEl = getElement( "link" );
                         attEl.setAttribute( "rel", "enclosure" );
-                        attEl.setAttribute( "href", engine.getURL( WikiContext.ATTACH, att.getName(), null, true ) );
+                        attEl.setAttribute( "href", engine.getURL( WikiContext.ATTACH, att.getName(), null ) );
                         attEl.setAttribute( "length", Long.toString( att.getSize() ) );
                         attEl.setAttribute( "type", getMimeType( servletContext, att.getFileName() ) );
 
@@ -149,8 +149,7 @@ public class AtomFeed extends Feed {
         final String rssFeedURL  = engine.getURL(WikiContext.NONE, "rss.jsp",
                                                  "page=" + engine.encodeName( m_wikiContext.getPage().getName() ) +
                                                  "&mode=" + m_mode +
-                                                 "&type=atom",
-                                           true );
+                                                 "&type=atom" );
         final Element self = getElement( "link" ).setAttribute( "rel","self" );
         self.setAttribute( "href", rssFeedURL );
         root.addContent( self );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
index fe4dec4..12f8625 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
@@ -18,9 +18,6 @@
  */
 package org.apache.wiki.rss;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
@@ -28,6 +25,9 @@ import org.apache.wiki.util.XhtmlUtil;
 import org.jdom2.Element;
 import org.jdom2.Namespace;
 
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
 
 /**
  * Provides an implementation of an RSS 1.0 feed.  In addition, this class is
@@ -87,7 +87,7 @@ public class RSS10Feed extends Feed {
 
             if( p.getVersion() > 1 ) {
                 item.addContent( new Element( "diff", NS_WIKI )
-                                         .addContent( engine.getURL( WikiContext.DIFF, p.getName(), "r1=-1", true ) ) );
+                                         .addContent( engine.getURL( WikiContext.DIFF, p.getName(), "r1=-1" ) ) );
             }
 
             //
@@ -127,7 +127,7 @@ public class RSS10Feed extends Feed {
             //
             //  PageHistory
             item.addContent( new Element( "history", NS_WIKI )
-                                    .addContent( engine.getURL( WikiContext.INFO, p.getName(), null, true ) ) );
+                                    .addContent( engine.getURL( WikiContext.INFO, p.getName(), null ) ) );
 
             //
             // Add to root
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
index ba69b7b..d5026c2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
@@ -96,7 +96,7 @@ public class RSS20Feed extends Feed
                         Attachment att = a.next();
 
                         Element attEl = new Element("enclosure");
-                        attEl.setAttribute( "url", engine.getURL(WikiContext.ATTACH, att.getName(), null, true ) );
+                        attEl.setAttribute( "url", engine.getURL( WikiContext.ATTACH, att.getName(), null ) );
                         attEl.setAttribute( "length", Long.toString(att.getSize()) );
                         attEl.setAttribute( "type", getMimeType( servletContext, att.getFileName() ) );
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
index d48ea62..d7df53c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
@@ -166,10 +166,10 @@ public class RSSGenerator {
 
         sb.append( "<br /><hr /><br />" )
           .append( "Parent page: <a href=\"" )
-          .append( m_engine.getURL( WikiContext.VIEW, att.getParentName(), null, true ) )
+          .append( m_engine.getURL( WikiContext.VIEW, att.getParentName(), null ) )
           .append( "\">" ).append( att.getParentName() ).append( "</a><br />" )
           .append( "Info page: <a href=\"" )
-          .append( m_engine.getURL( WikiContext.INFO, att.getName(), null, true ) )
+          .append( m_engine.getURL( WikiContext.INFO, att.getName(), null ) )
           .append( "\">" ).append( att.getName() ).append( "</a>" );
 
         return sb.toString();
@@ -326,9 +326,9 @@ public class RSSGenerator {
 
             final String url;
             if( page instanceof Attachment ) {
-                url = m_engine.getURL( WikiContext.ATTACH, page.getName(),null, true );
+                url = m_engine.getURL( WikiContext.ATTACH, page.getName(),null );
             } else {
-                url = m_engine.getURL( WikiContext.VIEW, page.getName(), null, true );
+                url = m_engine.getURL( WikiContext.VIEW, page.getName(), null );
             }
 
             final Entry e = new Entry();
@@ -378,9 +378,9 @@ public class RSSGenerator {
             String url;
 
             if( page instanceof Attachment ) {
-                url = m_engine.getURL( WikiContext.ATTACH, page.getName(), "version=" + page.getVersion(),true );
+                url = m_engine.getURL( WikiContext.ATTACH, page.getName(), "version=" + page.getVersion() );
             } else {
-                url = m_engine.getURL( WikiContext.VIEW, page.getName(), "version=" + page.getVersion(), true );
+                url = m_engine.getURL( WikiContext.VIEW, page.getName(), "version=" + page.getVersion() );
             }
 
             // Unfortunately, this is needed because the code will again go through replacement conversion
@@ -441,9 +441,9 @@ public class RSSGenerator {
             final String url;
 
             if( page instanceof Attachment ) {
-                url = m_engine.getURL( WikiContext.ATTACH, page.getName(),null,true );
+                url = m_engine.getURL( WikiContext.ATTACH, page.getName(),null );
             } else {
-                url = m_engine.getURL( WikiContext.VIEW, page.getName(),null, true );
+                url = m_engine.getURL( WikiContext.VIEW, page.getName(),null );
             }
 
             e.setURL( url );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/FeedDiscoveryTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/FeedDiscoveryTag.java
index f5edcac..2acff88 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/FeedDiscoveryTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/FeedDiscoveryTag.java
@@ -18,8 +18,6 @@
  */
 package org.apache.wiki.tags;
 
-import java.io.IOException;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
@@ -27,31 +25,26 @@ import org.apache.wiki.plugin.WeblogPlugin;
 import org.apache.wiki.rss.Feed;
 import org.apache.wiki.util.TextUtil;
 
+import java.io.IOException;
+
 /**
  *  Outputs links to all the site feeds and APIs this Wiki/blog supports.
  *
  *  @since 2.2
  */
-public class FeedDiscoveryTag
-    extends WikiTagBase
-{
+public class FeedDiscoveryTag extends WikiTagBase {
+
     private static final long serialVersionUID = 0L;
     
-    public final int doWikiStartTag()
-        throws IOException
-    {
-        WikiEngine engine = m_wikiContext.getEngine();
-        WikiPage   page   = m_wikiContext.getPage();
-
-        String encodedName = engine.encodeName( page.getName() );
+    public final int doWikiStartTag() throws IOException {
+        final WikiEngine engine = m_wikiContext.getEngine();
+        final WikiPage   page   = m_wikiContext.getPage();
 
-        String rssURL      = engine.getGlobalRSSURL();
-        String rssFeedURL  = engine.getURL(WikiContext.NONE, "rss.jsp", 
-                                           "page="+encodedName+"&amp;mode=wiki",
-                                           true );
+        final String encodedName = engine.encodeName( page.getName() );
+        final String rssURL      = engine.getGlobalRSSURL();
+        final String rssFeedURL  = engine.getURL( WikiContext.NONE, "rss.jsp","page="+encodedName+"&amp;mode=wiki" );
         
-        if( rssURL != null )
-        {
+        if( rssURL != null ) {
             String siteName = Feed.getSiteName(m_wikiContext);
             siteName = TextUtil.replaceEntities( siteName );
             
@@ -64,10 +57,9 @@ public class FeedDiscoveryTag
                                        siteName+"\" href=\""+atomPostURL+"\" />\n");
             */
             // FIXME: This does not work always, as plugins are not initialized until the first fetch
-            if( "true".equals(page.getAttribute(WeblogPlugin.ATTR_ISWEBLOG)) )
-            {
-                String blogFeedURL = engine.getURL(WikiContext.NONE,"rss.jsp","page="+encodedName,true);
-                String atomFeedURL = engine.getURL(WikiContext.NONE,"rss.jsp","page="+encodedName+"&amp;type=atom",true);
+            if( "true".equals( page.getAttribute( WeblogPlugin.ATTR_ISWEBLOG ) ) ) {
+                final String blogFeedURL = engine.getURL( WikiContext.NONE,"rss.jsp","page="+encodedName );
+                final String atomFeedURL = engine.getURL( WikiContext.NONE,"rss.jsp","page="+encodedName+"&amp;type=atom" );
         
                 pageContext.getOut().print("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS feed for weblog "+
                                            siteName+".\" href=\""+blogFeedURL+"\" />\n");
@@ -79,4 +71,5 @@ public class FeedDiscoveryTag
 
         return SKIP_BODY;
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
index ec2bc91..ab096a7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
@@ -29,7 +29,6 @@ import org.apache.wiki.parser.LinkParsingOperations;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.util.TextUtil;
 
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.tagext.BodyContent;
 import javax.servlet.jsp.tagext.BodyTag;
@@ -38,13 +37,10 @@ import java.util.Iterator;
 import java.util.Map;
 
 /**
- *  Provides a generic link tag for all kinds of linking
- *  purposes.
+ *  Provides a generic link tag for all kinds of linking purposes.
  *  <p>
- *  If parameter <i>jsp</i> is defined, constructs a URL pointing
- *  to the specified JSP page, under the baseURL known by the WikiEngine.
- *  Any ParamTag name-value pairs contained in the body are added to this
- *  URL to provide support for arbitrary JSP calls.
+ *  If parameter <i>jsp</i> is defined, constructs a URL pointing to the specified JSP page, under the baseURL known by the WikiEngine.
+ *  Any ParamTag name-value pairs contained in the body are added to this URL to provide support for arbitrary JSP calls.
  *  <p>
  *  @since 2.3.50
  */
@@ -74,27 +70,25 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
 
     private BodyContent m_bodyContent;
 
-    public void initTag()
-    {
+    public void initTag() {
         super.initTag();
         m_version = m_cssClass = m_style = m_title = m_target = m_compareToVersion = m_rel = m_jsp = m_ref = m_accesskey = m_templatefile = null;
         m_context = WikiContext.VIEW;
-        m_containedParams = new HashMap<String, String>();
+        m_containedParams = new HashMap<>();
         m_absolute = false;
     }
 
-    public void setTemplatefile( String key )
+    public void setTemplatefile( final String key )
     {
         m_templatefile = key;
     }
 
-    public void setAccessKey( String key )
+    public void setAccessKey( final String key )
     {
         m_accesskey = key;
     }
 
-    public void setAbsolute( String arg )
-    {
+    public void setAbsolute( final String arg ) {
         m_overrideAbsolute = true;
         m_absolute = TextUtil.isPositive( arg );
     }
@@ -104,57 +98,57 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
         return m_version;
     }
 
-    public void setVersion( String arg )
+    public void setVersion( final String arg )
     {
         m_version = arg;
     }
 
-    public void setCssClass( String arg )
+    public void setCssClass( final String arg )
     {
         m_cssClass = arg;
     }
 
-    public void setStyle( String style )
+    public void setStyle( final String style )
     {
         m_style = style;
     }
 
-    public void setTitle( String title )
+    public void setTitle( final String title )
     {
         m_title = title;
     }
 
-    public void setTarget( String target )
+    public void setTarget( final String target )
     {
         m_target = target;
     }
 
-    public void setTabindex( String tabindex )
+    public void setTabindex( final String tabindex )
     {
         m_tabindex = tabindex;
     }
 
-    public void setCompareToVersion( String ver )
+    public void setCompareToVersion( final String ver )
     {
         m_compareToVersion = ver;
     }
 
-    public void setRel( String rel )
+    public void setRel( final String rel )
     {
         m_rel = rel;
     }
 
-    public void setRef( String ref )
+    public void setRef( final String ref )
     {
         m_ref = ref;
     }
 
-    public void setJsp( String jsp )
+    public void setJsp( final String jsp )
     {
         m_jsp = jsp;
     }
 
-    public void setContext( String context )
+    public void setContext( final String context )
     {
         m_context = context;
     }
@@ -162,13 +156,10 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
     /**
      * Support for ParamTag supplied parameters in body.
      */
-    public void setContainedParameter( String name, String value )
-    {
-        if( name != null )
-        {
-            if( m_containedParams == null )
-            {
-                m_containedParams = new HashMap<String, String>();
+    public void setContainedParameter( final String name, final String value ) {
+        if( name != null ) {
+            if( m_containedParams == null ) {
+                m_containedParams = new HashMap<>();
             }
             m_containedParams.put( name, value );
         }
@@ -176,260 +167,189 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
 
 
     /**
-     *  This method figures out what kind of an URL should be output.  It mirrors heavily
-     *  on JSPWikiMarkupParser.handleHyperlinks();
+     *  This method figures out what kind of an URL should be output.  It mirrors heavily on JSPWikiMarkupParser.handleHyperlinks();
      *
      * @return the URL
      * @throws ProviderException
      */
-    private String figureOutURL()
-        throws ProviderException
-    {
+    private String figureOutURL() throws ProviderException {
         String url = null;
-        WikiEngine engine = m_wikiContext.getEngine();
-
-        if( m_pageName == null )
-        {
-            WikiPage page = m_wikiContext.getPage();
+        final WikiEngine engine = m_wikiContext.getEngine();
 
-            if( page != null )
-            {
+        if( m_pageName == null ) {
+            final WikiPage page = m_wikiContext.getPage();
+            if( page != null ) {
                 m_pageName = page.getName();
             }
         }
 
-        if( m_templatefile != null )
-        {
-            String params = addParamsForRecipient( null, m_containedParams );
-            String template = engine.getTemplateDir();
-            url = engine.getURL( WikiContext.NONE, "templates/"+template+"/"+m_templatefile, params, false );
-        }
-        else if( m_jsp != null )
-        {
-            String params = addParamsForRecipient( null, m_containedParams );
+        if( m_templatefile != null ) {
+            final String params = addParamsForRecipient( null, m_containedParams );
+            final String template = engine.getTemplateDir();
+            url = engine.getURL( WikiContext.NONE, "templates/"+template+"/"+m_templatefile, params );
+        } else if( m_jsp != null ) {
+            final String params = addParamsForRecipient( null, m_containedParams );
             //url = m_wikiContext.getURL( WikiContext.NONE, m_jsp, params );
-            url = engine.getURL( WikiContext.NONE, m_jsp, params, m_absolute );
-        }
-        else if( m_ref != null )
-        {
-            int interwikipoint;
-
-            if( new LinkParsingOperations( m_wikiContext ).isExternalLink(m_ref) )
-            {
+            url = engine.getURL( WikiContext.NONE, m_jsp, params );
+        } else if( m_ref != null ) {
+            final int interwikipoint;
+            if( new LinkParsingOperations( m_wikiContext ).isExternalLink(m_ref) ) {
                 url = m_ref;
-            }
-            else if( (interwikipoint = m_ref.indexOf(":")) != -1 )
-            {
-                String extWiki = m_ref.substring( 0, interwikipoint );
-                String wikiPage = m_ref.substring( interwikipoint+1 );
+            } else if( ( interwikipoint = m_ref.indexOf( ":" ) ) != -1 ) {
+                final String extWiki = m_ref.substring( 0, interwikipoint );
+                final String wikiPage = m_ref.substring( interwikipoint+1 );
 
                 url = engine.getInterWikiURL( extWiki );
-
-                if( url != null )
-                {
+                if( url != null ) {
                     url = TextUtil.replaceString( url, "%s", wikiPage );
                 }
-            }
-            else if( m_ref.startsWith("#") )
-            {
+            } else if( m_ref.startsWith("#") ) {
                 // Local link
-            }
-            else if( TextUtil.isNumber(m_ref) )
-            {
+            } else if( TextUtil.isNumber(m_ref) ) {
                 // Reference
-            }
-            else
-            {
-                int hashMark = -1;
+            } else {
+                final int hashMark;
 
-                String parms = (m_version != null) ? "version="+getVersion() : null;
+                final String parms = (m_version != null) ? "version="+getVersion() : null;
 
                 //
                 //  Internal wiki link, but is it an attachment link?
                 //
-                WikiPage p = engine.getPageManager().getPage( m_pageName );
+                final WikiPage p = engine.getPageManager().getPage( m_pageName );
 
-                if( p instanceof Attachment )
-                {
+                if( p instanceof Attachment ) {
                     url = m_wikiContext.getURL( WikiContext.ATTACH, m_pageName );
-                }
-                else if( (hashMark = m_ref.indexOf('#')) != -1 )
-                {
+                } else if( (hashMark = m_ref.indexOf('#')) != -1 ) {
                     // It's an internal Wiki link, but to a named section
 
-                    String namedSection = m_ref.substring( hashMark+1 );
+                    final String namedSection = m_ref.substring( hashMark+1 );
                     String reallink     = m_ref.substring( 0, hashMark );
-
                     reallink = MarkupParser.cleanLink( reallink );
 
                     String matchedLink;
                     String sectref = "";
-                    if( (matchedLink = engine.getFinalPageName( reallink )) != null )
-                    {
-                        sectref = "section-"+engine.encodeName(matchedLink)+"-"+namedSection;
-                        sectref = "#"+sectref.replace('%', '_');
-                    }
-                    else
-                    {
+                    if( ( matchedLink = engine.getFinalPageName( reallink ) ) != null ) {
+                        sectref = "section-" + engine.encodeName( matchedLink ) + "-" + namedSection;
+                        sectref = "#" + sectref.replace( '%', '_' );
+                    } else {
                         matchedLink = reallink;
                     }
 
                     url = makeBasicURL( m_context, matchedLink, parms, m_absolute ) + sectref;
-                }
-                else
-                {
-                    String reallink = MarkupParser.cleanLink( m_ref );
-
+                } else {
+                    final String reallink = MarkupParser.cleanLink( m_ref );
                     url = makeBasicURL( m_context, reallink, parms, m_absolute );
                 }
             }
-        }
-        else if( m_pageName != null && m_pageName.length() > 0 )
-        {
-            WikiPage p = engine.getPageManager().getPage( m_pageName );
+        } else if( m_pageName != null && m_pageName.length() > 0 ) {
+            final WikiPage p = engine.getPageManager().getPage( m_pageName );
 
             String parms = (m_version != null) ? "version="+getVersion() : null;
 
             parms = addParamsForRecipient( parms, m_containedParams );
 
-            if( p instanceof Attachment )
-            {
+            if( p instanceof Attachment ) {
                 String ctx = m_context;
                 // Switch context appropriately when attempting to view an
                 // attachment, but don't override the context setting otherwise
-                if( m_context == null || m_context.equals( WikiContext.VIEW ) )
-                {
+                if( m_context == null || m_context.equals( WikiContext.VIEW ) ) {
                     ctx = WikiContext.ATTACH;
                 }
-                url = engine.getURL( ctx, m_pageName, parms, m_absolute );
+                url = engine.getURL( ctx, m_pageName, parms );
                 //url = m_wikiContext.getURL( ctx, m_pageName, parms );
-            }
-            else
-            {
+            } else {
                 url = makeBasicURL( m_context, m_pageName, parms, m_absolute );
             }
-        }
-        else
-        {
-            String page = engine.getFrontPage();
+        } else {
+            final String page = engine.getFrontPage();
             url = makeBasicURL( m_context, page, null, m_absolute );
         }
 
         return url;
     }
 
-    private String addParamsForRecipient( String addTo, Map< String, String > params )
-    {
-        if( params == null || params.size() == 0 )
-        {
+    private String addParamsForRecipient( final String addTo, final Map< String, String > params ) {
+        if( params == null || params.size() == 0 ) {
             return addTo;
         }
-        StringBuilder buf = new StringBuilder();
-        Iterator< Map.Entry< String, String > > it = params.entrySet().iterator();
-        while( it.hasNext() )
-        {
-            Map.Entry< String, String > e = it.next();
-            String n = e.getKey();
-            String v = e.getValue();
+        final StringBuilder buf = new StringBuilder();
+        final Iterator< Map.Entry< String, String > > it = params.entrySet().iterator();
+        while( it.hasNext() ) {
+            final Map.Entry< String, String > e = it.next();
+            final String n = e.getKey();
+            final String v = e.getValue();
             buf.append( n );
             buf.append( "=" );
             buf.append( v );
-            if( it.hasNext() )
-            {
+            if( it.hasNext() ) {
                 buf.append( "&amp;" );
             }
         }
-        if( addTo == null )
-        {
+        if( addTo == null ) {
             return buf.toString();
         }
-        if( !addTo.endsWith( "&amp;" ) )
-        {
+        if( !addTo.endsWith( "&amp;" ) ) {
             return addTo + "&amp;" + buf.toString();
         }
         return addTo + buf.toString();
     }
 
-    private String makeBasicURL( String context, String page, String parms, boolean absolute )
-    {
-        String url;
-        WikiEngine engine = m_wikiContext.getEngine();
+    private String makeBasicURL( final String context, final String page, String parms, final boolean absolute ) {
+        final WikiEngine engine = m_wikiContext.getEngine();
 
-        if( context.equals( WikiContext.DIFF ) )
-        {
-            int r1 = 0;
-            int r2 = 0;
+        if( context.equals( WikiContext.DIFF ) ) {
+            int r1;
+            int r2;
 
-            if( DiffLinkTag.VER_LATEST.equals(getVersion()) )
-            {
-                WikiPage latest = engine.getPageManager().getPage( page, WikiProvider.LATEST_VERSION );
+            if( DiffLinkTag.VER_LATEST.equals( getVersion() ) ) {
+                final WikiPage latest = engine.getPageManager().getPage( page, WikiProvider.LATEST_VERSION );
 
                 r1 = latest.getVersion();
-            }
-            else if( DiffLinkTag.VER_PREVIOUS.equals(getVersion()) )
-            {
+            } else if( DiffLinkTag.VER_PREVIOUS.equals(getVersion()) ) {
                 r1 = m_wikiContext.getPage().getVersion() - 1;
-                r1 = (r1 < 1 ) ? 1 : r1;
-            }
-            else if( DiffLinkTag.VER_CURRENT.equals(getVersion()) )
-            {
+                r1 = Math.max( r1, 1 );
+            } else if( DiffLinkTag.VER_CURRENT.equals(getVersion()) ) {
                 r1 = m_wikiContext.getPage().getVersion();
-            }
-            else
-            {
+            } else {
                 r1 = Integer.parseInt( getVersion() );
             }
 
-            if( DiffLinkTag.VER_LATEST.equals(m_compareToVersion) )
-            {
-                WikiPage latest = engine.getPageManager().getPage( page, WikiProvider.LATEST_VERSION );
+            if( DiffLinkTag.VER_LATEST.equals(m_compareToVersion) ) {
+                final WikiPage latest = engine.getPageManager().getPage( page, WikiProvider.LATEST_VERSION );
 
                 r2 = latest.getVersion();
-            }
-            else if( DiffLinkTag.VER_PREVIOUS.equals(m_compareToVersion) )
-            {
+            } else if( DiffLinkTag.VER_PREVIOUS.equals(m_compareToVersion) ) {
                 r2 = m_wikiContext.getPage().getVersion() - 1;
-                r2 = (r2 < 1 ) ? 1 : r2;
-            }
-            else if( DiffLinkTag.VER_CURRENT.equals(m_compareToVersion) )
-            {
+                r2 = Math.max( r2, 1 );
+            } else if( DiffLinkTag.VER_CURRENT.equals(m_compareToVersion) ) {
                 r2 = m_wikiContext.getPage().getVersion();
-            }
-            else
-            {
+            } else {
                 r2 = Integer.parseInt( m_compareToVersion );
             }
 
             parms = "r1="+r1+"&amp;r2="+r2;
         }
 
-        //url = m_wikiContext.getURL( m_context, m_pageName, parms );
-        url = engine.getURL( m_context, m_pageName, parms, m_absolute );
-
-        return url;
+        return engine.getURL( m_context, m_pageName, parms );
     }
 
-    public int doWikiStartTag() throws Exception
-    {
+    public int doWikiStartTag() throws Exception {
         return EVAL_BODY_BUFFERED;
     }
 
-    public int doEndTag()
-    {
-        try
-        {
-            WikiEngine engine = m_wikiContext.getEngine();
+    public int doEndTag() {
+        try {
+            final WikiEngine engine = m_wikiContext.getEngine();
 
-            if( !m_overrideAbsolute )
-            {
+            if( !m_overrideAbsolute ) {
                 // TODO: see WikiContext.getURL(); this check needs to be specified somewhere.
                 m_absolute = "absolute".equals( engine.getWikiProperties().getProperty( WikiEngine.PROP_REFSTYLE ) );
             }
 
-            JspWriter out = pageContext.getOut();
-            String url = figureOutURL();
+            final JspWriter out = pageContext.getOut();
+            final String url = figureOutURL();
 
-            StringBuilder sb = new StringBuilder( 20 );
+            final StringBuilder sb = new StringBuilder( 20 );
 
             sb.append( (m_cssClass != null)   ? "class=\""+m_cssClass+"\" " : "" );
             sb.append( (m_style != null)   ? "style=\""+m_style+"\" " : "" );
@@ -439,13 +359,11 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
             sb.append( (m_accesskey != null) ? "accesskey=\""+m_accesskey+"\" " : "" );
             sb.append( (m_tabindex != null) ? "tabindex=\""+m_tabindex+"\" " : "" );
 
-            if( engine.getPageManager().getPage( m_pageName ) instanceof Attachment )
-            {
+            if( engine.getPageManager().getPage( m_pageName ) instanceof Attachment ) {
                 sb.append( engine.getAttachmentManager().forceDownload( m_pageName ) ? "download " : "" );
             }
 
-            switch( m_format )
-            {
+            switch( m_format ) {
               case URL:
                 out.print( url );
                 break;
@@ -455,19 +373,15 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
                 break;
             }
 
-            // Add any explicit body content. This is not the intended use
-            // of LinkTag, but happens to be the way it has worked previously.
-            if( m_bodyContent != null )
-            {
-                String linktext = m_bodyContent.getString().trim();
+            // Add any explicit body content. This is not the intended use of LinkTag, but happens to be the way it has worked previously.
+            if( m_bodyContent != null ) {
+                final String linktext = m_bodyContent.getString().trim();
                 out.write( linktext );
             }
 
             //  Finish off by closing opened anchor
             if( m_format == ANCHOR ) out.print("</a>");
-        }
-        catch( Exception e )
-        {
+        } catch( final Exception e ) {
             // Yes, we want to catch all exceptions here, including RuntimeExceptions
             log.error( "Tag failed", e );
         }
@@ -475,12 +389,12 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
         return EVAL_PAGE;
     }
 
-    public void setBodyContent( BodyContent bc )
+    public void setBodyContent( final BodyContent bc )
     {
         m_bodyContent = bc;
     }
 
-    public void doInitBody() throws JspException
-    {
+    public void doInitBody() {
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tasks/auth/SaveUserProfileTask.java b/jspwiki-main/src/main/java/org/apache/wiki/tasks/auth/SaveUserProfileTask.java
index 7aee63c..3ec7cb3 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tasks/auth/SaveUserProfileTask.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tasks/auth/SaveUserProfileTask.java
@@ -65,7 +65,7 @@ public class SaveUserProfileTask extends Task {
                                                  profile.getLoginName(),
                                                  profile.getFullname(),
                                                  profile.getEmail(),
-                                                 m_engine.getURL( WikiContext.LOGIN, null, null, true ) );
+                                                 m_engine.getURL( WikiContext.LOGIN, null, null ) );
                 MailUtil.sendMessage( m_engine.getWikiProperties(), to, subject, content);
             } catch ( final AddressException e) {
                 LOG.debug( e.getMessage(), e );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
index 64f965e..0e68e70 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
@@ -271,8 +271,7 @@ public final class CommandResolver {
     public String getSpecialPageReference( final String page ) {
         final Command command = m_specialPages.get( page );
         if ( command != null ) {
-            return m_engine.getURLConstructor()
-                           .makeURL( command.getRequestContext(), command.getURLPattern(), true, null );
+            return m_engine.getURLConstructor().makeURL( command.getRequestContext(), command.getURLPattern(), null );
         }
 
         return null;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
index bf2a206..c40db82 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
@@ -110,7 +110,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
     }
 
     private String getURL( final String page ) {
-        return m_context.getEngine().getURL( WikiContext.VIEW, page,null, true ); // Force absolute urls
+        return m_context.getEngine().getURL( WikiContext.VIEW, page,null );
     }
 
     /**
@@ -259,7 +259,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
             att.setAuthor( username );
             attmgr.storeAttachment( att, new ByteArrayInputStream( data ) );
 
-            url = engine.getURL( WikiContext.ATTACH, att.getName(), null, true );
+            url = engine.getURL( WikiContext.ATTACH, att.getName(), null );
         } catch( final Exception e ) {
             log.error( "Failed to upload attachment", e );
             throw new XmlRpcException( 0, "Failed to upload media object: "+e.getMessage() );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
index ecc3b2a..cfed1dd 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
@@ -131,7 +131,7 @@ public class SearchManagerTest {
 
         Assertions.assertEquals( 0, res.size(), "empty results" );
 
-        res = m_mgr.findPages( "Babylon", ctx );
+        Awaitility.await( "testSimpleSearch3" ).until( findsResultsFor( res,"Babylon" ) );
         Assertions.assertNotNull( res, "null result" );
         Assertions.assertEquals( 1, res.size(), "no pages" );
         Assertions.assertEquals( "TestPage", res.iterator().next().getPage().getName(), "page" );