VCard provider is read-only

I have recieved a lot of log entries matching this below:

2007.03.15 10:27:47 [org.jivesoftware.wildfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java: 91)

]

java.lang.UnsupportedOperationException: VCard provider is read-only.

at org.jivesoftware.wildfire.vcard.VCardManager.setVCard(VCardManager.java:122)

at org.jivesoftware.wildfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java:8 2)

at org.jivesoftware.wildfire.handler.IQHandler.process(IQHandler.java:48)

at org.jivesoftware.wildfire.IQRouter.handle(IQRouter.java:300)

at org.jivesoftware.wildfire.IQRouter.route(IQRouter.java:104)

at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)

at org.jivesoftware.wildfire.net.StanzaHandler.processIQ(StanzaHandler.java:283)

at org.jivesoftware.wildfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler .java:79)

at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:248)

at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:147)

at org.jivesoftware.wildfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:126)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:186)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :250)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:305)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

My question is, how do I prevent it? How do I identify the offender?

Are you using LDAP autorization? If so, you’'ve got two options:

  • chance implementation of LDAP Vcard Manager or

  • change in config file (normally wildfire.xml) line:

and your vcards will be saved at your database.

I should clarify… I wish to keep the ldap, I just want to identify the offending user so I can correct his actions. thanks

It’‘s not an “offending user” issue; most jabber clients try to write vcard info to the server. If you’‘re using a read-only LDAP for authentication, apparently Wildfire defaults to trying to store vcard info in LDAP–which of course it can’‘t do. When you make the suggested change to the config file, you’'re just enabling Wildfire to respond to client vcard handlers in a standard way.

Hi,

it may help to enable the debug log (be sure that you have enough disk space) to get the user.

I guess that it’'s just one user who tries to modify his vCard and it may be good to know who fails so often.

Not sure how hard you need to get the user’'s name, I could create an issue for this, so please let me know.

LG

Well I have moved every one to a new server. Off of Dev and into Prod, finally

I am still getting those reports, I would like an easy way of noting the offending user so I can take action.

Thanks

Hi,

feel free to vote for JM-1026.

LG