java.util.ArrayList#size ( )源码实例Demo

下面列出了java.util.ArrayList#size ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: opensim-gui   文件: SingleModelGuiElements.java
public void updateActuatorNames()
{
   ArrayList<String> namesList = new ArrayList<String>(4);
   ForceSet actuators = model.getForceSet();
   if (actuators != null) {
      for (int i=0; i<actuators.getSize(); i++) {
         Force act =actuators.get(i);
         Muscle muscle = Muscle.safeDownCast(act);
         if (muscle != null) {
            namesList.add(muscle.getName());
         }
       }
   }
   actuatorNames = new String[namesList.size()];
   System.arraycopy(namesList.toArray(), 0, actuatorNames, 0, namesList.size());
   java.util.Arrays.sort(actuatorNames);
}
 
源代码2 项目: beast-mcmc   文件: SpatialKernel.java
public Gaussian(String name, ArrayList<Parameter> params, int steps) throws InstantiationException {
    super(name);

    if(params.size()!=1){
        throw new InstantiationException("Wrong number of parameters for this spatial kernal function");
    }

    if(!params.get(0).getId().equals(ALPHA)){
        throw new InstantiationException("No parameter named alpha");
    }

    this.alpha = params.get(0);
    addVariable(alpha);


    integrator = new RiemannApproximation(steps);
}
 
源代码3 项目: gemfirexd-oss   文件: CqAttributesFactory.java
/**
 * Adds a Cqlistener to the end of the list of Cqlisteners on this CqQuery.
 * @param cql the user defined cq listener to add to the CqQuery.
 * @throws IllegalArgumentException if <code>aListener</code> is null
 */ 
public void addCqListener(CqListener cql)
{
  if (cql == null) {
    throw new IllegalArgumentException(LocalizedStrings.CqAttributesFactory_ADDCQLISTENER_PARAMETER_WAS_NULL.toLocalizedString());
  }
  synchronized (this.clSync) {
    ArrayList oldListeners = this.cqListeners;
    if (oldListeners == null || oldListeners.size() == 0) {
      ArrayList al = new ArrayList(1);
      al.add(cql);
      this.cqListeners = al;
    }
    else {
      if (!oldListeners.contains(cql)) {
        oldListeners.add(cql);
      }
    }
  }
}
 
源代码4 项目: Digital   文件: Transition.java
/**
 * @return the condition
 * @throws FiniteStateMachineException FiniteStateMachineException
 */
Expression getConditionExpression() throws FiniteStateMachineException {
    if (conditionExpression == null) {
        if (condition != null && condition.trim().length() > 0)
            try {
                ArrayList<Expression> ex = new Parser(condition).parse();
                if (ex.size() != 1)
                    throw new FiniteStateMachineException(Lang.get("err_fsmErrorInCondition_N", condition));

                this.conditionExpression = ex.get(0);
            } catch (IOException | ParseException e) {
                throw new FiniteStateMachineException(Lang.get("err_fsmErrorInCondition_N", condition), e);
            }
    }
    return conditionExpression;
}
 
源代码5 项目: VirtualAPK   文件: RemoteContentProvider.java
@NonNull
@Override
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) throws OperationApplicationException {
    try {
        Field uriField = ContentProviderOperation.class.getDeclaredField("mUri");
        uriField.setAccessible(true);
        for (ContentProviderOperation operation : operations) {
            Uri pluginUri = Uri.parse(operation.getUri().getQueryParameter(KEY_URI));
            uriField.set(operation, pluginUri);
        }
    } catch (Exception e) {
        return new ContentProviderResult[0];
    }

    if (operations.size() > 0) {
        ContentProvider provider = getContentProvider(operations.get(0).getUri());
        if (provider != null) {
            return provider.applyBatch(operations);
        }
    }

    return new ContentProviderResult[0];
}
 
/**
 * Remove unnecessary mappings from sparse array.
 */
