Commit Graph

3187 Commits

Author SHA1 Message Date
Florian Schmaus 0a4cd79d4e Call MultiUserChat.userHasLeft() before invoking listeners
in case a listener throws, userHasLeft() will eventually have set the
MutliUserChat instance to the right state.
2017-11-07 20:34:43 +01:00
Florian Schmaus d93d214f0e Remove duplicate code in MultiUserChat 2017-11-07 20:34:43 +01:00
damencho 44e4607259 Fix memory leak in MutliUserChat.removeConnectionCallback().
Fix memory leak by removing subject listener
in MutliUserChat.removeConnectionCallback().
Fixes SMACK-782.
2017-11-07 20:34:43 +01:00
Florian Schmaus 65b4f506dc Add SubscribeAnswer.ApproveAndAlsoRequestIfRequired 2017-11-06 22:41:28 +01:00
Florian Schmaus 9a34e9e870 Add RosterUtil.preApproveSubscriptionIfRequiredAndPossible() 2017-11-06 22:39:10 +01:00
Florian Schmaus 1d52a0c8ef Don't let smack-android depend on smack-omemo(-signal)
Fixes SMACK-779.
2017-10-27 20:54:06 +02:00
damencho a0b0b5a63b Makes xmpperror descriptive text optional as said in the rfc. 2017-10-27 13:14:50 -05:00
Florian Schmaus 1b2521269e Make END_TAG parsing more NPE robust
by calling String.equals() on the constant string and not on the
return value of parser.getName().

Also perform the access to 'parser' on a different LOC than
equals(). This should help debugging things like

