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