So, to answer my own question... it WAS because I neglected to run Install.jsp after deploying the clean M2 war.

After Install, stop tc, start tc, the web client was redirected to Login.jsp. This time jspwiki.log showed that my custom properties had been loaded via Context.xml and was being used. catalina.out no longer had all the stack traces, either.

I am currently using the default userdatabase.xml, but couldn't discover the password for admin. I created my own account and was taken to the Main page that I had not been able to access since moving from M1 to M2. I had a nice friendly email and immediately took a backup of the updated userdatabase.xml.

I am happy to change my "+3/4" to "+1".

However, the jspwiki wiki installation instructions needs some(!) work, so I'll run through the entire deployment more carefully from the top before creating any documentation JIRAs and updates.

I'm so pleased to have it working. I've been waiting to work on this upgrade for my plugin for at least a year, with it still running in production with 2.10.3-git-32.

Regards,

Brian

On 7/3/19 3:08 pm, Brian Burch wrote:
On 5/3/19 8:55 am, Juan Pablo Santos Rodríguez wrote:
This is a release vote for Apache JSPWiki, version 2.11.0.M2. The vote will
be open for at least 72 hours from now.

It fixes the following issues:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310732&version=12343994

You can see a curated changelog at
https://jspwiki-wiki.apache.org/Wiki.jsp?page=NewIn2.11

Note that we are voting upon the source (tag), binaries are provided for
convenience.

Everybody is encouraged to vote.

Source and binary files:
https://dist.apache.org/repos/dist/dev/jspwiki/2.11.0.M2-rc1/

Nexus staging repo:
https://repository.apache.org/content/repositories/orgapachejspwiki-1010

The tag to be voted upon:
https://github.com/apache/jspwiki/tree/2.11.0.M2-RC1

JSPWiki's KEYS file containing PGP keys we use to sign the release:
https://www.apache.org/dist/jspwiki/KEYS

*** Please download, test and vote:

[ ] +1 Approve the release
[ ]  0 Don't mind
[ ] -1 Disapprove the release (please provide specific comments)

+ 3/4!!


Firstly, M2 built and tested perfectly on unbuntu 18.10 X64 with openjdk version 10.0.2, so well done!


I hit several problems testing a fresh install of M1 on my new development server, but most of them were fairly trivial and Iintended to write some JIRA's when I've completed my own work and M2 is released.

Unfortunately, I've hit one problem with M2, which I've been struggling over for the last 2 days. I hope it is a "user error" and I can vote +1, so I thought it best to ask for help before the deadline.

I had a vanilla M1 installation (pom.xml called it 2.11.0.M2-SNAPSHOT) that was my work-in-progress, but was subsequently pulled. I'd done quite a lot of tailoring for my PhotoCollection plugin, but hadn't finished the work. It installed with the "default" (aka Haddock) template and merged the jspwiki-custom.properties created by Install.jsp with the properties I wanted for my own purposes, cloned from my production system.

It appeared to be working OK and I successfully created a Main page, a LeftMenu, and a couple of others. I didn't like the dark theme and changed my own custom.properties to switch to the light theme. Satisfied that I had a useful testbed, I got on with my plugin development...

When the M2 release candidate (pom.xml calls it 2.11.0.M2) was cut last weekend, I quickly downloaded the source, built and ran the tests (hence my +3/4 provisional vote).

I was very confident of the new version, having read the changelog, so I didn't bother deploying it under a new name. I wiped my M1 war, and so tomcat (8.5.30-1ubuntu1.4) automatically wiped the deployed webapp before I could put on my paranoid hat.

Undeterred, I went through my customisation steps from my paper notes, but DID NOT run Install.jsp (in case that omission is relevant). I stopped tomcat, checked my custom properties, cleared tomcat's work directory (the previous jsp's java and class files), and restarted tomcat.

I won't mention all the confusing and unproductive things I've tried to resolve the problem since, but here are the things that seem most relevant today.

1. jspwiki.log does not report any problems, but I am suspicious because M1 would always spew out dozens of these messages:-

2019-02-21 13:08:30,517 INFO util.PropertyReader - jspwiki.custom.config defined, using /home/wiki/context/jspwiki-custom.properties as the custom properties file.

