Sounds like a bug in bitcoinj. What bitcoinj version are you using?

On 09/15/2017 03:29 PM, NelsoN Melina wrote:
> In this code i receive an already signed transaction in the form of a
> byte array and i would like to broadcast it to the Bitcoin network.
> 
> |
> |
> 
> |overridefun onHandleIntent(intent:Intent?){
>     org.bitcoinj.core.Context.propagate(Constants.CONTEXT)
>     if(intent !=null){
>         when(intent.action){
>             ACTION_BROADCAST_TRANSACTION ->{
>                 initializeBlockchain(null,0)
>                 val transactionByteArray =intent.getByteArrayExtra("TX")
>                 val tx
> =Transaction(Constants.NETWORK_PARAMETERS,transactionByteArray)
>                
> tx.getConfidence().setSource(TransactionConfidence.Source.SELF);
>                 tx.setPurpose(Transaction.Purpose.USER_PAYMENT);
>                 SpvModuleApplication.getWallet()!!.maybeCommitTx(tx)
>                 if(peerGroup !=null){
>                     val
> transactionBroadcast:TransactionBroadcast=peerGroup!!.broadcastTransaction(tx)
>                     val future
> :ListenableFuture<Transaction>=transactionBroadcast.future()
>                    
>                     future.get()
>   ..........|
> 
> |
> 
> |
> 
> Issue is that in my own code i already propagated the context but then
> internally in BitcoinJ it creates another thread when it has enough
> peers, and then broadcast the transaction from this thread, which fails
> as the Context is not propagated there.
> 
> Any pointers as to what i am doing wrong ?
> 
> Thanks.
> 
> 
>             09-14 15:14:52.867 8281-8330/com.m.s.test E/ExecutionList:
>             RuntimeException while executing runnable
>             
> org.bitcoinj.core.TransactionBroadcast$EnoughAvailablePeers@838ec24
>             with executor org.bitcoinj.utils.Threading$2@7b38d
>             java.lang.IllegalStateException: missing context
> 
>      
> 
>             at org.bitcoinj.core.Context.get(Context.java:110)
> 
>      
> 
> 
>             at
>             org.bitcoinj.core.Transaction.getConfidence(Transaction.java:1198)
> 
>      
> 
> 
>             at
>             
> org.bitcoinj.core.TransactionBroadcast$EnoughAvailablePeers.run(TransactionBroadcast.java:134)
> 
>      
> 
> 
>             at org.bitcoinj.utils.Threading$2.execute(Threading.java:141)
> 
>      
> 
> 
>             at
>             
> com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
> 
>      
> 
> 
>             at
>             
> com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
> 
>      
> 
> 
>             at
>             
> com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)
> 
>      
> 
> 
>             at
>             
> com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)
> 
>      
> 
> 
>             at
>             
> org.bitcoinj.core.PeerGroup$14.onPeerConnected(PeerGroup.java:1938)
> 
>      
> 
> 
>             at org.bitcoinj.core.PeerGroup$11.run(PeerGroup.java:1565)
> 
>      
> 
> 
>             at
>             org.bitcoinj.utils.Threading$UserThread.run(Threading.java:107)
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "bitcoinj" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to bitcoinj+unsubscr...@googlegroups.com
> <mailto:bitcoinj+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"bitcoinj" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bitcoinj+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to