When I try to execute the database to filesystem porter tool in xwiki 7.4, I
see the following error:
Failed to execute the [groovy] macro. Click on this message
for details.
Can anyone suggest how to resolve or work around this problem?
My environment is Debian jessie, Postgresql 9.4, WAR file running on tomcat8
and openjdk-7
The details are below.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Script
Macro for content [import com.xpn.xwiki.doc.XWikiAttachment;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.doc.DeletedAttachment;
import org.xwiki.store.legacy.doc.internal.ListAttachmentArchive;
import com.xpn.xwiki.store.XWikiAttachmentStoreInterface;
import org.xwiki.store.legacy.store.internal.FilesystemAttachmentStore;
import com.xpn.xwiki.store.AttachmentVersioningStore;
import org.xwiki.store.legacy.store.internal.XWikiHibernateTransaction;
import com.xpn.xwiki.store.AttachmentRecycleBinStore;
import com.xpn.xwiki.web.Utils;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWiki;
import com.xpn.xwiki.XWikiException;
import org.xwiki.store.filesystem.internal.FilesystemStoreTools;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.hibernate.ObjectNotFoundException;
private void printIntro(final XWiki wiki)
{
println("= Filesystem attachment storage porting script =");
println("== Step 1: Switch to Filesystem attachments. ==");
boolean ret = isFilesystemStore(wiki.getAttachmentStore()) \
&& isFilesystemStore(wiki.getAttachmentVersioningStore()) \
&& isFilesystemStore(wiki.getAttachmentRecycleBinStore());
println(getStoreLine(isFilesystemStore(wiki.getAttachmentStore()),
wiki.getAttachmentStore()));
println(getStoreLine(isFilesystemStore(wiki.getAttachmentVersioningStore()),
wiki.getAttachmentVersioningStore()));
println(getStoreLine(isFilesystemStore(wiki.getAttachmentRecycleBinStore()),
wiki.getAttachmentRecycleBinStore()));
if (!ret) {
println("Please edit your xwiki.cfg file by modifying "
+ "the attachment store lines to read as follows:");
println("xwiki.store.attachment.hint = file");
println("xwiki.store.attachment.versioning.hint = file");
println("xwiki.store.attachment.recyclebin.hint = file");
println("Also make sure they are not commented out.");
}
println("== Step 2: Add this directory to your backup routine. ==");
println("This is your storage directory, "
+ "when filesystem attachments are enabled you have to back this up
"
+ "as part of your data backup routine.\n");
println(Utils.getComponent(FilesystemStoreTools.class).storageDir.getAbsolutePath());
println("== Step 3: Copy attachments from database to filesystem. ==");
println("Now you are ready to copy the data over from your database to
the filesystem. "
+ "It is prudent to leave the attachments in the database since this
is still experimental "
+ "and in most situations the attachment data is not bothersome just
sitting in the "
+ "database. As such, this script contains no facility to delete
entries from the database.");
println("If anything goes wrong in this function, it will fail with an
error message, "
+ "you should get the stack trace (probably in the log file) and
keep it to "
+ "confuse and humiliate the developers with. No harm should be done
since this only loads "
+ "from the database and only saves to the filesystem.");
}
main();
private void main()
{
final XWikiContext xc = xcontext.getContext();
final XWiki wiki = xc.getWiki();
int startAt = 0;
int seconds = 20;
boolean dryRun = true;
boolean verbose = false;
boolean go = request.getMethod().equals("POST") &&
request.getParameter("doIt") != null;
boolean ajax = "plain".equals(request.getParameter("xpage"));
int endedAt = 0;
if (!ajax) {
this.printIntro(wiki);
}
if (go) {
startAt = Integer.parseInt(request.getParameter("startAt"));
seconds = Integer.parseInt(request.getParameter("seconds"));
dryRun = "on".equals(request.getParameter("dryRun"));
verbose = "on".equals(request.getParameter("verbose"));
endedAt = this.doIt(startAt, seconds, dryRun, verbose, ajax);
if (ajax) {
if (endedAt == -1) {
this.printFooter();
} else {
println("\n{{html clean=false}}<meta name='endedAt'
content='"
+ endedAt + "' />{{/html}}");
}
return;
}
}
this.printJs();
if (!go || endedAt > startAt) {
println("\n{{html clean=false}}");
println("<div id='javascriptSpace'></div>");
println("<form action='?time=" + System.nanoTime()
+ "#doItForm' id='doItForm'
method='POST'>");
println("<input type='hidden' name='seconds'
value='" + seconds + "'
/>");
println("<input type='hidden' id='startAt'
name='startAt' value='" +
endedAt + "' />");
println("<dl>");
println("<dt><label for='dryRun'>Dry Run, don't save
any
files.</label></dt>");
println("<dd><input type='checkbox' name='dryRun'
checked='"
+ ((dryRun) ? "checked" : "") + "'
/></dd>");
println("<dt><label for='verbose'>Verbose, show every
attachment.</label></dt>");
println("<dd><input type='checkbox' name='verbose'
checked='"
+ ((verbose) ? "checked" : "") + "'
/></dd>");
println("</dl>");
println("<input type='hidden' name='doIt'
value='yes' />")
println("<input type='submit' name='start'
value='"
+ ((endedAt > startAt) ? "Continue" : "Start") +
"' />");
println("</form>");
println("")
println("{{/html}}\n");
return;
}
this.printFooter();
}
private void printFooter()
{
println("== Step 4: make sure everything is working. ==");
println("Check to make sure your attachments are still there, if an
attachment is broken, "
+ "it will appear to be there but on opening it will tell you the
attachment does not exist. "
+ "If something goes terribly wrong with filesystem attachments, you
may have your old "
+ "attachment system back simply by changing the lines in the
xwiki.cfg file and restarting "
+ "the container. HOWEVER: This will not preserve attachments which
were uploaded **after** "
+ "switching to filesystem attachments so as users edit the system
you will become "
+ "locked in to filesystem attachments unless a script is written to
do the "
+ "inverse of this one.");
println("Despite being experimental, the filesystem attachment storage
is quite stable and the "
+ "risk of actually losing something so that it is unrecoverable is
very remote.");
println("NOTE: This must be run seperately in each subwiki.");
println("\n\nEnjoy and give feedback.");
}
private static boolean isFilesystemStore(final Object store)
{
return store.getClass().getName().contains("Filesystem");
}
private static String getStoreLine(final boolean isFilesystem, final Object
store)
{
return "(%style='color:" + (isFilesystem ? "#080" :
"#d00") + "'%)(((* "
+ store + ")))";
}
private void printJs()
{
println("""\n{{html}}{{/html}}""");
}
/**
* Port all attachments from the original form to filesystem attachment
store.
* Do one batch at a time so the user can see the progress and it won't time
out.
*
* @param startAt the index of the first job to do, 0 to start at the
beginning.
* @param seconds the number of seconds to run for before returning.
* @param dryRun don't save any files if this is true.
* @return the number of the first job which was not done. This can be
startAt in the next call.
* -1 if the operation is complete.
*/
private int doIt(int startAt, int seconds, boolean dryRun, boolean verbose,
boolean ajax)
{
final XWikiContext xc = this.xcontext.getContext();
final XWiki wiki = xc.getWiki();
final FilesystemAttachmentStore fileAttachStore =
Utils.getComponent(XWikiAttachmentStoreInterface.class, "file");
final XWikiAttachmentStoreInterface defAttachStore =
Utils.getComponent(XWikiAttachmentStoreInterface.class,
"hibernate");
final AttachmentVersioningStore defAttachmentVersioningStore =
Utils.getComponent(AttachmentVersioningStore.class, "hibernate");
int count = 0;
long stopTime = System.currentTimeMillis() + (1000 * seconds);
println("(%style='color:#00d'%)(((");
if (verbose && startAt == 0) {
println("\n== Attachments ==\n");
}
for (String docName : xwiki.searchDocuments("where 1=1")) {
if (count < startAt) {
count++;
continue;
} else if (stopTime < System.currentTimeMillis()) {
println(")))");
return count;
} else {
count++;
}
final XWikiDocument doc = xwiki.getDocument(docName).getDocument();
try {
final XWikiHibernateTransaction transaction = new
XWikiHibernateTransaction(xc);
if (verbose) {
println("* [[" + doc.getFullName() + "]]");
}
// This is the equivilant of doc.getAttachmentList() but there
is an issue which
// causes some attachments to be lost.
//
jira.xwiki.org/browse/XWIKI-7936
def hql = "select att from XWikiAttachment att WHERE
att.docId=?";
for (XWikiAttachment attach : xwiki.search(hql, [doc.getId()]))
{
attach.setDoc(doc);
if (verbose) {
println("** [[attach:" + doc.getFullName() + "@"
+
attach.getFilename() + "]]");
}
try {
fileAttachStore.loadAttachmentContent(attach, xc,
false);
continue;
} catch (XWikiException noAttachmentInFilesystem) {
// no such attachment, let's save it.
}
try {
try {
defAttachStore.loadAttachmentContent(attach, xc,
true);
} catch (XWikiException notInHibernate) {
final Throwable wrapped =
notInHibernate.getException();
if (wrapped && wrapped instanceof
ObjectNotFoundException) {
println("(%style='color:#c80'%)(((");
println("Unable to find this attachment
[[attach:" + attach.getFilename()
+ "@" + doc.getFullName() + "]] in
the
database, "
+ "it may be the result of database
corruption from a failed "
+ "upload prior to the fixing of "
+
"[[jira.xwiki.org/browse/XWIKI-5055]]");
println("xwikiattachment_content.XWA_ID = " +
attach.getId());
println(")))");
}
}
defAttachmentVersioningStore.loadArchive(attach, xc,
true);
try {
//
jira.xwiki.org/jira/browse/XWIKI-6199
attach.getAttachment_archive().getVersions();
} catch (NullPointerException e) {
attach.setAttachment_archive(new
ListAttachmentArchive([attach]));
}
// Setup the runnables to do the save but don't save
just yet.
fileAttachStore.getAttachmentContentSaveRunnable(attach,
false, xc)
.runIn(transaction);
} catch (Exception e) {
println("(%style='color:#d00'%)(((");
println("Error in [" + doc.getFullName() + ":" +
attach.getFilename() + "]"
+ e.getMessage());
println(ExceptionUtils.getStackTrace(e));
println(")))");
}
}
if (!dryRun) {
transaction.start();
}
} catch (Exception e) {
println("(%style='color:#d00'%)(((");
println("Failed to port attachments for document [" +
doc.getFullName() + "]");
println(e.getMessage());
println(ExceptionUtils.getStackTrace(e));
println(")))");
}
}
println(")))");
if (startAt < count) {
int attachCount =
xwiki.search("select count(at) from XWikiDocument as doc, "
+ "XWikiAttachment as at where at.docId =
doc.id").get(0).intValue();
println("**[" + attachCount + "] attachments.**");
}
// And now for the deleted attachments.
final AttachmentRecycleBinStore fileBin =
Utils.getComponent(AttachmentRecycleBinStore.class, "file");
final AttachmentRecycleBinStore defaultBin =
Utils.getComponent(AttachmentRecycleBinStore.class, "hibernate");
if (verbose && startAt < count) {
println("\n== Deleted Attachments ==\n");
}
List<Object[]> entries =
xwiki.search("select da.id, da.docName, da.filename, da.date from
DeletedAttachment as da");
if (verbose && entries.size() == 0) {
println("\nnone.");
}
int delAttachCount = 0;
for (Object[] o : entries) {
long delAttachId = o[0];
final String docName = o[1];
final String fileName = o[2];
final Date deleteDate = o[3];
delAttachCount++;
if (count < startAt) {
if (verbose && !ajax) {
println("* [[" + docName + "]] - " + fileName);
}
count++;
continue;
} else if (stopTime < System.currentTimeMillis()) {
return count;
}
count++;
try {
final DeletedAttachment delAttach =
defaultBin.getDeletedAttachment(delAttachId, xc, true);
// Can't use the transaction runnable here because
(non-filesystem)
// deleted attachments hold all content in memory so they have
to be
// handled one at a time.
final XWikiAttachment attach = delAttach.restoreAttachment(null,
xc);
try {
//
jira.xwiki.org/jira/browse/XWIKI-6199
attach.getAttachment_archive().getVersions();
} catch (NullPointerException e) {
attach.setAttachment_archive(new
ListAttachmentArchive([attach]));
}
if (!dryRun) {
fileBin.saveToRecycleBin(attach,
delAttach.getDeleter(),
delAttach.getDate(),
xc,
false);
}
if (verbose) {
println("* [[" + docName + "]]");
println("** " + fileName + " - Deleted: " +
deleteDate);
}
} catch (Exception e) {
println("(%style='color:#d00'%)(((");
println("* [[" + docName + "]] - " + fileName + " -
Deleted: " +
deleteDate);
println(e.getMessage());
println(")))");
println(ExceptionUtils.getStackTrace(e));
}
}
println("\n**[" + delAttachCount + "] deleted attachments.**");
return -1;
}]
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:199)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:60)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:269)
at
org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at
org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:95)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:253)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:126)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:56)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1164)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1127)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1179)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:692)
at sun.reflect.GeneratedMethodAccessor562.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
at
org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
at
org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.xwiki.velocity.introspection.TryCatchDirective.render(TryCatchDirective.java:72)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1854)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:821)
at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1854)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:821)
at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:431)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:184)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:115)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:137)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
at
org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2340)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.script.ScriptException:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
failed:
Script7.groovy: -1: Mixing private and public/protected methods of the same
name causes multimethods to be disabled and is forbidden to avoid surprising
behaviour. Renaming the private methods will solve the problem.
@ line -1, column -1.
Script7.groovy: 62: Mixing private and public/protected methods of the same
name causes multimethods to be disabled and is forbidden to avoid surprising
behaviour. Renaming the private methods will solve the problem.
@ line 62, column 1.
private void main()
^
2 errors
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:159)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.eval(AbstractJSR223ScriptMacro.java:340)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:249)
at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:194)
... 154 more
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
Script7.groovy: -1: Mixing private and public/protected methods of the same
name causes multimethods to be disabled and is forbidden to avoid surprising
behaviour. Renaming the private methods will solve the problem.
@ line -1, column -1.
Script7.groovy: 62: Mixing private and public/protected methods of the same
name causes multimethods to be disabled and is forbidden to avoid surprising
behaviour. Renaming the private methods will solve the problem.
@ line 62, column 1.
private void main()
^
2 errors
at
org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at
org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1075)
at
org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:212)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getScriptClass(GroovyScriptEngineImpl.java:374)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:151)
... 157 more
--
View this message in context:
http://xwiki.475771.n2.nabble.com/Admin-Tools-database-to-filesystem-porter…
Sent from the XWiki- Users mailing list archive at
Nabble.com.