However, M2 's log doesn't mention custom properties at all.

2. Despite the apparently good start of M2, I can't access any of the small set of wiki pages I had built in an external directory, so all their url's just get 404 status.

3. Both M1 and M2 are using THE SAME Context.xml to avoid some "war surgery" steps, so here is a copy which used to work last week:-

brian@chenin:/etc/tomcat8-bb/Catalina/localhost$ cat PingTooTest.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for the jspWiki web application
-->
<Context>
   <!--
      Brian's version needs to follow symlinks to directories outside the
      tomcat webapp base.
     -->
   <Resources allowLinking="true"/>

   <!--
      try to load custom properties outside the deployed WAR
     -->
   <Parameter
      name="jspwiki.custom.config"
      value="/home/wiki/context/jspwiki-custom.properties"
      override="false"
    />
</Context>


4. Unfortunately, while M1 ran OK, M2 is triggering a severe error in catalina.out:-

log4j:WARN No appenders could be found for logger (org.apache.wiki.util.PropertyReader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 07-Mar-2019 12:25:06.345 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file 07-Mar-2019 12:25:06.356 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [/PingTooTest] startup failed due to previous errors 07-Mar-2019 12:25:06.411 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [PingTooTest] appears to have started a thread named [__DEFAULT__] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
  java.base@10.0.2/java.lang.Object.wait(Native Method)
  java.base@10.0.2/java.lang.Object.wait(Object.java:328)
  java.base@10.0.2/java.util.TimerThread.mainLoop(Timer.java:527)
  java.base@10.0.2/java.util.TimerThread.run(Timer.java:506)
07-Mar-2019 12:25:06.416 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [PingTooTest] appears to have started a thread named [Statistics Thread-__DEFAULT__-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
  java.base@10.0.2/jdk.internal.misc.Unsafe.park(Native Method)

java.base@10.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)

java.base@10.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2117)

java.base@10.0.2/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)

java.base@10.0.2/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)

java.base@10.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061)

java.base@10.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1121)

java.base@10.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
  java.base@10.0.2/java.lang.Thread.run(Thread.java:844)
07-Mar-2019 12:25:06.419 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [PingTooTest] appears to have started a thread named [JSPWiki Lucene Indexer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
  java.base@10.0.2/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1503)
  java.base@10.0.2/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1266)
  java.base@10.0.2/java.util.zip.ZipFile$Source.get(ZipFile.java:1229)

java.base@10.0.2/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:727)

java.base@10.0.2/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:845)
  java.base@10.0.2/java.util.zip.ZipFile.<init>(ZipFile.java:245)
  java.base@10.0.2/java.util.zip.ZipFile.<init>(ZipFile.java:175)
  java.base@10.0.2/java.util.jar.JarFile.<init>(JarFile.java:341)

java.base@10.0.2/jdk.internal.reflect.GeneratedConstructorAccessor8.newInstance(Unknown Source)

java.base@10.0.2/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

java.base@10.0.2/java.lang.reflect.Constructor.newInstance(Constructor.java:488)

org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:209)

org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:181)

org.apache.catalina.webresources.AbstractArchiveResourceSet.openJarFile(AbstractArchiveResourceSet.java:308)

org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:96)

org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:257)

org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
  org.apache.catalina.webresources.Cache.getResource(Cache.java:62)

org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)

org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)

org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2263)

org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:846)

org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1313)

org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1172)

org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.<clinit>(CompressingStoredFieldsWriter.java:70)

org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat.fieldsWriter(CompressingStoredFieldsFormat.java:128)

org.apache.lucene.codecs.lucene50.Lucene50StoredFieldsFormat.fieldsWriter(Lucene50StoredFieldsFormat.java:183)

org.apache.lucene.index.StoredFieldsConsumer.initStoredFieldsWriter(StoredFieldsConsumer.java:39)

org.apache.lucene.index.StoredFieldsConsumer.startDocument(StoredFieldsConsumer.java:46)

org.apache.lucene.index.DefaultIndexingChain.startStoredFields(DefaultIndexingChain.java:355)

org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:391)

org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:251)