private void cleanMapping() {
    ArrayList<Integer> toRemove = new ArrayList<Integer>();

    int size = mListMapping.size();
    for (int i = 0; i < size; ++i) {
        if (mListMapping.keyAt(i) == mListMapping.valueAt(i)) {
            toRemove.add(mListMapping.keyAt(i));
        }
    }

    size = toRemove.size();
    for (int i = 0; i < size; ++i) {
        mListMapping.delete(toRemove.get(i));
    }
}
 
源代码7 项目: cloud-opensource-java   文件: DashboardTest.java
@Test
public void testDashboard_recommendedCoordinates() {
  Nodes recommendedListItem = dashboard.query("//ul[@id='recommended']/li");
  Assert.assertTrue(recommendedListItem.size() > 100);

  // fails if these are not valid Maven coordinates
  for (Node node : recommendedListItem) {
    new DefaultArtifact(node.getValue());
  }

  ImmutableList<String> coordinateList =
      Streams.stream(recommendedListItem).map(Node::getValue).collect(toImmutableList());
  
  ArrayList<String> sorted = new ArrayList<>(coordinateList);
  Comparator<String> comparator = new SortWithoutVersion();
  Collections.sort(sorted, comparator);

  for (int i = 0; i < sorted.size(); i++) {
    Assert.assertEquals(
        "Coordinates are not sorted: ", sorted.get(i), coordinateList.get(i));
  }
}
 
源代码8 项目: shattered-pixel-dungeon   文件: Yog.java
@Override
public int defenseProc( Char enemy, int damage ) {

	ArrayList<Integer> spawnPoints = new ArrayList<>();
	
	for (int i=0; i < PathFinder.NEIGHBOURS8.length; i++) {
		int p = pos + PathFinder.NEIGHBOURS8[i];
		if (Actor.findChar( p ) == null && (Dungeon.level.passable[p] || Dungeon.level.avoid[p])) {
			spawnPoints.add( p );
		}
	}
	
	if (spawnPoints.size() > 0) {
		Larva larva = new Larva();
		larva.pos = Random.element( spawnPoints );
		
		GameScene.add( larva );
		Actor.addDelayed( new Pushing( larva, pos, larva.pos ), -1 );
	}

	for (Mob mob : Dungeon.level.mobs) {
		if (mob instanceof BurningFist || mob instanceof RottingFist || mob instanceof Larva) {
			mob.aggro( enemy );
		}
	}

	return super.defenseProc(enemy, damage);
}
 
源代码9 项目: SampleCode   文件: LatencyPercentileTests.java
public void run(@NotNull CommandLineArgs options) {

        int threads = options.getThreadCount();
        int iterations = options.getIterationCount();

        ArrayList<WorkerThread> list = new ArrayList<WorkerThread>();

        try {
            Logging.writeLine("Starting %d thread(s), %d iteration(s), using client %s", threads, iterations, Redis.getClient().getClass().getSimpleName());

            for(int i = 0; i < threads; i++)
                list.add(startLoadTest(iterations));

            Thread.sleep(1000);
            Logging.writeLine("\r\nwaiting for iterations to complete...");

            while(list.size() > 0)
            {
                WorkerThread t = list.remove(0);
                while (t.isAlive())
                {
                    Logging.write(".");
                    Thread.sleep(1000);
                }
            }

            Logging.writeLine("\r\nResult aggregation complete...");

            printResults();

        }
        catch(Exception ex) {

            Logging.logException(ex);
        }
    }
 
源代码10 项目: uima-uimaj   文件: CpeLocalCasProcessorImpl.java
/**
 * Adds a new env key to the list of env keys. If a kay with a given key name exists the new key
 * value replaces the old.
 *
 * @param aEnvKeyName the a env key name
 * @param aEnvKeyValue the a env key value
 * @throws CpeDescriptorException the cpe descriptor exception
 */
