diff --git a/source/net/yacy/cora/protocol/Domains.java b/source/net/yacy/cora/protocol/Domains.java index dae80e7b2..e428e14a0 100644 --- a/source/net/yacy/cora/protocol/Domains.java +++ b/source/net/yacy/cora/protocol/Domains.java @@ -26,6 +26,7 @@ package net.yacy.cora.protocol; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.InetAddress; @@ -550,9 +551,11 @@ public class Domains { static { // using http://javainetlocator.sourceforge.net/ if library is present - // we use this class using reflection to be able to remove it because that class is old and without maintenancy + // we use this class using reflection to be able to remove it because that class is old and without maintenance InetAddressLocatorClass = ClassProvider.load("net.sf.javainetlocator.InetAddressLocator", new File("lib/InetAddressLocator.jar")); - InetAddressLocatorGetLocaleInetAddressMethod = ClassProvider.getStaticMethod(InetAddressLocatorClass, "getLocale", new Class[]{InetAddress.class}); + final Class[] args = (Class[]) Array.newInstance(Class.class, 1); + args[0] = InetAddress.class; + InetAddressLocatorGetLocaleInetAddressMethod = ClassProvider.getStaticMethod(InetAddressLocatorClass, "getLocale", args); ccSLD_TLD.addAll(Arrays.asList(ccSLD_TLD_list)); } diff --git a/source/net/yacy/cora/protocol/ftp/FTPClient.java b/source/net/yacy/cora/protocol/ftp/FTPClient.java index 2e3acf185..78754df82 100644 --- a/source/net/yacy/cora/protocol/ftp/FTPClient.java +++ b/source/net/yacy/cora/protocol/ftp/FTPClient.java @@ -41,6 +41,7 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.io.RandomAccessFile; +import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.InetAddress; @@ -162,7 +163,7 @@ public class FTPClient { } this.cmd = line2args(com); try { - ret = (((Boolean) getClass().getMethod(this.cmd[0].toUpperCase(), new Class[0]).invoke(this, new Object[0])) + ret = (((Boolean) getClass().getMethod(this.cmd[0].toUpperCase(), (Class[]) Array.newInstance(Class.class, 0)).invoke(this, (Object[]) Array.newInstance(Object.class, 0))) .booleanValue()); } catch (final InvocationTargetException e) { if (e.getMessage() != null) { @@ -296,7 +297,7 @@ public class FTPClient { // Class c = this.getClass().getClassLoader().loadClass(obj); // locate public static main(String[]) method - final Class[] parameterType = new Class[1]; + final Class[] parameterType = (Class[]) Array.newInstance(Class.class, 1); parameterType[0] = Class.forName("[Ljava.lang.String;"); Method m = c.getMethod("main", parameterType); diff --git a/source/net/yacy/cora/storage/ConcurrentARC.java b/source/net/yacy/cora/storage/ConcurrentARC.java index 0e96ee74e..14786bb6e 100644 --- a/source/net/yacy/cora/storage/ConcurrentARC.java +++ b/source/net/yacy/cora/storage/ConcurrentARC.java @@ -24,6 +24,7 @@ package net.yacy.cora.storage; +import java.lang.reflect.Array; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; @@ -61,7 +62,7 @@ public final class ConcurrentARC extends AbstractMap implements Map< while (m < partitions) m = m * 2; int partitionSize = cacheSize / m; if (partitionSize < 4) partitionSize = 4; - this.arc = new HashARC[m]; + this.arc = (ARC[]) Array.newInstance(HashARC.class, m); for (int i = 0; i < this.arc.length; i++) this.arc[i] = new HashARC(partitionSize); m -= 1; this.mask = m; @@ -79,7 +80,7 @@ public final class ConcurrentARC extends AbstractMap implements Map< while (m < partitions) m = m * 2; int partitionSize = cacheSize / m; if (partitionSize < 4) partitionSize = 4; - this.arc = new ComparableARC[m]; + this.arc = (ARC[]) Array.newInstance(ComparableARC.class, m); for (int i = 0; i < this.arc.length; i++) this.arc[i] = new ComparableARC(partitionSize, comparator); m -= 1; this.mask = m; diff --git a/source/net/yacy/crawler/HostBalancer.java b/source/net/yacy/crawler/HostBalancer.java index 29aa2923e..9a48f7396 100644 --- a/source/net/yacy/crawler/HostBalancer.java +++ b/source/net/yacy/crawler/HostBalancer.java @@ -22,6 +22,7 @@ package net.yacy.crawler; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.ConcurrentModificationException; @@ -353,7 +354,7 @@ public class HostBalancer implements Balancer { public Iterator iterator() throws IOException { final Iterator hostsIterator = this.queues.values().iterator(); @SuppressWarnings("unchecked") - final Iterator[] hostIterator = new Iterator[1]; + final Iterator[] hostIterator = (Iterator[]) Array.newInstance(Iterator.class, 1); hostIterator[0] = null; return new Iterator() { @Override diff --git a/source/net/yacy/crawler/HostQueue.java b/source/net/yacy/crawler/HostQueue.java index 66cca95fd..9d58bce4a 100644 --- a/source/net/yacy/crawler/HostQueue.java +++ b/source/net/yacy/crawler/HostQueue.java @@ -22,6 +22,7 @@ package net.yacy.crawler; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; @@ -459,7 +460,7 @@ public class HostQueue implements Balancer { public Iterator iterator() throws IOException { final Iterator> depthIterator = this.depthStacks.entrySet().iterator(); @SuppressWarnings("unchecked") - final Iterator[] rowIterator = new Iterator[1]; + final Iterator[] rowIterator = (Iterator[]) Array.newInstance(Iterator.class, 1); rowIterator[0] = null; return new Iterator() { @Override diff --git a/source/net/yacy/data/Diff.java b/source/net/yacy/data/Diff.java index 144726495..5a929a574 100644 --- a/source/net/yacy/data/Diff.java +++ b/source/net/yacy/data/Diff.java @@ -28,6 +28,7 @@ package net.yacy.data; +import java.lang.reflect.Array; import java.util.ArrayList; import net.yacy.document.parser.html.CharacterCoding; @@ -62,10 +63,10 @@ public class Diff { */ public Diff(final String original, final String changed, final int minConsecutive) { if (original == null || changed == null) throw new NullPointerException("input Strings must be null"); - this.original = new Comparable[original.length()]; + this.original = (Object[]) Array.newInstance(Comparable.class, original.length()); for (int i=0; i 0) ? minConsecutive : 1); diff --git a/source/net/yacy/document/importer/MediawikiImporter.java b/source/net/yacy/document/importer/MediawikiImporter.java index 061698349..d6f116638 100644 --- a/source/net/yacy/document/importer/MediawikiImporter.java +++ b/source/net/yacy/document/importer/MediawikiImporter.java @@ -37,6 +37,7 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.RandomAccessFile; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Array; import java.net.MalformedURLException; import java.util.Date; import java.util.concurrent.ArrayBlockingQueue; @@ -176,7 +177,7 @@ public class MediawikiImporter extends Thread implements Importer { final BlockingQueue out = new ArrayBlockingQueue(threads * 10); final ExecutorService service = Executors.newFixedThreadPool(threads + 1); final convertConsumer[] consumers = new convertConsumer[threads]; - final Future[] consumerResults = new Future[threads]; + final Future[] consumerResults = (Future[]) Array.newInstance(Future.class, threads); for (int i = 0; i < threads; i++) { consumers[i] = new convertConsumer(in, out, poison); consumerResults[i] = service.submit(consumers[i]); diff --git a/source/net/yacy/document/parser/html/ContentScraper.java b/source/net/yacy/document/parser/html/ContentScraper.java index 8142317d2..896ad89f0 100644 --- a/source/net/yacy/document/parser/html/ContentScraper.java +++ b/source/net/yacy/document/parser/html/ContentScraper.java @@ -29,6 +29,7 @@ import java.io.CharArrayReader; import java.io.File; import java.io.IOException; import java.io.Writer; +import java.lang.reflect.Array; import java.net.MalformedURLException; import java.nio.charset.Charset; import java.text.NumberFormat; @@ -222,7 +223,7 @@ public class ContentScraper extends AbstractScraper implements Scraper { this.navigation = new SizeLimitedMap(maxLinks); this.script = new SizeLimitedSet(maxLinks); this.titles = new LinkedHashSet(); - this.headlines = new ArrayList[6]; + this.headlines = (List[]) Array.newInstance(ArrayList.class, 6); for (int i = 0; i < this.headlines.length; i++) this.headlines[i] = new ArrayList(); this.bold = new ClusteredScoreMap(); this.italic = new ClusteredScoreMap(); diff --git a/source/net/yacy/http/servlets/YaCyDefaultServlet.java b/source/net/yacy/http/servlets/YaCyDefaultServlet.java index 6b07c9587..6ad91b7a1 100644 --- a/source/net/yacy/http/servlets/YaCyDefaultServlet.java +++ b/source/net/yacy/http/servlets/YaCyDefaultServlet.java @@ -30,6 +30,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.ref.SoftReference; +import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; @@ -732,11 +733,12 @@ public class YaCyDefaultServlet extends HttpServlet { } } - final Class c = provider.loadClass(classFile); - final Class[] params = new Class[]{ - RequestHeader.class, - serverObjects.class, - serverSwitch.class}; + final Class c = provider.loadClass(classFile); + + final Class[] params = (Class[]) Array.newInstance(Class.class, 3); + params[0]= RequestHeader.class; + params[1] = serverObjects.class; + params[2] = serverSwitch.class; m = c.getMethod("respond", params); if (MemoryControl.shortStatus()) { diff --git a/source/net/yacy/kelondro/blob/ArrayStack.java b/source/net/yacy/kelondro/blob/ArrayStack.java index e31964d99..2e3d8b3b5 100644 --- a/source/net/yacy/kelondro/blob/ArrayStack.java +++ b/source/net/yacy/kelondro/blob/ArrayStack.java @@ -28,6 +28,7 @@ package net.yacy.kelondro.blob; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; @@ -852,7 +853,7 @@ public class ArrayStack implements BLOB { bi.blob.delete(key); } else { @SuppressWarnings("unchecked") - final FutureTask[] t = new FutureTask[this.blobs.size() - 1]; + final FutureTask[] t = (FutureTask[]) Array.newInstance(FutureTask.class, this.blobs.size() - 1); int i = 0; for (final blobItem bi: this.blobs) { if (i < t.length) { diff --git a/source/net/yacy/kelondro/blob/MapDataMining.java b/source/net/yacy/kelondro/blob/MapDataMining.java index cef5ca54b..1c62f9754 100644 --- a/source/net/yacy/kelondro/blob/MapDataMining.java +++ b/source/net/yacy/kelondro/blob/MapDataMining.java @@ -29,6 +29,7 @@ package net.yacy.kelondro.blob; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; @@ -81,7 +82,7 @@ public class MapDataMining extends MapHeap { ScoreMap[] cluster = null; if (sortfields == null) this.sortClusterMap = null; else { this.sortClusterMap = new ConcurrentHashMap>(); - cluster = new ScoreMap[sortfields.length]; + cluster = (ScoreMap[]) Array.newInstance(ScoreMap.class, sortfields.length); for (int i = 0; i < sortfields.length; i++) { cluster[i] = new ConcurrentScoreMap(); } diff --git a/source/net/yacy/kelondro/index/RAMIndexCluster.java b/source/net/yacy/kelondro/index/RAMIndexCluster.java index a4603a1f1..9fe7a6032 100644 --- a/source/net/yacy/kelondro/index/RAMIndexCluster.java +++ b/source/net/yacy/kelondro/index/RAMIndexCluster.java @@ -25,6 +25,7 @@ package net.yacy.kelondro.index; import java.io.IOException; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -326,7 +327,7 @@ public final class RAMIndexCluster implements Index, Iterable, Clonea col.add(element.rows(up, firstKey)); } } - return StackIterator.stack(col.toArray(new CloneableIterator[col.size()])); + return StackIterator.stack(col.toArray((CloneableIterator[]) Array.newInstance(CloneableIterator.class, col.size()))); } } diff --git a/source/net/yacy/kelondro/rwi/ReferenceContainer.java b/source/net/yacy/kelondro/rwi/ReferenceContainer.java index 5c928a6d6..c470c242f 100644 --- a/source/net/yacy/kelondro/rwi/ReferenceContainer.java +++ b/source/net/yacy/kelondro/rwi/ReferenceContainer.java @@ -26,6 +26,7 @@ package net.yacy.kelondro.rwi; +import java.lang.reflect.Array; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -291,7 +292,10 @@ public class ReferenceContainer extends RowSet Method meth = null; try { final Class c = net.yacy.kelondro.rwi.ReferenceContainer.class; - meth = c.getMethod("mergeUnique", new Class[]{Object.class, Object.class}); + final Class[] args = (Class[]) Array.newInstance(Class.class, 2); + args[0] = Object.class; + args[1] = Object.class; + meth = c.getMethod("mergeUnique", args); } catch (final SecurityException e) { System.out.println("Error while initializing containerMerge.SecurityException: " + e.getMessage()); meth = null; diff --git a/source/net/yacy/kelondro/table/SplitTable.java b/source/net/yacy/kelondro/table/SplitTable.java index 614700661..21f6d9042 100644 --- a/source/net/yacy/kelondro/table/SplitTable.java +++ b/source/net/yacy/kelondro/table/SplitTable.java @@ -28,6 +28,7 @@ package net.yacy.kelondro.table; import java.io.File; import java.io.IOException; +import java.lang.reflect.Array; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; @@ -566,7 +567,7 @@ public class SplitTable implements Index, Iterable { @Override @SuppressWarnings("unchecked") public synchronized CloneableIterator rows() throws IOException { - final CloneableIterator[] c = new CloneableIterator[this.tables.size()]; + final CloneableIterator[] c = (CloneableIterator[]) Array.newInstance(CloneableIterator.class, this.tables.size()); final Iterator i = this.tables.values().iterator(); int d = 0; while (i.hasNext()) { diff --git a/source/net/yacy/kelondro/util/MergeIterator.java b/source/net/yacy/kelondro/util/MergeIterator.java index 492d4edf8..5d7c78e1d 100644 --- a/source/net/yacy/kelondro/util/MergeIterator.java +++ b/source/net/yacy/kelondro/util/MergeIterator.java @@ -22,6 +22,7 @@ package net.yacy.kelondro.util; +import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collection; @@ -204,7 +205,10 @@ public class MergeIterator implements CloneableIterator { Method meth = null; try { final Class c = net.yacy.kelondro.util.MergeIterator.class; - meth = c.getMethod("mergeEqualByReplace", new Class[]{Object.class, Object.class}); + final Class[] args = (Class[]) Array.newInstance(Class.class, 2); + args[0] = Object.class; + args[1] = Object.class; + meth = c.getMethod("mergeEqualByReplace", args); } catch (final SecurityException e) { System.out.println("Error while initializing simpleMerge (1): " + e.getMessage()); meth = null; diff --git a/source/net/yacy/kelondro/util/StackIterator.java b/source/net/yacy/kelondro/util/StackIterator.java index 534a87613..3f862f106 100644 --- a/source/net/yacy/kelondro/util/StackIterator.java +++ b/source/net/yacy/kelondro/util/StackIterator.java @@ -22,6 +22,7 @@ package net.yacy.kelondro.util; +import java.lang.reflect.Array; import java.util.ConcurrentModificationException; import net.yacy.cora.order.CloneableIterator; @@ -124,7 +125,7 @@ public class StackIterator implements CloneableIterator { return new StackIterator(iterators[0], iterators[1]); } CloneableIterator a = iterators[0]; - final CloneableIterator[] iterators0 = new CloneableIterator[iterators.length - 1]; + final CloneableIterator[] iterators0 = (CloneableIterator[]) Array.newInstance(CloneableIterator.class, iterators.length - 1); System.arraycopy(iterators, 1, iterators0, 0, iterators.length - 1); if (a == null) return stack(iterators0); return new StackIterator(a, stack(iterators0)); diff --git a/source/net/yacy/peers/Dispatcher.java b/source/net/yacy/peers/Dispatcher.java index f4f8d2b2d..4ebd378f0 100644 --- a/source/net/yacy/peers/Dispatcher.java +++ b/source/net/yacy/peers/Dispatcher.java @@ -26,6 +26,7 @@ package net.yacy.peers; import java.io.IOException; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -235,7 +236,7 @@ public class Dispatcher { // init the result vector final int partitionCount = this.seeds.scheme.verticalPartitions(); - final List>[] partitions = new ArrayList[partitionCount]; + final List>[] partitions = (List>[]) Array.newInstance(ReferenceContainer.class, partitionCount); for (int i = 0; i < partitions.length; i++) partitions[i] = new ArrayList>(); // check all entries and split them to the partitions @@ -258,7 +259,7 @@ public class Dispatcher { // check all entries and split them to the partitions @SuppressWarnings("unchecked") - final ReferenceContainer[] partitionBuffer = new ReferenceContainer[partitionCount]; + final ReferenceContainer[] partitionBuffer = (ReferenceContainer[]) Array.newInstance(ReferenceContainer.class, partitionCount); // init the new partitions for (int j = 0; j < partitionBuffer.length; j++) { diff --git a/source/net/yacy/search/index/Fulltext.java b/source/net/yacy/search/index/Fulltext.java index c78180a25..e1407183a 100644 --- a/source/net/yacy/search/index/Fulltext.java +++ b/source/net/yacy/search/index/Fulltext.java @@ -27,6 +27,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; +import java.lang.reflect.Array; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; @@ -386,7 +387,7 @@ public final class Fulltext { int subsetscount = 1 + (hosthashes.size() / 255); // if the list is too large, we get a "too many boolean clauses" exception int c = 0; @SuppressWarnings("unchecked") - List[] subsets = new ArrayList[subsetscount]; + List[] subsets = (List[]) Array.newInstance(ArrayList.class, subsetscount); for (int i = 0; i < subsetscount; i++) subsets[i] = new ArrayList(); for (String hosthash: hosthashes) subsets[c++ % subsetscount].add(hosthash); for (List subset: subsets) { diff --git a/source/net/yacy/search/schema/CollectionConfiguration.java b/source/net/yacy/search/schema/CollectionConfiguration.java index c68d9a538..377747ee8 100644 --- a/source/net/yacy/search/schema/CollectionConfiguration.java +++ b/source/net/yacy/search/schema/CollectionConfiguration.java @@ -27,6 +27,7 @@ package net.yacy.search.schema; import java.io.File; import java.io.IOException; import java.io.Serializable; +import java.lang.reflect.Array; import java.net.InetAddress; import java.net.MalformedURLException; import java.util.ArrayList; @@ -337,9 +338,15 @@ public class CollectionConfiguration extends SchemaConfiguration implements Seri public final ArrayList[] urlProtocols, urlStubs, urlAnchorTexts; @SuppressWarnings("unchecked") public Subgraph(int inboundSize, int outboundSize) { - this.urlProtocols = new ArrayList[]{new ArrayList(inboundSize), new ArrayList(outboundSize)}; - this.urlStubs = new ArrayList[]{new ArrayList(inboundSize), new ArrayList(outboundSize)}; - this.urlAnchorTexts = new ArrayList[]{new ArrayList(inboundSize), new ArrayList(outboundSize)}; + this.urlProtocols = (ArrayList[]) Array.newInstance(ArrayList.class, 2); + this.urlProtocols[0] = new ArrayList(inboundSize); + this.urlProtocols[1] = new ArrayList(outboundSize); + this.urlStubs = (ArrayList[]) Array.newInstance(ArrayList.class, 2); + this.urlStubs[0] = new ArrayList(inboundSize); + this.urlStubs[1] = new ArrayList(outboundSize); + this.urlAnchorTexts = (ArrayList[]) Array.newInstance(ArrayList.class, 2); + this.urlAnchorTexts[0] = new ArrayList(inboundSize); + this.urlAnchorTexts[1] = new ArrayList(outboundSize); } } diff --git a/source/net/yacy/search/schema/HyperlinkEdges.java b/source/net/yacy/search/schema/HyperlinkEdges.java index 9a9120d5b..95c61f35c 100644 --- a/source/net/yacy/search/schema/HyperlinkEdges.java +++ b/source/net/yacy/search/schema/HyperlinkEdges.java @@ -1,5 +1,6 @@ package net.yacy.search.schema; +import java.lang.reflect.Array; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -96,7 +97,7 @@ public class HyperlinkEdges implements Iterable { public Iterator iterator() { final Iterator> i = this.edges.entrySet().iterator(); @SuppressWarnings("unchecked") - final Iterator[] tc = new Iterator[1]; + final Iterator[] tc = (Iterator[]) Array.newInstance(Iterator.class, 1); tc[0] = null; final MultiProtocolURL[] su = new MultiProtocolURL[1]; su[0] = null;