org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:494)
  org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1616)
  org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1235)

org.apache.wiki.search.LuceneSearchProvider.luceneIndexPage(LuceneSearchProvider.java:467)

org.apache.wiki.search.LuceneSearchProvider.doFullLuceneReindex(LuceneSearchProvider.java:227)

org.apache.wiki.search.LuceneSearchProvider$LuceneUpdater.startupTask(LuceneSearchProvider.java:736)
  org.apache.wiki.WikiBackgroundThread.run(WikiBackgroundThread.java:111)
07-Mar-2019 12:25:06.425 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [PingTooTest] appears to have started a thread named [WatchDog for 'PingTooWikiTest'] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
  java.base@10.0.2/java.lang.Thread.sleep(Native Method)
  org.apache.wiki.WikiBackgroundThread.run(WikiBackgroundThread.java:125)
07-Mar-2019 12:25:06.445 SEVERE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [PingTooTest] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@46d5f731]) and a value of type [org.apache.wiki.WikiSession] (value [org.apache.wiki.WikiSession@7e846f2c]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 07-Mar-2019 12:25:06.487 INFO [JSPWiki Lucene Indexer] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [org.apache.lucene.util.packed.PackedInts$ReaderImpl]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.  java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.apache.lucene.util.packed.PackedInts$ReaderImpl]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.     at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1364)     at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1352)     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1211)     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1172)
     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)     at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2374)     at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:846)     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1313)     at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1172)     at org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.<clinit>(CompressingStoredFieldsWriter.java:70)     at org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat.fieldsWriter(CompressingStoredFieldsFormat.java:128)     at org.apache.lucene.codecs.lucene50.Lucene50StoredFieldsFormat.fieldsWriter(Lucene50StoredFieldsFormat.java:183)     at org.apache.lucene.index.StoredFieldsConsumer.initStoredFieldsWriter(StoredFieldsConsumer.java:39)     at org.apache.lucene.index.StoredFieldsConsumer.startDocument(StoredFieldsConsumer.java:46)     at org.apache.lucene.index.DefaultIndexingChain.startStoredFields(DefaultIndexingChain.java:355)     at org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:391)     at org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:251)     at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:494)     at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1616)     at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1235)     at org.apache.wiki.search.LuceneSearchProvider.luceneIndexPage(LuceneSearchProvider.java:467)     at org.apache.wiki.search.LuceneSearchProvider.doFullLuceneReindex(LuceneSearchProvider.java:227)     at org.apache.wiki.search.LuceneSearchProvider$LuceneUpdater.startupTask(LuceneSearchProvider.java:736)     at org.apache.wiki.WikiBackgroundThread.run(WikiBackgroundThread.java:111)


======> and so on.


5. However, don't get too excited about the initial log4j warnings, because here is an extract from the last log I captured from M1:-

log4j:WARN No appenders could be found for logger (org.apache.wiki.util.PropertyReader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 21-Feb-2019 13:01:53.717 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of configuration descriptor [/etc/tomcat8-bb/Catalina/localhost/PingTooTest.xml] has finished in [6,517] ms

[there were subsequent errors with jspwiki M1, but it started and did what I expected].


6. I am very suspicious about M2's lack of messages referring to my custom.properties. Dozens from M1 was not correct, but none at all from M2 makes me wonder whether they are even being used.

a) Should I have run Install.jsp, even though I didn't need it to generate a file that was not as suitable as my own which worked with M1?

b) I can't find the "full" jspwiki.properties file anywhere in the deployed webapp, but it is in the source tree. The only difference I can see is in this snippet of comments:-

#jspwiki.shortURLConstructor.prefix = wiki/
#  This prefix must be in some elements of web.xml, too: in
#  servlet-mapping of WikiServlet, in filter-mapping of WikiJSPFilter

I have renamed my war file to be called PingTooTest.war (hence the Context.xml name matches it). Is this comment related to something clever that needs to be done by Install.jsp???


I apologise for bothering everyone with this long email, but I'm stuck and don't know how to get past this problem. I hope someone will feel sorry enough for my plight and suggest what to do to resolve it.

Thanks...

Brian

c) scratching my head a lot, I compared

Reply via email to