@Override
public void addExecEnv(String aEnvKeyName, String aEnvKeyValue) throws CpeDescriptorException {
  CasProcessorRunInSeperateProcess rip = getRunInSeparateProcess();
  if (rip != null) {
    CasProcessorExecutable exe = rip.getExecutable();
    if (exe != null) {
      ArrayList envs = exe.getEnvs();
      NameValuePair nvp;
      boolean replacedExisiting = false;

      for (int i = 0; envs != null && i < envs.size(); i++) {
        nvp = (NameValuePair) envs.get(i);
        if (nvp.getName().equals(aEnvKeyName)) {
          nvp.setValue(aEnvKeyValue);
          replacedExisiting = true;
          break; // done
        }
      }
      if (envs != null && !replacedExisiting) {
        nvp = new NameValuePairImpl(aEnvKeyName, aEnvKeyValue);
        envs.add(nvp);
      }
    }
  }

  // }
}
 
源代码11 项目: texaspoker   文件: AdvancedAI.java
/**
 * 获取本手牌已下注的玩家下的最大注
 * 
 * @param betStates
 * @return
 */
private int getMaxBet(ArrayList<BetState> betStates) {
	int maxBet = 0;
	for (int i = 0; i < betStates.size(); i++) {
		if (betStates.get(i).getBet() > maxBet)
			maxBet = betStates.get(i).getBet();
	}
	return maxBet;
}
 
源代码12 项目: litho   文件: TransitionUtils.java
static boolean targetsAllLayout(@Nullable Transition transition) {
  if (transition == null) {
    return false;
  } else if (transition instanceof TransitionSet) {
    ArrayList<Transition> children = ((TransitionSet) transition).getChildren();
    for (int i = 0, size = children.size(); i < size; i++) {
      if (targetsAllLayout(children.get(i))) {
        return true;
      }
    }
  } else if (transition instanceof Transition.TransitionUnit) {
    final Transition.TransitionUnit unit = (Transition.TransitionUnit) transition;
    final Transition.ComponentTargetType targetType =
        unit.getAnimationTarget().componentTarget.componentTargetType;
    if (targetType == Transition.ComponentTargetType.ALL
        || targetType == Transition.ComponentTargetType.AUTO_LAYOUT) {
      return true;
    }
  } else if (transition instanceof Transition.BaseTransitionUnitsBuilder) {
    final Transition.BaseTransitionUnitsBuilder builder =
        (Transition.BaseTransitionUnitsBuilder) transition;
    final List<Transition.TransitionUnit> units = builder.getTransitionUnits();
    for (int i = 0, size = units.size(); i < size; i++) {
      if (targetsAllLayout(units.get(i))) {
        return true;
      }
    }
  } else {
    throw new RuntimeException("Unhandled transition type: " + transition);
  }

  return false;
}
 
源代码13 项目: Knowage-Server   文件: DataSourceSupplier.java
/**
 * Gets the all data source.
 *
 * @return the all data source
 */
public SpagoBiDataSource[] getAllDataSource() {
	logger.debug("IN");
	ArrayList tmpList = new ArrayList();

	// gets all data source from database
	try {
		List lstDs = DAOFactory.getDataSourceDAO().loadAllDataSources();
		if (lstDs == null) {
			logger.warn("Data sources aren't found on the database.");
			return null;
		}

		Iterator dsIt = lstDs.iterator();
		while (dsIt.hasNext()) {
			IDataSource ds = (IDataSource) dsIt.next();
			SpagoBiDataSource sbds = toSpagoBiDataSource(ds);
			tmpList.add(sbds);
		}
	} catch (Exception e) {
		logger.error("The data sources are not correctly returned", e);
	}
	// mapping generic array list into array of SpagoBiDataSource objects
	SpagoBiDataSource[] arDS = new SpagoBiDataSource[tmpList.size()];
	for (int i = 0; i < tmpList.size(); i++) {
		arDS[i] = (SpagoBiDataSource) tmpList.get(i);
	}
	logger.debug("OUT");
	return arDS;
}
 
源代码14 项目: java-technology-stack   文件: AVLTree.java
public boolean isBST(){

        ArrayList<K> keys = new ArrayList<>();
        inOrder(root, keys);
        for(int i = 1 ; i < keys.size() ; i ++)
            if(keys.get(i - 1).compareTo(keys.get(i)) > 0)
                return false;
        return true;
    }
 