okt 25, 2017 2:02:54 PM org.jivesoftware.smack.AbstractXMPPConnection callConnectionClosedOnErrorListener
WARNING: Connection XMPPTCPConnection[***@***/***] (0) closed with error
java.lang.NullPointerException
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1194)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:982)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:998)
	at java.lang.Thread.run(Thread.java:745)

which where recently reported on the forums.
2017-10-27 17:48:00 +02:00
Florian Schmaus 0729392ab8 Fix isSupported discovery of "Push Notifications"
Fixes SMACK-780.
2017-10-14 14:12:28 +02:00
Florian Schmaus e1e12031ac REPL: Add support to enable a JDWP debug link 2017-10-14 13:38:24 +02:00
Florian Schmaus 01aa6d9c18 DNS: Correctly handle broken SRV records
where the SRV RR points to a target DNS name with no associated A or
AAAA RRs.

Fixes SMACK-781.
2017-10-14 13:29:46 +02:00
Florian Schmaus 122bf06ccc Merge pull request #160 from ibauersachs/parse-error-texts
Get descriptive text from error without lang
2017-09-29 19:04:14 +02:00
Florian Schmaus c70a1921db Use Async.go() in OMEMO PEPListener
to avoid a deadlock, since the PEP listener is synchronous.
2017-09-29 16:32:32 +02:00
Florian Schmaus 58181bab08 OMEMO: Unspaghetti PEP listener code
While I like Spaghetti, I don't like them in my code.

4 insertions, 24 deletions, *kaboom*. :)
2017-09-29 16:32:32 +02:00
Florian Schmaus 941f29e928 Improve ReconnectionManager
Fixes SMACK-778.
2017-09-29 16:32:32 +02:00
Ingo Bauersachs 699145ee5f Get descriptive text from error without lang
A stanza with <error><text>Some text</text></error>, i.e. without a
xml:lang attribute, did not return the value 'Some text' in
getDescriptiveText().

Insert the empty string as key when the attribute is not present while
parsing the xml. When writing, omit the attribute if the key is the
empty string.
2017-09-27 00:21:40 +02:00
Florian Schmaus 1d943aed20 Merge pull request #173 from iachimoe/4.2
Updated comments to indicate that reject_all is default SubscriptionMode
2017-08-26 19:50:49 +02:00
iachimoe c92a95136f Updated comments to indicate that reject_all is default SubscriptionMode 2017-08-26 12:16:07 -05:00
Florian Schmaus 339ae1c7a0 Merge pull request #163 from ibauersachs/replymode-public
Make UnknownIqRequestReplyMode public
2017-08-14 22:57:28 +02:00
Florian Schmaus 997766533f Merge pull request #161 from ibauersachs/condition-to-type-mappings
Make XMPPError Condition to Type mapping consistent
2017-08-14 22:57:12 +02:00
Florian Schmaus 6653638e77 Merge pull request #167 from ibauersachs/fix-javadoc-indentation
Fix too shorts indents of two Javadoc comments
2017-08-14 22:56:30 +02:00
Ingo Bauersachs 25114b3fc1 Add a test to ensure all Conditions have a Type mapping 2017-08-14 21:50:30 +02:00
Ingo Bauersachs b7542bbde5 Fix too shorts indents of two Javadoc comments 2017-08-14 21:47:53 +02:00
Ingo Bauersachs 47c936e508 Make UnknownIqRequestReplyMode public
If it is not made public, then (g|s)etUnknownIqRequestReplyMode cannot
be used.
2017-08-14 21:45:29 +02:00
Ingo Bauersachs 199311eda1 Fix error Condition to Type mappings to match RFC 6120
Synchronize the Javadoc table to match the actual implementation.
2017-08-14 21:35:31 +02:00
vanitasvitae 8052ee752b Add missing cleanup in Omemo integrationtest 2017-08-14 21:14:28 +02:00
Florian Schmaus f5ccf61c50 Disable clirr for now 2017-08-14 20:53:27 +02:00
Florian Schmaus cfb0656456 Smack 4.2.2-SNAPSHOT 2017-08-14 20:45:06 +02:00
Florian Schmaus 2f88382b8a Smack 4.2.1 2017-08-14 20:23:35 +02:00
Florian Schmaus 772e45da92 Introduce NotAPubSubNodeException
Fixes SMACK-759.
2017-08-14 20:23:35 +02:00
Florian Schmaus b9ed22c732 Add MamManager.isSupported()
Fixes SMACK-777.
2017-08-14 20:23:35 +02:00
Florian Schmaus 7404bf8fe7 Fix OMEMO entry in extensions/index.md 2017-08-14 20:15:27 +02:00
Florian Schmaus b497a236f9 Improve StanzaListner javadoc 2017-08-14 14:18:21 +02:00
Florian Schmaus f7ae216138 Merge remote-tracking branch 'ignite/4.2' into 4.2 2017-08-01 23:56:29 +02:00
Florian Schmaus a09be93ce7 Merge pull request #159 from ibauersachs/muc-presence-consistency
Make add/remove for presence interceptors consistent
2017-08-01 23:52:21 +02:00
Ingo Bauersachs c9b9558cd4 Make add/remove for presence interceptors consistent 2017-08-01 16:17:35 +02:00
Florian Schmaus b12b13c661 Merge pull request #157 from ibauersachs/bobmanager-order
Fix parameter ordering in BoBHash construction
2017-07-23 11:02:43 +02:00
Ingo Bauersachs fc17cf4e2d Fix link to OMEMO extension 2017-07-23 10:58:55 +02:00
Florian Schmaus 2050b2f8b9 Remove OmemoManager.resourceSupportsOmemo()
since there is currently no way to determine if a full JID supports
OMEMO.
2017-07-23 10:58:55 +02:00
Florian Schmaus 7b5eecb821 Use AbstractConnectionListener in OmemoManager
and manually inline the setConnectionListener() method.
2017-07-23 10:58:55 +02:00
Florian Schmaus 2e61e0a4d3 Use Async.go() in OmemoManager's connection listener
to prevent a timeout exception since those are executed synchronously.
2017-07-23 10:58:55 +02:00
Florian Schmaus 57e19d1a4f Use Async.go() in OmemoCarbonCopyListener
to prevent a timeout exception since carbon copy listeners are
executed synchronously.
2017-07-23 10:58:55 +02:00
Ingo Bauersachs 0b8788a9fc Fix parameter ordering in BoBHash construction 2017-07-20 22:50:34 +02:00
Florian Schmaus c7630362ef Merge pull request #155 from vanitasvitae/fixGetUndecidedDevices
Correct method name to getUndecidedDevices
2017-07-14 22:06:34 +02:00
vanitasvitae 419f6a336e
Correct method name to getUndecidedDevices 2017-07-14 16:09:37 +02:00
Florian Schmaus 9d63baf55a Use assertXMLEqual() in SlotRequestCreateTest 2017-07-05 19:09:30 +02:00
Florian Schmaus 858ba3f82a Fix HTTP File Upload's SlotRequest
Fixes SMACK-774. Thanks to Nathan Freitas for reporting this.
2017-07-05 18:27:47 +02:00
Florian Schmaus e87c463927 Merge pull request #147 from vanitasvitae/fixMUC
Fix OMEMO MUC receiving
2017-07-03 11:48:03 +02:00
Florian Schmaus ddabe439b4 build.gradle: Add hint about obtaining system console
with newer Gradle versions and the Gradle daemon.
2017-07-03 11:07:27 +02:00
Florian Schmaus b0298619ba build.gradle: Use "def console"
as otherwhise there may be a GroovyCastException:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'java.io.Console@148b13e5' with class 'java.io.Console' to class 'org.gradle.api.tasks.Console'
        at build_5dq456k95ni7h1f54hn45uzb7$_run_closure2.doCall(/home/flo/data/code/smack/build.gradle:194)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:221)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:145)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:315)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:225)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:138)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:35)
        at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
        at com.sun.proxy.$Proxy59.graphPopulated(Unknown Source)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:111)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:230)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:227)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:161)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:95)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51)
        at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:281)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:254)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:33)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:247)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:182)
        at org.gradle.launcher.Main.doAction(Main.java:33)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)

with some Gradle versions.
2017-07-03 11:07:27 +02:00