Author: toad
Date: 2006-09-26 20:09:44 +0000 (Tue, 26 Sep 2006)
New Revision: 10512
Modified:
trunk/freenet/src/freenet/client/StandardOnionFECCodec.java
Log:
Make failure to load native FEC more obvious.
Modified: trunk/freenet/src/freenet/client/StandardOnionFECCodec.java
===================================================================
--- trunk/freenet/src/freenet/client/StandardOnionFECCodec.java 2006-09-24
16:42:23 UTC (rev 10511)
+++ trunk/freenet/src/freenet/client/StandardOnionFECCodec.java 2006-09-26
20:09:44 UTC (rev 10512)
@@ -8,6 +8,8 @@
import com.onionnetworks.fec.FECCode;
import com.onionnetworks.fec.FECCodeFactory;
+import com.onionnetworks.fec.Native8Code;
+import com.onionnetworks.fec.PureCode;
import com.onionnetworks.util.Buffer;
import freenet.support.LRUHashtable;
@@ -124,11 +126,26 @@
private final int k;
private final int n;
+ static boolean noNative;
+
public StandardOnionFECCodec(int k, int n) {
this.k = k;
this.n = n;
// Best performance, doesn't crash
- encoder = FECCodeFactory.getDefault().createFECCode(k,n);
+ //encoder = FECCodeFactory.getDefault().createFECCode(k,n);
+ FECCode fec;
+ try {
+ fec = new Native8Code(k,n);
+ } catch (Throwable t) {
+ if(!noNative) {
+ System.err.println("Failed to load native FEC:
"+t);
+ t.printStackTrace();
+ }
+ Logger.error(this, "Failed to load native FEC: "+t, t);
+ fec = new PureCode(k,n);
+ noNative = true;
+ }
+ encoder = fec;
// revert to below if above causes JVM crashes
// Worst performance, but decode crashes
//decoder = new PureCode(k,n);