源代码15 项目: gemfirexd-oss   文件: SQLDistTxTest.java
@SuppressWarnings("unchecked")
protected void processDerbyOpsWithBatching(Connection dConn,
    boolean compareQuery) {
  if (dConn == null)
    return;
  ArrayList<Object[]> ops = (ArrayList<Object[]>) derbyOps.get();
  if (ops == null)
    Log.getLogWriter().info("derby ops is not set");
  else {
    for (int i = 0; i < ops.size(); i++) {
      Object[] derbyOp = ops.get(i);
      DMLDistTxStmtIF dmlStmt = null;
      if (useNewTables)
        dmlStmt = dmlDistTxFactory
            .createNewTablesDMLDistTxStmt((Integer) derbyOp[0]);
      else
        dmlStmt = dmlDistTxFactory.createDMLDistTxStmt((Integer) derbyOp[0]);

      String operation = (String) derbyOp[1];

      if (operation.equals("insert")) {
        dmlStmt.insertDerby(dConn, i);
      } else if (operation.equals("update")) {
        dmlStmt.updateDerby(dConn, i);
      } else if (operation.equals("delete"))
        dmlStmt.deleteDerby(dConn, i);
      else if (operation.equals("query")) {
        if (compareQuery)
          dmlStmt.queryDerby(dConn, i);
      } else
        throw new TestException("Unknown entry operation: " + operation);
    }
    resetDerbyOps();
  }
}
 
源代码16 项目: halvade   文件: ChromosomeSplitter.java
private Integer[] getKey(String refName, int pos, int pos2) {
        Integer tmpList[] = {null, null};
        ArrayList<BedRegion> keyList = null;
        try {
            keyList = regionsByChrom.get(refName);
            int i = 0;
            int found = 0;
            while (i < keyList.size() && found <2) {
                BedRegion tmp = keyList.get(i);
                if (pos >= tmp.start && pos < tmp.end) {
                    tmpList[0] = tmp.key;
                    found++;
                }
                if (pos2 >= tmp.start && pos2 < tmp.end) {
                    tmpList[1] = tmp.key;
                    found++;
                }
                i++;
            } 
/*
// old      
        for (BedRegion region: regions) {
            if (refName.equalsIgnoreCase(region.contig) && pos >= region.start && pos < region.end)
                tmpList[0] = region.key;
            if (refName.equalsIgnoreCase(region.contig) && pos2 >= region.start && pos2 < region.end)
                tmpList[1] = region.key;
        }

// last correct before
        Integer tmpList[] = {null, null};
        int p, p2;
        if(pos < pos2)  { p = pos; p2 = pos2; }
        else            { p = pos2; p2 = pos; }
        ArrayList<BedRegion> keyList =  regions.get(refName);
        if(keyList == null) return tmpList;
        int i = 0;
        while(i < keyList.size() && p > keyList.get(i).end)
            i++;
        if(i >= keyList.size()) {
            return tmpList;
        } else {
            if(p >=  keyList.get(i).start)
                tmpList[0] = keyList.get(i).key;
            while(i < keyList.size() && p2 > keyList.get(i).end)
                i++;
            if(i >= keyList.size())
                return tmpList;
            else {
                if(p2 >=  keyList.get(i).start ) 
                    tmpList[1] = keyList.get(i).key;
            }
        }
*/
            
        } catch (NullPointerException ex) {
            if(keyList == null) {
                Logger.DEBUG("refname " + refName + " not found");
                throw new NullPointerException("chromosome " + refName + " not found in reference");
            }
        }
        return tmpList;
    }
 
源代码17 项目: buck   文件: EscapeAnalysis.java
/**
 * Replaces the use for a scalar replaceable array. Gets and puts become
 * move instructions, and array lengths and fills are handled. Can also
 * identify ArrayIndexOutOfBounds exceptions and throw them if detected.
 *
 * @param use {@code non-null;} move result instruction for array
 * @param prev {@code non-null;} instruction for instantiating new array
 * @param newRegs {@code non-null;} mapping of array indices to new
 * registers
 * @param deletedInsns {@code non-null;} set of instructions marked for
 * deletion
 */
