diff --git a/README.md b/README.md index 895486a..0d16ffc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -[![Build Status](https://travis-ci.org/bitcoinj/bitcoinj.png?branch=master)](https://travis-ci.org/bitcoinj/bitcoinj) [![Coverage Status](https://coveralls.io/repos/bitcoinj/bitcoinj/badge.png?branch=master)](https://coveralls.io/r/bitcoinj/bitcoinj?branch=master) +[![](https://jitpack.io/v/Samourai-Wallet/bitcoinj.svg)](https://jitpack.io/#Samourai-Wallet/bitcoinj) + +[![Build Status](https://travis-ci.org/bitcoinj/bitcoinj.png?branch=master)](https://travis-ci.org/bitcoinj/bitcoinj) [![Coverage Status](https://coveralls.io/repos/bitcoinj/bitcoinj/badge.png?branch=master)](https://coveralls.io/r/bitcoinj/bitcoinj?branch=master) [![Visit our IRC channel](https://kiwiirc.com/buttons/irc.freenode.net/bitcoinj.png)](https://kiwiirc.com/client/irc.freenode.net/bitcoinj) diff --git a/core/pom.xml b/core/pom.xml index 81cc487..72fea3e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -191,7 +191,7 @@ com.google.protobuf:protobuf-java:2.6.1:jar:null:compile:d9521f2aecb909835746b7a5facf612af5e890e8 com.h2database:h2:1.3.167:jar:null:compile:d3867d586f087e53eb12fc65e5693d8ee9a5da17 com.lambdaworks:scrypt:1.4.0:jar:null:compile:906506b74f30c8c20bccd9ed4a11112d8941fe87 - org.bouncycastle:bcprov-jdk15on:1.55:jar:null:compile:6fc928491ada0974140257e85e2b016a2eee0e1d + org.bouncycastle:bcprov-jdk15on:1.55:jar:null:compile:935f2e57a00ec2c489cbd2ad830d4a399708f979 junit:junit:4.12:jar:null:test:2973d150c0dc1fefe998f834810d68f278ea58ec mysql:mysql-connector-java:5.1.33:jar:null:compile:8af455a9a3267e6664cafc87ace71a4e4ef02837 net.jcip:jcip-annotations:1.0:jar:null:compile:afba4942caaeaf46aab0b976afd57cc7c181467e @@ -432,5 +432,4 @@ 2.7.5 - diff --git a/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java b/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java index aaaa5d6..90f4250 100644 --- a/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java +++ b/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java @@ -278,10 +278,6 @@ public void setChainHead(StoredBlock chainHead) throws BlockStoreException { public void close() throws BlockStoreException { try { buffer.force(); - if (System.getProperty("os.name").toLowerCase().contains("win")) { - log.info("Windows mmap hack: Forcing buffer cleaning"); - WindowsMMapHack.forceRelease(buffer); - } buffer = null; // Allow it to be GCd and the underlying file mapping to go away. randomAccessFile.close(); } catch (IOException e) { diff --git a/core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java b/core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java deleted file mode 100644 index 88f47f2..0000000 --- a/core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright by the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.bitcoinj.store; - -import sun.misc.*; -import sun.nio.ch.*; - -import java.nio.*; - -/** - *

This class knows how to force an mmap'd ByteBuffer to reliquish its file handles before it becomes garbage collected, - * by exploiting implementation details of the HotSpot JVM implementation.

- * - *

This is required on Windows because otherwise an attempt to delete a file that is still mmapped will fail. This can - * happen when a user requests a "restore from seed" function, which involves deleting and recreating the chain file. - * At some point we should stop using mmap in SPVBlockStore and we can then delete this class.

- * - *

It is a separate class to avoid hitting unknown imports when running on other JVMs.

- */ -public class WindowsMMapHack { - public static void forceRelease(MappedByteBuffer buffer) { - Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); - if (cleaner != null) cleaner.clean(); - } -}