Hello,
I have a component implementation GlossaryTransformation.java
<https://github.com/xwiki-contrib/application-glossary/blob/master/applicati…>.
So it has two methods List<String> getGlossaryEntries() and transform(Block
block, TransformationContext context) in it.
So, I
have a test file https://pastebin.com/NixuBMjD for this component. Here I
am trying to mock the behavior of
getGlossaryEntries
method
by putting strings ("glossaryEntry1" and "glossaryEntry2"). And then
implementing "when(this.glossaryTransformation.getGlossaryEntries()).thenReturn(mockArrayList);"
but this line somehow shows NullPointerException.
On searching on StackOverflow, I found that this is happening because the
object of "glossaryTransfromation" is not created, but only a reference is
created. So, I tried to put glosaaryTransformation =
"mock(GlossaryTransformation.class)" in the code. Yes, the above error was
resolved, but the line "Parser parser =
this.mocker.getInstance(Parser.class, "xwiki/2.1");" gave an error "
ComponentLookupException: Can't find descriptor for the component [role =
[interface org.xwiki.rendering.parser.Parser] hint = [xwiki/2.1]]"
.
Is there a better way to achieve this? Or I think a better approach can be
to put the Query method (getGlossaryEntries) of GlossarryTranformation.java
in a separate class and then create a mock object for that class and then
run the test?
Thanks
-Sarthak Gupta
Hi devs,
We’re currently using http://www.openjs.com/scripts/events/keyboard_shortcuts/ but it has some limitations. Clement and I tried to find some unused combinations of keys that works on Mac and Unix and we couldn’t find any that worked with it. It also doesn’t support having combinations with several letters for example.
For example we could imagine having H+H+H for turning on/off hidden documents (as a developer key sequence since it’s not a user use case).
I’d like to propose using https://dmauro.github.io/Keypress/ which is under the Apache 2 license and that seems to work well on Mac and Unix and it’s very powerful.
See sequence combos for example.
The API look simple and nice and I don’t think it would be hard to continue support our data structure inside the “shortcuts” variable to make it work with it.
WDYT?
Thanks
-Vincent
Hi everyone,
We just received a mail from Google confirming us that we have been selected !
So we now (actually as soon as the website will be in sync with the
mails :)) have 1 month to create tons of tasks for the students.
And if you did not added yourself to
http://dev.xwiki.org/xwiki/bin/view/GoogleCodeIn/#HMentors it's not
tool later and we would be happy to welcome more mentors :)
Have fun !
--
Thomas Mortagne
Hi Sarthak,
> On 15 Oct 2017, at 21:43, Sarthak Gupta <sarthakgupta072(a)gmail.com> wrote:
>
>
>
> On Sun, Oct 15, 2017 at 7:53 PM, Vincent Massol <vincent(a)xwiki.com> wrote:
> Hi Sarthak,
>
> > On 14 Oct 2017, at 09:52, Sarthak Gupta <sarthakgupta072(a)gmail.com> wrote:
> >
> > Hello,
> > As the tests of my project application-glossary
> > <https://github.com/xwiki-contrib/application-glossary> are not working
>
> I’ll try to have a look when I’m back from GSOC summit.
>
> > , in
> > spite of my attempts(I will handle then later), I am moving on to
> > implementing the next feature of the application i.e creating
> > transformation.
> > As far as I understand, the transformation requires a cache component from
> > which entries shall be taken for rendering purpose. This cache should get
> > updated when a glossary xobject is added, deleted or modified. For this
> > functionality to take place, it should make use of an Event Listener.
> >
> > Hope I am right till now?
>
> Yes that’s exactly it!
>
>
> Hello Vincent,
>
> What I would suggest is that you implement the Transformation without cache for the first version, you make the app work fully end to end, you release a 1.0 version that the community can try out, and then you start working on version 1.1 which adds the cache to improve performance.
>
> WDYT?
>
> I think for implementing the transformations, some source will be required from which the entries already present in the Glossary space will be taken. Here it is the cache object. So, an alternative here can be to use the "query module" everytime for knowing which entries are present in the Glossary Space. And that would slow down the Xwiki to a large extent I guess because for each word a query will be executed. Would using the "Query" be fine or there can be any other better approach?
Some ideas:
Version 1.0:
* When the transformation executes (i.e. when a page is rendered), you do a query to get the glossary entries.
Version 1.1:
* You make your transformation implement Initializable and in initialize() you go a query to get all existing Glossary entries that you save in a cache component that you write
* The cache component internally uses a Cache<> object for storing the Glossary entries
* You also implement a component implementing EventListener that gets the cache component injected so that you can update the cache when glossary xobjects are created/modified/deleted.
If you feel comfortable you can implement directly version 1.1 but my recommendation would be get a working v1.0 version ASAP and then iterate to improve it.
Hope it helps,
Thanks
-Vincent
PS: Please keep the discussion on the list so that anyone can help you and see the answers and chime in or just learn from it! :)
> Thanks
>
> Sarthak Gupta
>
>
> >
> > I have a question in my mind.
> >
> > The "cache" and the "event Listener" are to be implemented as two separate
> > components. right?
>
> Correct.
>
> > What I think is, that the EventListener component should be filled with
> > appropriate methods just like this
> > <https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…>
> > and
> > then in these methods, the cache should be updated.
> >
> > Is this implementation right?
>
> Correct.
>
> > And after this, the rendering part will come….
>
> Awesome.
>
> Thanks. Let me know if you need more of my/our help.
> -Vincent
>
> >
> > Thanks
> >
> > Sarthak Gupta
We ran into an issue recently where users were not able to access the Wiki
due to the XWiki security cache holding up access to read requests as we
were experiencing heap exhaustion. A thread dump of a host showed that there
were 211 security cache read locks and 2 security cache write locks during
the event. Read locks are supposedly parallelizable, so we suspect that it
was the write locks that blocked the read requests.
Looking into the write locks, we found
*DefaultSecurityCacheRulesInvalidatorListener* shares a read-write lock
(*SecurityCacheRulesInvalidator*) with the security cache loader
(*DefaultSecurityCacheLoader*). It appears that these write requests to the
security cache were potentially creating a deadlock, blocking any further
read requests.
Our investigation of this event resulted in the following questions that we
are hoping to get answered by reaching out here:
1. What exactly happens in the event of a write failure to the Security
Cache? Are we correct in understanding that the write request will continue
to hold a lock on the cache, preventing all read requests from proceeding?
2. If so, are there any mitigations around the global read-write lock on the
security cache? Or, perhaps, is the best action is to simply move toward a
more scalable caching mechanism (i.e. a centralized cache such as Elastic
Cache)?
3. It looks as if all threads doing a read/write request to the
SecurityCache were all parked waiting for the same thread (3081f946);
however, the thread is not showing up in the thread dump so we are not sure
what it is stuck on. Does the XWiki team have any suspicions as to what
could be hold up the requests to the SecurityCache?
Thank you!
---
For more information on the event:
>From our investigation, we concluded that the outage happened because:
1. Remote events triggered a security cache update and requested a couple of
write locks
2. The writes could not execute (perhaps due to the heap exhaustion,
although root cause of write failure is unknown)
3. ReentrantReadWriteLock lock followed a fair policy, which releases locks
in time order, so read requests were forced to wait for any previous write
requests to finish. Because the write requests couldn't finish, the
remaining 211 threads were blocked.
* Possible remote events that trigger security cache update: changes to an
XWiki group such as leaving the admin group, user first time visiting XWiki,
etc..
----
*LDAP Connection Lock example:*
Thread t@225108
java.lang.Thread.State: TIMED_WAITING
at java.lang.Object.wait(Native Method)
- waiting on <7249fc39> (a com.novell.ldap.Connection)
at com.novell.ldap.Connection.waitForReader(Unknown Source)
at com.novell.ldap.Connection.startReader(Unknown Source)
at com.novell.ldap.Connection.connect(Unknown Source)
at com.novell.ldap.Connection.connect(Unknown Source)
at com.novell.ldap.LDAPConnection.connect(Unknown Source)
at
com.ownership.groups.ldap.DefaultLdapConnection.connect(DefaultLdapConnection.java:25)
at
com.ownership.groups.ldap.LdapClient.queryGroups(LdapClient.java:99)
at
com.ownership.groups.ldap.LdapClient.getGroupsForUser(LdapClient.java:64)
at
com.ownership.groups.ldap.LdapClient.getGroupsForUser(LdapClient.java:59)
at
com.ownership.groups.GroupService.getAllGroupsReferencesForMember(GroupService.java:113)
- locked <7cc1cfca> (a java.lang.String)
at
com.ownership.groups.GroupService.getAllGroupsReferencesForMember(GroupService.java:75)
at
org.xwiki.security.internal.DefaultUserBridge.getGroupsReferencesFor(DefaultUserBridge.java:122)
at
org.xwiki.security.internal.DefaultUserBridge.getAllGroupsFor(DefaultUserBridge.java:78)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.loadUserGroups(DefaultSecurityCacheLoader.java:350)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.loadUserGroups(DefaultSecurityCacheLoader.java:342)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.loadUserEntry(DefaultSecurityCacheLoader.java:318)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.loadAccessEntries(DefaultSecurityCacheLoader.java:221)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.loadRequiredEntries(DefaultSecurityCacheLoader.java:193)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.load(DefaultSecurityCacheLoader.java:148)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.getAccess(DefaultAuthorizationManager.java:218)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.evaluateSecurityAccess(DefaultAuthorizationManager.java:159)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.hasSecurityAccess(DefaultAuthorizationManager.java:152)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.hasAccess(DefaultAuthorizationManager.java:109)
at
org.xwiki.display.internal.AbstractDocumentTitleDisplayer.displayTitle(AbstractDocumentTitleDisplayer.java:163)
at
org.xwiki.display.internal.AbstractDocumentTitleDisplayer.display(AbstractDocumentTitleDisplayer.java:149)
at
org.xwiki.display.internal.AbstractDocumentTitleDisplayer.display(AbstractDocumentTitleDisplayer.java:58)
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:123)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
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.getRenderedTitle(XWikiDocument.java:1538)
at
com.xpn.xwiki.doc.XWikiDocument.getRenderedTitle(XWikiDocument.java:1558)
at com.xpn.xwiki.api.Document.getDisplayTitle(Document.java:345)
at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.velocity.runtime.parser.node.PropertyExecutor.execute(PropertyExecutor.java:142)
at
org.apache.velocity.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:539)
at
org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:198)
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.ASTMethod.execute(ASTMethod.java:151)
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.SimpleNode.render(SimpleNode.java:342)
at
org.apache.velocity.runtime.parser.node.ASTStringLiteral.value(ASTStringLiteral.java:330)
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.ASTIfStatement.render(ASTIfStatement.java:87)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2080)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:886)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2080)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:886)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.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:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:463)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:210)
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:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
actiontrace.generation.servlet.StorageBindingFilter.doFilter(StorageBindingFilter.java:40)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.spnego.http.InitiateAction.run(HttpAuthFilter.java:215)
at
com.spnego.http.HttpAuthFilter.executeFilterWithCreds(HttpAuthFilter.java:176)
at com.spnego.http.HttpAuthFilter.doFilter(HttpAuthFilter.java:74)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.build.brazil.filters.FQDNFilter.doFilter(FQDNFilter.java:170)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:136)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at com.tomcat.valves.QueryLogValve.invoke(QueryLogValve.java:157)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at
org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1126)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
- locked <1cc68e56> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- locked <79120011> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
----
*Security Cache Read Lock example:*
Thread t@225106
java.lang.Thread.State: WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <3081f946> (a
java.util.concurrent.locks.ReentrantReadWriteLock$FairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283)
at
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727)
at
org.xwiki.security.authorization.internal.DefaultSecurityCacheRulesInvalidator.suspend(DefaultSecurityCacheRulesInvalidator.java:56)
at
org.xwiki.security.authorization.cache.internal.DefaultSecurityCacheLoader.load(DefaultSecurityCacheLoader.java:144)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.getAccess(DefaultAuthorizationManager.java:218)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.evaluateSecurityAccess(DefaultAuthorizationManager.java:159)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.hasSecurityAccess(DefaultAuthorizationManager.java:152)
at
org.xwiki.security.authorization.DefaultAuthorizationManager.hasAccess(DefaultAuthorizationManager.java:109)
at
org.xwiki.security.authorization.internal.XWikiCachingRightService.hasAccessLevel(XWikiCachingRightService.java:309)
at com.xpn.xwiki.api.XWiki.getDocument(XWiki.java:270)
at com.xpn.xwiki.api.XWiki.getDocument(XWiki.java:254)
at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2080)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:886)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.SimpleNode.render(SimpleNode.java:342)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2080)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:886)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2080)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:886)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.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:259)
at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
at
com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:790)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:667)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:616)
at
com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:602)
at
com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2102)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:463)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:210)
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:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
actiontrace.generation.servlet.StorageBindingFilter.doFilter(StorageBindingFilter.java:40)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.spnego.http.InitiateAction.run(HttpAuthFilter.java:215)
at
com.spnego.http.HttpAuthFilter.executeFilterWithCreds(HttpAuthFilter.java:176)
at com.spnego.http.HttpAuthFilter.doFilter(HttpAuthFilter.java:74)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.build.brazil.filters.FQDNFilter.doFilter(FQDNFilter.java:170)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:136)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at com.tomcat.valves.QueryLogValve.invoke(QueryLogValve.java:157)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at
org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1126)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
- locked <4da86584> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- locked <1479d987> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
----
*Security Cache Write Lock example:*
Thread t@178
java.lang.Thread.State: WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <3081f946> (a
java.util.concurrent.locks.ReentrantReadWriteLock$FairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
at
org.xwiki.security.authorization.internal.DefaultSecurityCacheRulesInvalidatorListener.onEvent(DefaultSecurityCacheRulesInvalidatorListener.java:186)
at
org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:304)
at
org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:269)
at
org.xwiki.observation.remote.internal.DefaultRemoteObservationManager.notify(DefaultRemoteObservationManager.java:168)
at
com.wiki.observation.remote.jgroups.JGroupsReceiver.receive(JGroupsReceiver.java:87)
at org.jgroups.JChannel.up(JChannel.java:768)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1034)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:182)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:438)
at org.jgroups.stack.Protocol.up(Protocol.java:426)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:294)
at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:487)
at
org.jgroups.protocols.pbcast.NAKACK2.deliverBatch(NAKACK2.java:989)
at
org.jgroups.protocols.pbcast.NAKACK2.removeAndPassUp(NAKACK2.java:919)
at
org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:851)
at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:611)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:155)
at org.jgroups.protocols.FD.up(FD.java:260)
at org.jgroups.protocols.MERGE3.up(MERGE3.java:292)
at org.jgroups.protocols.Discovery.up(Discovery.java:296)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1657)
at org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1873)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- locked <2ea19041> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
--
Sent from: http://xwiki.475771.n2.nabble.com/XWiki-Dev-f475773.html
The XWiki development team is proud to announce the availability of XWiki
9.9.
This release focused on fixing bugs on Notifications, Office Viewer and
Solr Search. The server is now able to check for its new versions and user
preferences are taken into account by the notifications toggles.
You can download it here: http://www.xwiki.org/xwiki/bin/view/Main/Download
Make sure to review the release notes:
http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/9.9/
Thanks for your support
-The XWiki dev team
Hi,
I am trying to build the application-glossary-api module but it is failing
and is showing in the stack trace
"Caused by: java.lang.ClassNotFoundException:
org.xwiki.tool.enforcer.ExternalExtensionCheck".
I googled it and found that may be the class is missing from the
classpath, so I added :
<groupId>org.xwiki.commons</groupId>
> <artifactId>xwiki-commons-tool-enforcer-dependencies</artifactId>
> <version>${commons.version}</version>
as a dependency in the api pom.xml, but that doesn't seem to work.
Stack Trace: https://pastebin.com/3rJu1MJv
Thanks
Sarthak Gupta
Hi everyone,
Thomas and I would like to try the Google Code-In (GCI) programme this year (GCI is for high school students). We’ve been participating to lots of discussions about it at the GSOC summit 2017 and it seems like it could bring some interesting things for the XWiki project.
Our goal:
* Participate to GCI
* Kill 2 birds with one stone and create an onboarding programme for anyone wanting to contribute to XWiki without any knowledge
Here’s what we’ve done so far:
* We’ve started registering XWiki as an org on https://codein.withgoogle.com/dashboard/
* We’ve also started creating the GCI pages on xwiki.org at http://dev.xwiki.org/xwiki/bin/view/GoogleCodeIn/
* We’ve started creating GCI issues in XWiki (reusing existing JIRAs + creating new ones). The idea is to map our Paper Cuts ideas we had (http://dev.xwiki.org/xwiki/bin/view/Main/PaperCut) with GCI.
** In practice a GCI issue is a “Trivial” issue, labelled with “GCI”.
Next immediate steps:
* Finish the application process before the 24th of October. We’ll know on the 26th of October if we’re selected or not.
* Find at least 10 mentors for the programme. We’re currently 2. A mentor doesn't need to be an expert in XWiki at all since the GCI tasks need to be super simple with very clear success criteria. So we need the maximum of mentors. We need to be prepared to handle 10-50 students at all time participating to XWiki GCI tasks!
** Example of people who could be mentors: committers, contributors, QA/testers, XWiki users, ex-GSOC students
* Before the 28th of November have at least 200 tasks defined.
IMPORTANT: The mentors are not assigned to any student and we work as a pool of mentors (it’s not like GSOC!). A mentor can handle validating tasks and answering questions from students at the intensity that they want (could be as low as doing that for a few tasks only).
Please let us know quickly if you’re willing to be a mentor for GCI!
Thanks
-Vincent
Hi devs,
This mail is about:
A. Dropping support for IE10
B. Dropping support for IE11
C. Adding support for Microsoft Edge
---
If you read our Browser Support Strategy (
http://dev.xwiki.org/xwiki/bin/view/Community/BrowserSupportStrategy ) we
are still supporting Internet Explorer 10.
We started its support since Jun 17, 2015. In practice we don't perform
full tests on IE10, focusing mostly on IE11. The last performed tests for
IE10 where in Jan 2017, for XWiki 8.4.4 (
http://test.xwiki.org/xwiki/bin/view/QA/XWiki%208.4.4#|t=qa&p=1&l=15&s=test…
).
On another note, Microsoft Edge replaced Internet Explorer as the default
web browser since the release of Windows 10 (launched Jul 2015). Internet
Explorer 11 is maintained on Windows 10 for compatibility purposes, but is
deprecated in favor of Edge and is no longer actively developed.
Instead of supporting "Internet Explorer 10.x-Latest" + "We support IE
browsers, starting with version 10." we actually should say (in case the
vote is passing) "Internet Explorer 11 + Microsoft Edge".
We might even considered dropping support for IE 11 and just keep Microsoft
Edge, since that's the latest version of Windows supported browser.
Although, IE11 currently still has a better usage than Microsoft Edge. I
could not found any performed tests for Microsoft Edge on our test wiki.
---
In terms of xwiki.org website usage for the past 12 months, we have:
- 5.46% sessions for Internet Explorer
-- IE11: 91.50%
-- IE10: 2.80%
- 1.43% sessions for Edge (multiple versions)
In terms of worldwide market share for the past 12 months (according to
http://gs.statcounter.com/browser-market-share/desktop/ ), for desktops, we
have:
- 8.21% IE
- 4.3% Edge
Usage example for August 2017:
- 7.1% for IE11
- 2.26% for Edge 15
- 1.37% for Edge 14
- 0.2% for Edge 13
---
So my votes are:
A. Dropping support for IE10
+1
B. Dropping support for IE11
-0, because of bigger usage compared to Microsoft Edge. Still, I don't
think we have the man-power to support tests on both browsers types.
C. Adding support for Microsoft Edge
+1, because this is the latest supported browser for Windows
Thanks,
Caty
@GSOC students:
Thank you so much for having participated to this year’s GSOC! You did some great work and made the xwiki project even more appealing to outsiders!
We’d love to keep seeing you in the xwiki community and to keep you engaged.
Let us know what you’re interested to do in the future, we’re always eager to learn more from you.
Also, I’ve started a section on http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/#HWhat27snextafterGS… about what’s next for students once they’ve completed a GSOC project.
Let us know if there are items of interest to you.
Thanks again
-Vincent
The XWiki development team is proud to announce the availability of XWiki
9.9 Release Candidate 2.
This is mostly a bug fixing release (25 bugs), focused on Notifications,
Office Viewer and Solr Search. The server is now able to check for its new
versions and user preferences are taken into account by the notifications
toggles.
You can download it here: http://www.xwiki.org/xwiki/bin/view/Main/Download
Make sure to review the release notes:
http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/9.9RC2
Thanks for your support
-The XWiki dev team
Hello,
As the tests of my project application-glossary
<https://github.com/xwiki-contrib/application-glossary> are not working, in
spite of my attempts(I will handle then later), I am moving on to
implementing the next feature of the application i.e creating
transformation.
As far as I understand, the transformation requires a cache component from
which entries shall be taken for rendering purpose. This cache should get
updated when a glossary xobject is added, deleted or modified. For this
functionality to take place, it should make use of an Event Listener.
Hope I am right till now?
I have a question in my mind.
The "cache" and the "event Listener" are to be implemented as two separate
components. right?
What I think is, that the EventListener component should be filled with
appropriate methods just like this
<https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…>
and
then in these methods, the cache should be updated.
Is this implementation right?
And after this, the rendering part will come....
Thanks
Sarthak Gupta
Hello,
I am testing my project application-glossary. My tests are failing again
https://pastebin.com/Ww28QHzB. Can anyone please help me?
In general, how to read and use stack traces for debugging/removing errors?
I am not pretty good at this. I mean, in this stack trace also there are so
many errors with the same name like "XWikiLogOutputStream". Which line to
look? How to find where am I going wrong?
application-glossary <https://github.com/xwiki-contrib/application-glossary>
Thanks
Sarthak Gupta
Hi devs,
This is a small proposal that shows improvements related to:
- layout changes for ratings,
- the display of price for payed extensions,
- replacing the Silk icons with FontAwesome and
- experimenting with a custom Theme styling.
http://design.xwiki.org/xwiki/bin/view/Proposal/ExtensionManager99
Let me know what you think.
Thanks,
Caty
Hi devs,
To remove a big step from the release I would like to modify a bit our
setup and deploy released xwiki-commons and xwiki-rendering artifacts
on Maven Central instead of nexus.xwiki.org/maven.xwiki.org.
PRO:
* speed up releases
* less stuff to store on our side
* only one artifact for a specific version (right now they are built
twice which produce two different JARs in pratice)
CONS:
* depends more on Maven Central
In practice we already depend on Maven Central for many things so if
Maven Central ever end up dead the fact that we don't have the
artifact on our side is going to be the least of our issues :)
So WDYT ?
+1 on my side
--
Thomas Mortagne
Hi devs,
Here’s a proposal for XWiki 9.9 + 9.10 (2 months).
Dates
=====
Roadmap for the coming 2 months.
* 9.9RC1: 16 Oct 2017
* 9.9: 23 oct 2017
* 9.10RC1: 13 Nov 2017
* 9.10: 20 Nov 2017
Sure
====
* Notifications - Continue work - Guillaume
** Finish replacing the Watchlist
** Fix UX and improve UI - Help from Caty needed!
** Add notifications for recommended apps
* XWIKI-14377 Warnings when editing extension pages (same as for delete) - Thomas (Priority) + Caty help for the UI
* Fix the move issue: http://jira.xwiki.org/browse/XWIKI-14626 - Thomas (Priority)
* Performance work - Thomas
** Finish stuff to make filesystem attachment/history content the default (automatic migration, broken deleted attachments UI, etc.)
If time permits
===========
* XWIKI-14162: Save button more visible. Position Save buttons on a fixed-bottom area. (continue from Pierre's PR)
* Livetable improvements
** Implement bulk actions on livetable items
* Administration: Default values
** {{jira url="https://jira.xwiki.org" style="enum"}}XWIKI-14157{{/jira}} Display the default and inherited values in the Administration
** {{jira url="https://jira.xwiki.org" style="enum"}}XWIKI-9663{{/jira}} Show default value for date format in administration
* Multipage tour feature
* Add an {{attachments}} macro
* More perf work
** {{jira url="https://jira.xwiki.org" style="enum"}}XCOMMONS-1121{{/jira}} - Store the job status in separated files
** {{jira url="https://jira.xwiki.org" style="enum"}}XCOMMONS-764{{/jira}} - Live storage of the job log instead of at the end of the job execution
** Async macros, panels, ui extensions, etc.
** ...
* Start Page API work
Let me know if anyone has any comment or if some contributor/committers want to work on more stuff! :)
Thanks
-Vincent
The XWiki development team is proud to announce the availability of XWiki
9.8.
This release introduces a new feature for the Notifications: Watched
Entities. It is an experimental feature that will soon replace the
Watchlist Application. To try it out and get familiar with it, you need to
enable it, since it is currently disabled by default.
For users, we now have more usable notification filter settings, a nice
helper when you edit a "Database List" field and a feature that was missing
from the CKEditor integration, which is office import.
For developers, it is easier to propose an extension containing REST
resources, or to customize the Flamingo LESS code. We have also exposed
more database columns in the Query Module for users who don't have
programming rights. The notification filters AST (Abstract Syntax Tree)
proposes new types of nodes to create complex filter queries. There are
also new facilities to avoid using SyntaxFactory, to make Extension Manager
faster, or to have more control over some skin elements (CSS IDs and layout
variables).
You can download it here: http://www.xwiki.org/xwiki/bin/view/Main/Download
Make sure to review the release notes:
http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/9.8
Thanks for your support
-The XWiki dev team
Hi devs,
I’d like to implement this process:
* When we discover a flaky test, we create a jira issue for it and we fill a custom field to indicate in a structured manner the name of the test class and test method (e.g. using the “<class name>#<method name>” format).
* When a test fails, our Jenkins pipeline script verifies if it’s listed in jira and if so, doesn’t send a mail but marks it in the UI (same as when we detect environment-related false positives).
Let me know quickly if you don’t like it since I’m adding the custom field to jira as I’d like to progress on the scrjpt.
Thanks
-Vincent
Hi,
I finally got the time to make another iteration for these comparison
pages.
If anyone want to make modifications on the texts, they are available at:
- http://dev.xwiki.org/xwiki/bin/view/Drafts/Compare/
- http://dev.xwiki.org/xwiki/bin/view/Drafts/Compare/XWiki-vs-Confluence/
- http://dev.xwiki.org/xwiki/bin/view/Drafts/Compare/XWiki-vs-MediaWiki/
They should look like:
- Compare:
http://design.xwiki.org/xwiki/bin/download/Proposal/XWikiOrg2017/preview_Co…
- XWiki vs. Confluence:
http://design.xwiki.org/xwiki/bin/download/Proposal/XWikiOrg2017/preview_Co…
- XWiki vs. MediaWiki:
http://design.xwiki.org/xwiki/bin/download/Proposal/XWikiOrg2017/preview_Me…
I'm curious to know what you think about this version in terms of layout,
validate the content, maybe you have other points that we can compare the
solutions on, maybe I wrote something wrong for the solutions.
Let me know,
Caty
On Tue, May 17, 2016 at 11:17 PM, Bryn Jeffries <bryn.jeffries(a)sydney.edu.au
> wrote:
> Denis Gervalle said:
> > > Yes, we only maintain documentation for the latest version of XWiki on
> > > xwiki.org (not enough manpower to have decent doc for several versions
> > > ATM).
> > >
> >
> > However, for version 6.2.5 and later, you have a way to mitigate this
> > limitation. You can install the Scripting Documentation Application on
> your
> > own wiki (see
> > http://extensions.xwiki.org/xwiki/bin/view/Extension/Scripting+Documenta
> > tion+Application).
>
> Thanks, I did not know about this tool, which sounds excellent.
>
> > Unless you are using XWiki prior to 4.2 , using Wiki Component is
> definitely
> > the recommended way to writes Groovy components. Registering
> > components "by hand" from a groovy script has many drawbacks not only
> > the restart one, and you should avoid doing that. The best is of course
> to
> > write the components in Java, and install them as an extension.
>
> I've found the ability to write small Groovy scripts as components has
> been very handy and simpler than writing full extensions in Java. For
> utilities that I don't wish to make into public extensions the burden of a
> small Groovy script into a proper extension seems prohibitive (although
> that may just be that I haven't written one yet, and I'm just a walker at
> the bottom of a hill complaining about how high it looks...). Last time I
> asked there is was no simple way to install private extensions. Also, I
> didn't have much luck writing a proper component in Groovy, which I
> sometimes prefer to Java.
> _______________________________________________
> users mailing list
> users(a)xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users
>