private void replaceUse(SsaInsn use, SsaInsn prev,
                            ArrayList<RegisterSpec> newRegs,
                            HashSet<SsaInsn> deletedInsns) {
    int index;
    int length = newRegs.size();
    SsaInsn next;
    RegisterSpecList sources;
    RegisterSpec source, result;
    CstLiteralBits indexReg;

    switch (use.getOpcode().getOpcode()) {
        case RegOps.AGET:
            // Replace array gets with moves
            next = getMoveForInsn(use);
            sources = use.getSources();
            indexReg = ((CstLiteralBits) sources.get(1).getTypeBearer());
            index = indexReg.getIntBits();
            if (index < length) {
                source = newRegs.get(index);
                result = source.withReg(next.getResult().getReg());
                insertPlainInsnBefore(next, RegisterSpecList.make(source),
                                          result, RegOps.MOVE, null);
            } else {
                // Throw an exception if the index is out of bounds
                insertExceptionThrow(next, sources.get(1), deletedInsns);
                deletedInsns.add(next.getBlock().getInsns().get(2));
            }
            deletedInsns.add(next);
            break;
        case RegOps.APUT:
            // Replace array puts with moves
            sources = use.getSources();
            indexReg = ((CstLiteralBits) sources.get(2).getTypeBearer());
            index = indexReg.getIntBits();
            if (index < length) {
                source = sources.get(0);
                result = source.withReg(newRegs.get(index).getReg());
                insertPlainInsnBefore(use, RegisterSpecList.make(source),
                                          result, RegOps.MOVE, null);
                // Update the newReg entry to mark value as unknown now
                newRegs.set(index, result.withSimpleType());
            } else {
                // Throw an exception if the index is out of bounds
                insertExceptionThrow(use, sources.get(2), deletedInsns);
            }
            break;
        case RegOps.ARRAY_LENGTH:
            // Replace array lengths with const instructions
            TypeBearer lengthReg = prev.getSources().get(0).getTypeBearer();
            //CstInteger lengthReg = CstInteger.make(length);
            next = getMoveForInsn(use);
            insertPlainInsnBefore(next, RegisterSpecList.EMPTY,
                                      next.getResult(), RegOps.CONST,
                                      (Constant) lengthReg);
            deletedInsns.add(next);
            break;
        case RegOps.MARK_LOCAL:
            // Remove mark local instructions
            break;
        case RegOps.FILL_ARRAY_DATA:
            // Create const instructions for each fill value
            Insn ropUse = use.getOriginalRopInsn();
            FillArrayDataInsn fill = (FillArrayDataInsn) ropUse;
            ArrayList<Constant> constList = fill.getInitValues();
            for (int i = 0; i < length; i++) {
                RegisterSpec newFill =
                    RegisterSpec.make(newRegs.get(i).getReg(),
                                          (TypeBearer) constList.get(i));
                insertPlainInsnBefore(use, RegisterSpecList.EMPTY, newFill,
                                          RegOps.CONST, constList.get(i));
                // Update the newRegs to hold the new const value
                newRegs.set(i, newFill);
            }
            break;
        default:
    }
}
 
源代码18 项目: gemfirexd-oss   文件: RegionFactoryJUnitTest.java
/**
 * Ensure that the RegionFactory set methods mirrors those found in RegionAttributes
 * 
 * @throws Exception
 */
public void testAttributesFactoryConformance() throws Exception {
  Method[] af = AttributesFactory.class.getDeclaredMethods();
  Method[] rf = RegionFactory.class.getDeclaredMethods();
  Method am, rm;
  
  ArrayList afDeprected = new ArrayList(); // hack to ignore deprecated methods
  afDeprected.add("setCacheListener");
  afDeprected.add("setMirrorType");
  afDeprected.add("setPersistBackup");
  afDeprected.add("setBucketRegion");    
  afDeprected.add("setEnableWAN");    
  afDeprected.add("setEnableBridgeConflation");    
  afDeprected.add("setEnableConflation");    
  ArrayList methodsToImplement = new ArrayList();

  // Since the RegionFactory has an AttributesFactory member,
  // we only need to make sure the RegionFactory class adds proxies for the
  // 'set' and 'add' methods added to the AttributesFactory. The java complier
  // will notify the
  // developer if a method is removed from AttributesFactory.
  String amName;
  boolean hasMethod = false;
  assertTrue(af.length != 0);
  for (int i=0; i<af.length; i++) {
    am = af[i];
    amName = am.getName();
    if (!afDeprected.contains(amName) && 
        (amName.startsWith("set") || amName.startsWith("add"))) {
      for (int j=0; j<rf.length; j++) {
        rm = rf[j];
        if (rm.getName().equals(am.getName())) {
          Class[] rparams = rm.getParameterTypes();
          Class[] aparams = am.getParameterTypes();
          if (rparams.length == aparams.length) {
            boolean hasAllParams = true;
            for (int k = 0; k < rparams.length; k++) {
              if (aparams[k] != rparams[k]) {
                hasAllParams = false;
                break;
              }
            } // parameter check
            if (hasAllParams) {
              hasMethod = true;
            }
          } 
        } 
      } // region factory methods
      if (!hasMethod) {
        methodsToImplement.add(am);
      } else {
        hasMethod = false;
      }
    }
  } // attributes methods
  
  if (methodsToImplement.size() > 0) {
    fail("RegionFactory does not conform to AttributesFactory, its should proxy these methods " + methodsToImplement);                
  }
}
 
源代码19 项目: gemfirexd-oss   文件: PartitionClause.java
@SuppressWarnings("unchecked")
protected static void writePortfolioPartitionToBB(int whichClause) {
  ArrayList<String>  partitionKey = new ArrayList<String> ();
  int portfolioPRs = 2;
  switch (whichClause) {
  case 0:
    ArrayList<String>  custPartition = (ArrayList<String>) partitionMap.get("customersPartition");
    ArrayList<String>  secPartition = (ArrayList<String> ) partitionMap.get("securitiesPartition");
    if (custPartition.contains("cid")&& custPartition.size()==1) partitionKey.add("cid"); //cid is the first foreign key
    else if (secPartition.contains("sec_id") && secPartition.size()==1) partitionKey.add("sid");
    else {
      partitionKey.add("cid");
      partitionKey.add("sid");
    }
    counters.decrement(SQLBB.numOfPRs); //no gloabl hash index
    --portfolioPRs;
    if (SQLTest.hasHdfs == true && hdfsExtnParams.get("TRADE.PORTFOLIO" + HDFSSqlTest.STORENAME) != null){      
      counters.decrement(SQLBB.numOfPRs);
    }
    break;
  case 1:
    partitionKey.add("cid");
    partitionMap.put("portfPartitionOn", "range");
    counters.decrement(SQLBB.numOfPRs); //no gloabl hash index
    --portfolioPRs;
    if (SQLTest.hasHdfs == true && hdfsExtnParams.get("TRADE.PORTFOLIO" + HDFSSqlTest.STORENAME) != null){      
      counters.decrement(SQLBB.numOfPRs);
    }
    break;
  case 2:
    partitionKey.add("tid");
    break;
  case 3:
    partitionKey.add("qty");
    break;
  case 4:
    partitionKey.add("qty");
    partitionKey.add("availQty");
    break;
  case 5:
    partitionKey.add("subTotal");
    break;
  case 6:
    partitionKey.add("sid");
    partitionMap.put("portfPartitionOn", "wrongRange"); //not colocated as the range are incompatiable
    counters.decrement(SQLBB.numOfPRs); //no gloabl hash index
    --portfolioPRs;
    if (SQLTest.hasHdfs == true && hdfsExtnParams.get("TRADE.PORTFOLIO" + HDFSSqlTest.STORENAME) != null){      
      counters.decrement(SQLBB.numOfPRs);
    }
    break;
  case 7:
    //replicated table
    counters.subtract(SQLBB.numOfPRs, 2); //no gloabl hash index & PR
    portfolioPRs = 0;
    break;
  default:
    throw new TestException("Unknown partitionKey " + whichClause)
    ;
  }

  counters.add(SQLBB.numOfPRs, 2); //PR and global hash index
  partitionMap.put("portfolioPartition", partitionKey); //put into BB 
          
  if (SQLTest.hasHdfs == true && hdfsExtnParams.get("TRADE.PORTFOLIO" + HDFSSqlTest.STORENAME) != null){      
    counters.add(SQLBB.numOfPRs, 2); //PR and global hash index
    
    if (hdfsExtnParams.get("TRADE.PORTFOLIO" + HDFSSqlTest.EVICTION_CRITERIA) == null){
      if (whichClause != 0 && whichClause != 1 && whichClause != 6 && whichClause != 7){
        counters.subtract(SQLBB.numOfPRs, 1); //no hdfs PR for global hash index if no eviction criteria
      }
    }
  }
  
  Log.getLogWriter().info("numOfPRs now is " + counters.read(SQLBB.numOfPRs) + (SQLTest.hasHdfs ? " after calculating PR for HDFS ignoring colocation" : " "));
  boolean reproduce50116 = TestConfig.tab().booleanAt(SQLPrms.toReproduce50116, true);
  if (SQLTest.hasPortfolioV1 && !reproduce50116) {
    counters.add(SQLBB.numOfPRs, portfolioPRs);
    Log.getLogWriter().info("add num of PR for portfoliov1 table: " + portfolioPRs
         + " as original portfoilio is not dropped to work around #50116");
  }

}
 
源代码20 项目: systemds   文件: ReaderTextLIBSVMParallel.java
private MatrixBlock computeLIBSVMSizeAndCreateOutputMatrixBlock(InputSplit[] splits, Path path,
		JobConf job, long rlen, long clen, long estnnz)
	throws IOException, DMLRuntimeException 
{
	int nrow = 0;
	int ncol = (int) clen;
	
	FileInputFormat.addInputPath(job, path);
	TextInputFormat informat = new TextInputFormat();
	informat.configure(job);

	// count rows in parallel per split
	try 
	{
		ExecutorService pool = CommonThreadPool.get(_numThreads);
		ArrayList<CountRowsTask> tasks = new ArrayList<>();
		for (InputSplit split : splits) {
			tasks.add(new CountRowsTask(split, informat, job));
		}
		pool.invokeAll(tasks);
		pool.shutdown();

		// collect row counts for offset computation
		// early error notify in case not all tasks successful
		_offsets = new SplitOffsetInfos(tasks.size());
		for (CountRowsTask rt : tasks) {
			if (!rt.getReturnCode())
				throw new IOException("Count task for libsvm input failed: "+ rt.getErrMsg());
			_offsets.setOffsetPerSplit(tasks.indexOf(rt), nrow);
			_offsets.setLenghtPerSplit(tasks.indexOf(rt), rt.getRowCount());
			nrow = nrow + rt.getRowCount();
		}
	} 
	catch (Exception e) {
		throw new IOException("Threadpool Error " + e.getMessage(), e);
	}
	
	//robustness for wrong dimensions which are already compiled into the plan
	if( (rlen != -1 && nrow != rlen) || (clen != -1 && ncol != clen) ) {
		String msg = "Read matrix dimensions differ from meta data: ["+nrow+"x"+ncol+"] vs. ["+rlen+"x"+clen+"].";
		if( rlen < nrow || clen < ncol ) {
			//a) specified matrix dimensions too small
			throw new DMLRuntimeException(msg);
		}
		else {
			//b) specified matrix dimensions too large -> padding and warning
			LOG.warn(msg);
			nrow = (int) rlen;
			ncol = (int) clen;
		}
	}
	
	// allocate target matrix block based on given size; 
	// need to allocate sparse as well since lock-free insert into target
	long estnnz2 = (estnnz < 0) ? (long)nrow * ncol : estnnz;
	return createOutputMatrixBlock(nrow, ncol, nrow, estnnz2, true, true);
}